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

上传人:b****7 文档编号:9062706 上传时间:2023-02-03 格式:DOCX 页数:15 大小:267.75KB
下载 相关 举报
操作系统课程设计文件管理系统.docx_第1页
第1页 / 共15页
操作系统课程设计文件管理系统.docx_第2页
第2页 / 共15页
操作系统课程设计文件管理系统.docx_第3页
第3页 / 共15页
操作系统课程设计文件管理系统.docx_第4页
第4页 / 共15页
操作系统课程设计文件管理系统.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

《操作系统课程设计文件管理系统.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计文件管理系统.docx(15页珍藏版)》请在冰豆网上搜索。

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

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

 

一、课程设计题目和目的

本设计的目的是通过设计和调试一个简单的文件系统,主要是模拟文件操作命令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。

二、开发工具及环境

a)程序设计语言:

C++

b)计算机及操作系统:

PC机,WindowsXP

c)开发平台:

MicrosoftVisualC++6.0

d)运行平台:

PC机,WindowsXP

三、课程设计要求

具体要求如下:

⑴设计一个支持n个用户的文件系统,每个用户可拥有多个文件;

⑵采用二级或二级以上的多级文件目录管理;

⑶对文件应设置存取控制保护方式,如“只能执行”、“允许读”、“允许写”等;

⑷系统的外部特征应接近于真实系统,可设置下述文件操作命令:

建立文件、打开文件、关闭文件、删除文件、读文件、写文件、复制文件、查询目录。

⑸通过键盘使用该文件系统,系统应显示操作命令的执行结果。

四、程序设计思想

1、在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。

2、文件物理结构可采用显式链接或其他方法。

3、磁盘空闲空间的管理可选择位示图或其他方法。

如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。

4、文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。

5、对文件或目录的操作采用windows系统的API函数来实现。

6、设计一个较实用的用户界面,方便用户使用。

要求提供以下相关文件操作:

(1)用户登录

(3)创建目录:

creatFileDir

(4)删除目录:

removeFileDir

(5)创建文件:

creatFile

(6)删除文件:

deleteFile

(7)读文件:

readFile

(8)写文件:

writeFile

(9)复制文件:

copyFile

(10)移动文件:

moveFile

(11)返回根目录

(12)退出

五、文件系统的实现

(1)系统结构如下图:

root为根结点,root下有n个用户,每个用户有自己的文件夹或文件,用户登录后,系统自动进行初始化,并为每个用户创建一个用户目录。

目录内容只有名称和打开标志。

文件除了名称和打开标志,还有文件的访问权限,文件类型以及文件长度。

其中文件的访问权限、文件类型、文件长度单独作为一个结构体,其它和文件夹结构体相同,也同用一个结构体。

(2)系统的主要流程图:

主函数开始执行时,先初始化。

初始化包括创建root根目录,接着进行用户登录,创建用户,为每个用户创建一个用户文件,然后进入操作界面,用户可根据按钮或提示对目录或文件进行创建、删除、复制、移动等操作。

(3)对目录或文件的操作利用windows的API函数实现,本系统将这些操作写在一个类(FileSystemBuild.h)中,方便调用,以下是类的定义:

classFileSystemBuild{

public:

BOOLcreatFileDir(CStringname);

BOOLremoveFileDir(CStringname);

HANDLEcreatFile(CStringname);

BOOLdeleteFile(CStringname);

CStringreadFile(CStringname);

CStringwriteFile(CStringname,CStringbuf);

BOOLmoveFile(CStringsource,CStringobj);

BOOLcopyFile(CStringsource,CStringobj);

};

(4)程序功能图:

(5)实体关系图:

命令服务使得用户能够输入命令,调用相应的命令模块对模拟磁盘、磁盘空间分配表、文件表、打开文件表进行操作。

磁盘空间分配表记录模拟磁盘的使用情况。

文件表记录文件的信息和在磁盘里的位置等信息。

打开文件表记录已打开的文件,对应文件表中的文件信息,和文件表里的文件节点类似,记录了文件在模拟磁盘中的信息。

 

(6)数据流图

六、操作说明

●创建目录或创建文件,主要调用API中的CreateDirectory或CreateFile函数实现。

创建文件或文件夹首先通过主函数选择操作来传递参数,kind=1创建文件夹,kind=2创建文件。

文件或文件夹名称是由用户输入。

文件或文件夹的父节点由folderopened[OPFO-1].node来传递。

如果当前目录下由同名文件或同名文件夹则创建文件或创建文件夹不成功。

当前目录是空目录则创建的文件或文件夹是当前目录的首个子节点。

Parent指针指向当前目录,当前目录的child指针指向文件或文件夹。

当前目录不为空,则把文件或文件夹连接到当前目录下最后的子节点后面,作为最后的兄弟节点。

流程图如下:

●删除目录或删除文件,主要调用API中的RemoveDirectory或deleteFile函数实现。

删除文件或文件夹的类型参数由用户选择操作时传递。

Kind=1删除文件夹,kind=2删除文件。

名称也由用户输入。

文件在打开列表或文件夹中有打开的文件,文件或文件夹不能删除,目录下没有该文件或文件夹删除失败,删除失败时返回相应的信息。

如果目录下有该文件或文件夹,而且文件没打开,或文件夹中没有打开的文件,则删除该释放该节点或该子树。

返回删除成功信息。

流程图如下:

●读文件,主要调用API中的ReadFile函数实现。

读文件的时候,首先要对文件进行打开操作,若此时文件不存在或已处于打开状态或读状态或写状态,则返回打开失败信息,若此时文件处于空闲状态,则调用API函数进行读操作,若读取文件内容不成功,则返回读文件失败的错误信息,若读文件成功,则将文件内容显示在文本框中,以供用户浏览。

流程图如下:

●写文件,调用API中的writeFile函数实现,流程图如下:

写文件的时候,首先要对文件进行打开操作,若此时文件不存在或已处于打开状态或读状态或写状态,则返回打开失败信息,若此时文件处于空闲状态,则调用API函数进行写操作,若写文件不成功,则返回写文件失败的错误信息,若写文件成功,则保存文件,返回操作界面。

流程图如下:

●复制文件或移动文件,调用API中的copyFile或moveFile函数实现,流程图如下:

七、程序运行结果

1、用户登录界面:

2,操作主界面:

3,创建目录或文件:

4,删除文件:

5,删除目录:

(1)目录不为空时:

(2)目录为空时:

6,写文件:

7,读文件:

8,复制文件:

9,移动文件

八、参考文献

汤子瀛《计算机操作系统》(修订版)西安电子科技大学出版社2001

张尧学史美林《计算机操作系统教程》实验指导清华大学出版社2000

九、心得体会

在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题。

在对自己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知识,同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可以使我们的查错与纠错变的更方便。

总的来说通过这次的设计的学习使我学到了很多在平时的学习中学不到的很多东西,对操作系统有了更深一层的了解,同时也提高了C语言的应用能力,由于时间紧,故还有很多的方面需要改进。

以后的学习还得更加努力。

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1