预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

模拟磁盘文件管理系统 一、任务描述 模拟实现一个文件管理系统 开发语言:C++、C语言、java 开发工具:自选 要求 1、可以实现一下命令(以下命令至少实现5条): login用户登录 dir列文件目录 create创建文件 delete删除文件 open打开文件 close关闭文件 cd改变目录 mkdir创建目录 rddir删除目录 halt退出系统 2、列目录要求列出文件名、物理地址、文件大小、读写标识 二、任务完成情况 ⑴自定义磁盘文件管理的数据结构; ⑵能够自由创建、修改、删除文件; ⑶文件具有一定自定义的属性; ⑷能够显示当前系统文件的状态; (5)能够完成任务后退出系统。 三、系统流程图与函数调用关系 1、类和主要函数 程序中定义了两个类: (1)classfile//文件类 主要功能是对文件属性的定义,文件在虚拟磁盘地址块的定位。 (2)classfdatabase//文件操作类 主要功能是对创建、删除、修改等方法的具体实现。 程序中的主要函数及说明: char*getname()//获取文件名 intgettag()//获取删除标记 intgetlength()//获取文件大小 intgetblocknum()//磁盘块数 intgetblocksum1()//磁盘块号的始点 intgetblocksum2()//磁盘块号的终点 voidsetname(charna[])//设置文件名 voiddelwenjian() {tag=1;}//设置删除标记1:已删0:未删 voidcreatfile(char*na,intL,intnum,ints1,ints2)//创建文件 voiddeltefile(char*na){tag=1;strcpy(name,na);}//删除文件 voiddisp()//输出文件信息 intsearch(char*fname)//按文件名查找 intcreatfile(char*na,intL,intnum,ints1,ints2)//创建文件时先查找是否存在 intdeltefile(char*na)//删除文件时先查找是否存在 2、函数流程图 (1)整体流程图 (2)创建文件流程图 3、删除文件流程图 4、输出文件流程图 四、系统使用说明与界面设计 (1)、课程设计的模板说明 1、初始化,建立文件系统 输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位 输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。 2、循环选择执行以下功能 1、存储文件 输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数 为其分配足够多的磁盘块,并记录下来 输出所占用的磁盘块号 2、删除文件 输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块 删除该文件名 3、显示位示图情况 显示位示图的情况 显示剩余磁盘块的数目 4、显示文件列表 显示文件名,文件大小,占用的磁盘块数目和磁盘块号 这样,初始化,建立文件系统完成。运行结果: (3)程序再输出位示图的剩余盘块数,行数,以及行号、列号与磁盘块号的转换公式 (行列皆从0开始编号); 2、选择执行:存储文件,删除文件,显示位示图情况,显示文件列表 显示文件系统管理列表,并提示输入信息1——4。用户输入文件操作命令1(存储文件),2(删除文件)、3(显示位示图情况)、4(显示文件列表); 格式如下:键入1,创建文件名为fname,大小为L(MB)的文件; 键入2,删除文件名为fname的文件; 键入3,显示位示图情况; 键入4,显示所有文件信息。 运行结果: (2)、存储文件 建立文件名为jike大小为200(MB)的文件: 再建立文件名为wo大小为20(MB)的文件后显示文件列表: 显示位示图情况: (3)、删除文件 输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块,删除该文件名 文件名不存在时: 成功删除jike文件: 显示删除后剩余磁盘块的数目: (4)、退出系统 五、结论与体会 在本次课程设计刚刚开始时,不知道怎么设计。后来认真阅读课本有关的知识,知道怎样设计才方便文件操作。知道怎样设计后,写程序时也遇到很多的障碍,特别是出错处理。此时深感自己编程能力的不足,经过多次修改,终于设计好了该设计。自己通过查找资料、复习课本、编程调试,写实验报告等环节,进一步掌握了以前学到的知识,并且还对操作系统应用有了更深入的认识与掌握。 通过该课程设计,使我们更了解了课本知识,巩固了课本知识,同时也使我们的编程能力有了一定的提高,我认实到学好计算机要重视实践操作,不仅仅