欢迎来到天天文库
浏览记录
ID:863740
大小:377.03 KB
页数:21页
时间:2017-09-21
《操作系统课程设计说明书(样板)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计任务书计算机科学与技术专业年级班一、设计题目文件管理系统设计二、主要内容设计一个简单的文件管理系统来模拟文件操作命令的执行三、具体要求设计和调试一个简单的文件管理系统来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。具体要求如下:⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;⑵采用二级或二级以上的多级文件目录管理;⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。⑸通过
2、键盘(或鼠标)使用该文件系统,系统应显示操作命令的执行结果。一、进度安排2012-9-3-----2012-9-6确定系统的总体设计方案:即系统包括哪些功能模块,每个模块的实现算法,并画出相应的流程图.同时编写相应的设计文档;2012-9-6-----2012-9-12编写程序代码并调试,再将调试通过的各个子模块进行集成调试;2012-2-12----2012-9-16归纳文档资料,完成课程设计说明书,参加课程设计答辩二、完成后应上交的材料在课程设计完成后需要提交的成果和有关文档资料包括:1、课程设计的说明书。2、课程设计有关源程序及可运行程序(光盘或电子邮件)。三、总评成绩:指导教师签名日
3、期年月日系主任审核日期年月日一、本设计目的及基本思想本课程设计目的是实现树型目录结构文件系统,在实现过程中利用了二叉树,其中每个节点都有父指针,子指针和兄弟指针,其中子指针指向该目录下的第一个子节点,而该子节点的父指针则指向它的上级目录。目录下各子节点用兄弟指针连接起来。文件夹打开是则把文件夹名称及其地址压入打开文件夹栈,文件关闭则把文件夹名称及其地址从打开文件夹栈中抛出。文件打开则把文件的名称及其父指针写到文件列表同时置文件打开标志为1,文件关闭则把文件从打开列表中删除,同时置文件打开指针为0,文件读取和写入都要检查文件是否在文件打开列表中,未打开文件不能读写,只读文件不能写,只写文件不能
4、读。文件夹和文件创建,文件夹和文件的创建首先检验目录是否为空,为空则把文件夹或文件连接到该目录下,不为空则把检查目录下是否有同名文件夹或文件,有则提示创建不成功,没有则把文件夹或文件连接到该目录下的最后一个子节点,作为它的兄弟节点。文件夹和文件的删除,文件夹下没有打开的文件或文件没有打开才能删除,否则删除失败,删除文件夹时利用了中序历遍来删除子树。二、系统设计2.1系统基本结构系统基本结构如下图:图1系统基本结构图root为根结点,root下有五个用户,每个用户有自己的文件夹或文件,系统初始化时为每个用户创建一个file1文件。文件夹内容只有名称和打开标志。文件除了名称和打开标志,还有文件的
5、访问权限,文件类型以及文件长度。其中文件的访问权限、文件类型、文件长度单独作为一个结构体,其它和文件夹结构体相同,也同用一个结构体。打开文件列表的结构体包括文件名和文件的父节点地址,打开文件夹的栈中包括文件夹名称及其地址2.2系统数据结构//普通文件的结构体structfile{chartype;//文件类型0-文本文件1-可执行文件2-记录型文件charright;//文件的权限0-可读1-可写2-可读可写intf_length;//文件长度};typedefstructfileFile;//文件夹或文件的结构体structFCB{charkind;//kind='1'为文件夹kind='
6、2'为文件charname[20];//文件夹或文件名称boolopen;Fileif_file;structFCB*parent;structFCB*brother;structFCB*child;};typedefstructFCBFf;//root和fcp为全局变量Ff*root;//根节点Ff*fcp=null;//判断是否有拷贝文件//打开项的结构体typedefstruct{charname[20];//名称Ff*node;//指针,打开的是文件夹记录文件夹的地址,是文件记录文件的父节点地}opened;intOPFO=0;//记录文件夹打开数目,最多20openedfolder
7、opened[20];//记录文件打开文件夹intOPFI=0;//记录文件打开数目,最多20openedfileopened[20];//记录打开文件2.3函数清单及部分函数算法流程图//函数声明/////////////////////////////voidinit();//初始化创建根节点voidinitopen();//初始化打开文件列表或打开文件夹文件列表Ff*creat(Ff*parent,ch
此文档下载收益归作者所有