- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 21
说明书
设计题目: 简单文件管理系统
系别: 计算机工程系
专业班级: 计071班
学号: 200700401010
姓名: ***
指导老师: ***
日期: 20
设计目的
设计实现一个简单的模拟文件管理系统,包括目录文件、普通文件、i结点和存储区,
/ (root)
A
D
C
B
E
F
目录
文件
设计内容
构造类似于Linux的的目录结构。目录的层次可适当控制
在此模拟文件管理系统中可以实现的操作有:
改变目录:cd<目录名>,工作目录转移到指定的目录下。目录不存在时,给出错误信息。
创建文件:edit<文件名>,创建一个指定名字的新文件,即在目录中增加一项,不考虑文件的内容。对于重名文件给出错误信息。
删除文件:del<文件名>,当没在用户使用指定文件时,将其删除。文件不存在时给出错误信息。
显示目录:dir<目录名>,显示指定目录下的全部文件和第一级子目录,如果没有指定目录名,则显示当前目录下的相应内容。
创建目录:md<目录名>,在指定路径下创建指定的目录,如没有指定路径,则在当前目录下创建指定的目录。对于重名目录给出错误信息。
删除目录:rd<目录名>,删除指定目录及其下的全部文件和子目录。如果指定目录为空,可直接删除,否则给出用户提示是否删除。
其他说明:
<目录名>和<文件名>都支持全路径名和相对路径名。
文件名由目录结构中各级文件名分量排列构成,各分量间用“/”隔开。
输入exit命令可退出此模拟文件管理系统。
系统实现
1.程序框架及相关函数
main() //主函数
bool InitFileSys() //初始化文件树
void Shell() //命令解释函数
void Cd() //处理cd命令
void Create() //处理edit命令
void Delete() //处理del命令
void Mkdir() //处理md命令
void Dir() //处理dir命令
文件系统采用二叉树链表存储结构,结点如下:
typedef struct
{
unsigned Index; //文件元素索引编号
char FileName[NAME_LEN]; //文件元素名
char ParentName[NAME_LEN]; //父节点名
unsigned FileBlockId; //文件元素所在物理块编号
unsigned FileLevel;//文件元素所在层次
unsigned effect; //是否有效,0-无效,1-有效
} FileIndexElement;
4.数据结构
本程序主要用到的数据结构:数据存储利用二叉链表存储文件,输出用二叉树前序遍历和中序遍历,递归检索和二叉树的有关操作:删除,插入,检索等等。本程序的重点是如何将因插入和删除结点后,如何处理文件二叉树的父亲结点与孩子之间的关系。另外,命令解释和文件资源分配也是程序的重点!在时间复杂度上,文件二叉检索树的平均长度为:2log2n。因些,建立文件管理系统能为检索,删除和插入节省操作和时间。
5.核心程序设计
本系统采用二叉链表存储文件。从主函数开始,InitFileSys()初始化文件树, Login()输出提示文字,然后进入系统核心功能:命令解释和文件操作函数shell()。
主函数main()流程图如下:
开始
开始
初始化文件树
输入命令
命令解释shell()
命令是否为exit
命令是否为cd
命令是否为edit
命令是否为del
命令是否为 md
结束
判断命令
N
N
N
N
N
N
N
Y
Y
Y
调用cd () 函数
命令是否为dir
调用 Create () 函数
调用mkdir () 函数
调用delete () 函数
调用dir () 函数
Y
Y
Y
Y
Y
6.程序测试
运行后,对各个文件操作功能一一进行重复测试,以下是其中的一个测试结果:
7.程序代码
#include stdio.h
#include stdlib.h
#include conio.h
#include string.h
#include time.h
const uns
文档评论(0)