操作系统课程设说计文件管理系统.doc

上传人:本田雅阁 文档编号:2106501 上传时间:2019-02-14 格式:DOC 页数:14 大小:275.02KB
返回 下载 相关 举报
操作系统课程设说计文件管理系统.doc_第1页
第1页 / 共14页
操作系统课程设说计文件管理系统.doc_第2页
第2页 / 共14页
操作系统课程设说计文件管理系统.doc_第3页
第3页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统课程设说计文件管理系统.doc》由会员分享,可在线阅读,更多相关《操作系统课程设说计文件管理系统.doc(14页珍藏版)》请在三一文库上搜索。

1、佛山科学技术学院 1 目目 录录 一、课程设计题目和目的一、课程设计题目和目的1 1 二、开发工具及环境二、开发工具及环境1 1 三、课程设计要求三、课程设计要求1 1 四、程序设计思想四、程序设计思想1 1 五、文件系统的实现五、文件系统的实现2 2 六、操作说明六、操作说明5 5 七、程序运行结果七、程序运行结果1010 八、参考文八、参考文献献1515 九、心得体会九、心得体会1515 佛山科学技术学院 2 一、一、课程设计题目和目的课程设计题目和目的 本设计的目的是通过设计和调试一个简单的文件系统,主要是模拟文件操作命 令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程

2、有 比较深入的了解,掌握它们的基本实施方法。 二、二、开发工具及环境开发工具及环境 a a)程序设计语言:C+ b b)计算机及操作系统:PC 机,WindowsXP c c)开发平台:Microsoft Visual C+ 6.0 d d)运行平台:PC 机,WindowsXP 三、三、课程设计要求课程设计要求 具体要求如下: 设计一个支持 n 个用户的文件系统,每个用户可拥有多个文件; 采用二级或二级以上的多级文件目录管理; 对文件应设置存取控制保护方式,如“只能执行” 、 “允许读” 、 “允许写”等; 系统的外部特征应接近于真实系统,可设置下述文件操作命令:建立文件、 打开文件、关闭文

3、件、删除文件、读文件、写文件、复制文件、查询目录。 通过键盘使用该文件系统,系统应显示操作命令的执行结果。 四、四、程序设计思想程序设计思想 1、在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户 多目录的文件系统。 2、文件物理结构可采用显式链接或其他方法。 3、磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文 件存储空间,并采用显式链接分配方式,则可以将位示图合并到 FAT 中。 4、文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地 址、长度等信息,还可以通过目录项实现对文件的读和写的保护。 5、对文件或目录的操作采用 windows 系统的

4、API 函数来实现。 6、设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作: (1)用户登录 (3)创建目录: creatFileDir (4)删除目录: removeFileDir (5)创建文件: creatFile (6)删除文件: deleteFile (7)读文件: readFile (8)写文件: writeFile (9)复制文件: copyFile (10)移动文件: moveFile (11)返回根目录 (12)退出 佛山科学技术学院 3 五、五、文件系统的实现文件系统的实现 (1) 系统结构如下图: root 为根结点,root 下有 n 个用户,每个用户有

5、自己的文件夹或文件,用 户登录后,系统自动进行初始化,并为每个用户创建一个用户目录。目录内 容只有名称和打开标志。文件除了名称和打开标志,还有文件的访问权限, 文件类型以及文件长度。其中文件的访问权限、文件类型、文件长度单独作 为一个结构体,其它和文件夹结构体相同,也同用一个结构体。 (2) 系统的主要流程图: 主函数开始执行时,先初始化。初始化包括创建 root 根目录,接着进 行用户登录,创建用户,为每个用户创建一个用户文件,然后进入操作界面, 用户可根据按钮或提示对目录或文件进行创建、删除、复制、移动等操作。 (3) 对目录或文件的操作利用 windows 的 API 函数实现,本系统将

6、这些操作 写在一个类(FileSystemBuild.h)中,方便调用,以下是类的定义: class FileSystemBuild public: BOOL creatFileDir(CString name); BOOL removeFileDir(CString name); HANDLE creatFile(CString name); 佛山科学技术学院 4 BOOL deleteFile(CString name); CString readFile(CString name); CString writeFile(CString name,CString buf); BOOL mo

7、veFile(CString source,CString obj); BOOL copyFile(CString source,CString obj); ; (4) 程序功能图: 模拟文件系 统 创 建 目 录 删 除 目 录 创 建 文 件 删 除 文 件 读 文 件 写 文 件 复 制 文 件 移 动 文 件 返 回 根 目 录 (5)实体关系图: 用 户 命令服务 模拟磁盘磁盘空间 分配表 文件表打开文件 表 命令服务使得用户能够输入命令,调用相应的命令模块对模拟磁盘、磁盘 空间分配表、文件表、打开文件表进行操作。磁盘空间分配表记录模拟磁盘 的使用情况。文件表记录文件的信息和在磁盘里

