文件管理系统课程设计

  • 格式:doc
  • 大小:467.00 KB
  • 文档页数:23

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:操作系统

实验题目:文件管理系统

1、课程设计选题 (3)

1.1主要设计内容 3

1.2主要设计思路 3

2、课程设计需求分析 3

3、概要设计 (4)

3.1整体设计框架 4

3.2各模块的基本功能 4

4、系统实现 5 4.1原理 6 4.2各模块算法思想 6 4.3流程图描述 9

4.4代码描述 10

5、系统测试 11

5.1系统主界面 11

5.2子系统功能测试 11

6、总结 19

7、参考文献样式 19

1、课程设计选题

1.1主要设计内容

本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文

件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文

件操作的实现,加深对文件系统内部功能和实现过程的理解。

1.2主要设计思路

首先系统要完成初始化的任务,建立起整个系统,等待用户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入

等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求,

用户退出后,系统转入登录模块,等待下一位用户的登录。

2、课程设计需求分析

本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登

陆来对文件或是文件进行操作。多用户功能可以满足不同用户不同的需求,同时

也起到了很好的保密作用。

文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文

件。为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。

模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文件。对于用户名下的文件,用文件目录树的分枝来存贮。

采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。

因为存在着同一个目录下不能有同名文件的问题。所以在进行文件的基本操作时要考虑到在已经有的文件中是否有同名文件,有的话则输出提示信息。

3、概要设计

3.1整体设计框架

系统初始化界面是由用户注册,用户登录,退出系统三个模块组成。用户登录模块再由创建用户,进入目录,删除用户,显示所有用户,显示位示图,修改用户资料几大模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。

3.2各模块的基本功能

3.21系统初始化

系统的初始化包括初始化了磁盘的空间即位示图、一个管理员用户

3.22用户注册模块

用户可以在这里注册,用户名和密码的最大长度都为10个字节,如果用户名不重复的话,则注册成功,用户的权限默认为一般用户。

3.23用户登陆模块

用户名就是每个用户进入用户目录的通行证。如果用户名存在的话,则可进入,否则提示用户名不存在,但不退出系统。

3.24创建用户模块

此功能只支持管理员操作,在这里可以一次性创建多个用户,设置其用户名、密码、权限,系统同时为每个用户创建个根目录。

3.25删除用户模块

此功能只支持管理员操作,并且只能删除根目录为空的用户。用户不能删除自己。

3.26修改用户资料模块

在这里可以修改用户名、用户密码。

3.27创建文件模块

只支持在当前目录下创建文件,一次可以创建多个文件,设置文件名,文件所需盘块(所需盘块大于空闲盘块将不能分配),文件的权限,文件内容,根据位示图找到未使用的盘块将其分配。

3.28打开文件模块

只支持在当前目录下操作,一次可以打开多个文件,将文件标志为运行,如果文件的执行权限是不允许的话,将不能进行此操作。

3.29关闭文件模块

只支持在当前目录下操作,将文件标志为没运行。

3.210文件读写模块

只支持在当前目录下操作,如果其读写权限是不允许的话,将不能进行相应操作。

3.211删除文件、目录模块

只支持在当前目录下操作,删除文件释放磁盘空间,并修改位示图。只能删除空目录。

3.212创建子目录模块

只支持在当前目录下操作,一次可以创建多个,目录不占磁盘空间。

3.213改变当前目录模块

支持进入到下一个文件夹、返回父目录、返回根目录。实现方式是依据当前目录的指向其子目录的指针和指向其父目录的指针实现。

3.214列出当前目录内容模块

显示出当前目录的所有子目录,以及子目录的情况,如是否为空;显示当前目录的所有文件,以及文件的相关信息。

4、系统实现

4.1原理

本系统在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。磁盘空闲空间的管理选择了位示图,用0表示未使用,1表示已使用。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。

4.2各模块算法思想

4.21用户结构

用来描述一个登录用户的信息,包含用户的名称、用户的密码、用户的权限(从而进入不同的用户界面)、用户所属的根目录的指针。用一条链把所有用户链接起来。

struct MFD

{

char name[10]; //用户名

char password[10]; //用户密码

char right; //用户权限,1表示管理员,0表示一般用户

struct MFD *next; //指向用户的后继结点

struct MULU *link; //指向用户根目录