第一范文网 - 专业文章范例文档资料分享平台

文件管理系统C++

来源:用户分享 时间:2025/11/4 17:53:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

目录

一.课程设计目的及要求 ............................................................................. 2 二.相关知识................................................................................................ 2 三. 题目分析................................................................................................ 3 四.概要设计................................................................................................ 4 五.代码及流程 ............................................................................................ 5 六.运行结果.............................................................................................. 20 七.设计心得................................................................ 错误!未定义书签。 八.参考文献.............................................................................................. 23

一.课程设计目的及要求

深入了解文件管理系统,初步掌握文件管理系统的实现方法。

用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。

编写一程序,模拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件。

在此文件管理系统,可实现的操作有: 改变目录:格式:cd <目录名> 显示目录:格式:dir <目录名> 创建目录:格式:md <目录名> 删除目录:格式:rd <目录名> 新建文件:格式:edit <文件名> 删除文件:格式:del <文件名> 退出文件系统:exit

二.相关知识

1.文件结构体 struct FileNode {

char filename[FILENAME_LEN];//文件名/目录名 int isdir;//目录文件识别标志 int i_nlink;//文件的链接数 int adr;//文件的地址

struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针

struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向 //后一个兄弟的指针. };

整个文件系统采用二叉树型存储结构,初始化文件树如下:

2

图 2-1 初始目录树

2.所使用函数及其功能 int Main(); //主函数

void Init();//初始化文件树

int ParseCommand();//接受输入的命令并把其分解成操作名和路径文件名

void ExecuteCommand();//执行命令,分别执行cd,edit,md,del,rd, dir,exit命令 int cdComd(); //改变目录功能处理

int editComd();//处理edit命令,即创建文件,只要创建表示文件的节点即可,内容及大

小不考虑

int mdComd(); //创建目录

int delComd();//处理del命令,即删除指定文件,不存在是给出错误信息 int dirComd();//处理dir命令,显示目录 int rdComd(); //删除目录

int FindFilename(char Para2[]);//查找文件名

struct FileNode* CreateFileNode(char filename[],int isdir,int i_nlink);//创建结点 int GetInput(char* buffer,unsigned int buffer_len);//获取输入 3.所使用的变量

struct FileNode *cp, *tp, *root;// *cp, *tp, *root是根目录节点

char path[INPUT_LEN-COMMAND_LEN];//记录当前走过的路径

char Para1[COMMAND_LEN],Para2[INPUT_LEN-COMMAND_LEN];//para1数组存储输

入的命令,para2数组存储输入的文件名

char filename[FILENAME_LEN],tmp; unsigned int i,j;

三 题目分析

1.文件系统采用二叉树型存储结构,结点结构如下: struct FileNode {

3

char filename[FILENAME_LEN];//文件名/目录名

int isdir;//目录、文件的识别标志(0为文件,1为目录) int i_nlink;//文件的链接数 //int adr;//文件的地址

struct FileNode *parent, *child;//指向父亲的指针和指向左孩子的指针

struct FileNode *sibling_prev, *sibling_next;//指向前一个兄弟的指针和指向后一个兄弟的指针. };

2.目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开 3.功能具体描述:

改变目录:改变当前工作目录,目录不存在时给出出错信息

显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir命令,显示所有子目录)

创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。

删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。

创建文件:创建指定名字的文件,只要创建表示文件的节点即可,内容及大小不考虑。 删除文件:删除指定文件,不存在时给出出错信息。 退出文件系统:exit 4、总体流程: 初始化文件目录;

输出提示符,等待接受命令,分析键入的命令;

对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。

四.概要设计

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

2.文件存储空间的分配采用显式链接分配。为了实现创建和删除文件必须要有一棵初始的文件树存在,以便在文件树的根节点下实现创建和删除文件。

3. 数据结构与树结构。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。

树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。树中每个分叉点称为结点,起始结点称为树根,任意两个结点间的连接关系称为树枝,结点下面不再有分枝称为树叶。结点的前趋结点称为该结点的\双亲\,结点的后趋结点称为该结点的\孩子\,同一结点的\孩子\之间互称\兄弟\。

4.文件目录结构采用多级目录结构。为了简单起见,可以使用文件结构体,结构体内容包括:文件名,文件目录识别标示,文件链接数,以及他的左孩子右孩子左兄弟右兄弟指

5. 要有分解函数对输入的命令进行分解。以识别那部分是哪部分是命令,哪部分是路径和文件名。

4

搜索更多关于: 文件管理系统C++ 的文档
文件管理系统C++.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3lhh03ha971xep036ol6_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top