1、 1 课程设计任务书 计算机科学与技术 专业 年级 班 一、一、 设计题目设计题目 文件管理系统设计 二、二、 主要内容主要内容 设计一个简单的文件管理系统来模拟文件操作命令的执行 三、三、 具体要求具体要求 设计和调试一个简单的文件管理系统来模拟文件管理, 使学生对主要文件操 作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。具体要 求如下: 设计一个支持 n 个用户的文件系统,每个用户可拥有多个文件; 采用二级或二级以上的多级文件目录管理; 对文件应设置存取控制保护方式,如“只能执行” 、 “允许读” 、 “允许写” 等; 系统的外部特征应接近于真实系统, 可设置下述文件操作
2、命令: 建立文件、 打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。 通过键盘(或鼠标)使用该文件系统,系统应显示操作命令的执行结果。 2 四、四、 进度安排进度安排 2012-9-3-2012-9-6 确定系统的总体设计方案:即系统包括哪些功能模 块,每个模块的实现算法,并画出相应的流程图同时编写相应的设计文档; 2012-9-6-2012-9-12 编写程序代码并调试, 再将调试通过的各个子模块进 行集成调试; 2012-2-12-2012-9-16 归纳文档资料,完成课程设计说明书,参加课程设计 答辩 五、五、 完成后应上交的材料完成后应上交的材料 在课程设计完成后需要
3、提交的成果和有关文档资料包括: 1、 课程设计的说明书。 2 2、 课程设计有关源程序及可运行程序(光盘或电子邮件) 。 六、六、 总评成绩总评成绩: 指导教师指导教师 签名日期签名日期 年年 月月 日日 3 系系 主主 任任 审核日期审核日期 年年 月月 日日 一、一、本本设计设计目的及基本目的及基本思思想想 本课程设计目的是实现树型目录结构文件系统,在实现过程中利用了二 叉树, 其中每个节点都有父指针,子指针和兄弟指针,其中子指针指向该目录下的 第一个子节点,而该子节点的父指针则指向它的上级目录。目录下各子节点 用兄弟指针连接起来。 文件夹打开是则把文件夹名称及其地址压入打开文件夹栈,文件
4、关闭则 把文件夹名称及其地址从打开文件夹栈中抛出。 文件打开则把文件的名称及其父指针写到文件列表同时置文件打开标 志为 1,文件关闭则把文件从打开列表中删除,同时置文件打开指针为 0, 文件读取和写入都要检查文件是否在文件打开列表中,未打开文件不能读 写,只读文件不能写,只写文件不能读。 文件夹和文件创建,文件夹和文件的创建首先检验目录是否为空,为空 则把文件夹或文件连接到该目录下,不为空则把检查目录下是否有同名文件 夹或文件,有则提示创建不成功,没有则把文件夹或文件连接到该目录下的 最后一个子节点,作为它的兄弟节点。 文件夹和文件的删除,文件夹下没有打开的文件或文件没有打开才能删 除,否则删
5、除失败,删除文件夹时利用了中序历遍来删除子树。 二、二、系统系统设计设计 21 系统基本结构系统基本结构 系统基本结构如下图: 4 图 1系统基本结构图 root 为根结点,root 下有五个用户,每个用户有自己的文件夹或文件,系统 初始化时为每个用户创建一个 file1 文件。文件夹内容只有名称和打开标志。 文件除了名称和打开标志,还有文件的访问权限,文件类型以及文件长度。 其中文件的访问权限、文件类型、文件长度单独作为一个结构体,其它和文 件夹结构体相同,也同用一个结构体。 打开文件列表的结构体包括文件名和文件的父节点地址,打开文件夹的栈中 包括文件夹名称及其地址 22 系统系统数据结构数
6、据结构 /普通文件的结构体普通文件的结构体 struct file char type; /文件类型 0-文本文件 1-可执行文件 2-记录型文件 char right; /文件的权限 0可读 1可写 2可读可写 int f_length; /文件长度 ; typedef struct file File; /文件夹或文件的结构体文件夹或文件的结构体 struct FCB char kind; /kind=1为文件夹 kind=2为文件 char name20; /文件夹或文件名称 5 bool open; File if_file; struct FCB *parent; struct FCB *brother; struct FCB *child; ; typedef struct FCB Ff; /root 和和 fcp 为全局变量为全局变量 Ff