8、的位置等信息。打开文件表 记录已打开的文件,对应文件表中的文件信息,和文件表里的文件节点类似, 记录了文件在模拟磁盘中的信息。 退 出 佛山科学技术学院 5 (6) 数据流图 模拟文件 系统 输入界面 文件表 打开文件表 磁盘分配表 模拟磁盘 文件信息 文件信息 长度、位置信 息 文件(字符串) 用户命令 六、六、操作说明操作说明 创建目录或创建文件,主要调用 API 中的 CreateDirectory 或 CreateFile 函数实现。 创建文件或文件夹首先通过主函数选择操作来传递参数,kind1 创建文件 夹,kind2 创建文件。文件或文件夹名称是由用户输入。文件或文件夹的 父节点由

9、 folderopenedOPFO-1.node 来传递。如果当前目录下由同名文件 或同名文件夹则创建文件或创建文件夹不成功。当前目录是空目录则创建的 文件或文件夹是当前目录的首个子节点。Parent 指针指向当前目录,当前目 录的 child 指针指向文件或文件夹。当前目录不为空,则把文件或文件夹连 接到当前目录下最后的子节点后面,作为最后的兄弟节点。 流程图如下: 佛山科学技术学院 6 删除目录或删除文件,主要调用 API 中的 RemoveDirectory 或 deleteFile 函数实现。 删除文件或文件夹的类型参数由用户选择操作时传递。Kind=1 删除文件夹, kind2 删除

10、文件。名称也由用户输入。 文件在打开列表或文件夹中有打开的文件,文件或文件夹不能删除,目录下 没有该文件或文件夹删除失败,删除失败时返回相应的信息。 如果目录下有该文件或文件夹,而且文件没打开,或文件夹中没有打开的文 件,则删除该释放该节点或该子树。返回删除成功信息。 流程图如下: 佛山科学技术学院 7 读文件,主要调用 API 中的 ReadFile 函数实现。 读文件的时候,首先要对文件进行打开操作,若此时文件不存在或已处于打 开状态或读状态或写状态,则返回打开失败信息,若此时文件处于空闲状态, 则调用 API 函数进行读操作,若读取文件内容不成功,则返回读文件失败的 错误信息,若读文件成

11、功,则将文件内容显示在文本框中,以供用户浏览。 流程图如下: 佛山科学技术学院 8 开始 打开文件 文件是 否存在? 是 文件存在则调用 ReadFile 函数读 文件 文件不存在则 返回错误信息 显示文件内 容 结束 写文件,调用 API 中的 writeFile 函数实现,流程图如下: 写文件的时候,首先要对文件进行打开操作,若此时文件不存在或已处于打 开状态或读状态或写状态,则返回打开失败信息,若此时文件处于空闲状态, 则调用 API 函数进行写操作,若写文件不成功,则返回写文件失败的错误信 息,若写文件成功,则保存文件,返回操作界面。 流程图如下: 开始 打开文件 文件是 否存在? 是

12、 文件存在则调用 writeFile 函数 写文件 文件不存在则 返回错误信息 保存文件内 容 结束 佛山科学技术学院 9 复制文件或移动文件,调用 API 中的 copyFile 或 moveFile 函数实现, 流程图如下: 开始 传入参数即路径 name choose=1 或 2 Choose=1 则调用 copyFile 函数复制文 件 Choose=1 则调用 moveFile 函数移动文 件 结束 七、七、程序运行结果程序运行结果 1、用户登录界面: 2,操作主界面: 佛山科学技术学院 10 3,创建目录或文件: 4,删除文件: 佛山科学技术学院 11 5,删除目录: (1) 目录

13、不为空时: (2) 目录为空时: 佛山科学技术学院 12 6,写文件: 7,读文件: 佛山科学技术学院 13 8,复制文件: 9,移动文件 佛山科学技术学院 14 八、八、 参考文献参考文献 汤子瀛 计算机操作系统 (修订版)西安电子科技大学出版社 2001 张尧学 史美林计算机操作系统教程实验指导 清华大学出版社 2000 九、九、 心得体会心得体会 在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题。 在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文 件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可 以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便。总的来说 通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,对 操作系统有了更深一层的了解,同时也提高了 C 语言的应用能力,由于时间紧, 故还有很多的方面需要改进。以后的学习还得更加努力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1