网站大量收购闲置独家精品文档,联系QQ:2885784924

模拟文件系统.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟文件系统

模拟文件系统 需求分析: 该模拟文件系统包括目录文件(简称目录)、普通文件(简称文件),i结点和存储区,并实现下面一些基本功能: 1.改变目录:CD 〈目录名〉,工作目录转到指定的目录下。 2.创建文件:EDIT 〈文件名〉,创建一个指定名字的新文件,即在目录中增加一项,不考虑文件的内容。 3.删除文件:DEL 〈文件名〉,删除指定的文件。 4.显示目录:DIR [〈目录名〉],显示目录下全部文件和第一级子目录,如果没有指定路径名,则显示当前目录下的内容。 5.创建目录:MD 〈目录名〉,再指定路径下创建指定的目录,或者在没有指定路径时,在当前目录下创建子目录。 6.删除目录:RD 〈目录名〉,删除指定的目录。 要考虑的特殊情况: 各个命令对全路径和相对路径的支持 目录不存在时,给出错误信息 不能用cd 进入文件 命令之中不能有空格 如ex it,给出错误提示 相对路径的解析 路径中的空格剔除 新建目录或文件时的问题 重名问题; 目录或文件的名字长度限制; 目录或文件的名字中包含不合法字符(注意空格) 删除目录或文件时的问题 删除不存在的文件或目录,给出错误提示 删除目录时目录不为空; 如果该目录为空,则可删除,否则给出是否做删除,删除操作将该目录下的全部文件和子目录都删除 进入到某个目录下,却要删除本目录或者上级目录 不能用del删除目录 不能用rd删除文件 概要设计: 2、程序模块图 详细设计: 数据结构: (1)二叉树的节点用结构体表示,并用指针进行连接生成二叉树。 struct node { char filename[8]; /*结点名字,即文件或目录名字*/ int isdir; /*为文件或目录,0为文件,1为目录*/ struct node *child; /*指向孩子结点的指针*/ struct node *sibling; /*指向兄弟结点的指针*/ }; /*二叉树节点结构体*/ (2)6个结构体指针类型公共变量: struct node *newnode; /*创建结点时指针*/ struct node *temp; /*活动的指针*/ struct node *temp2; /*活动的指针*/ struct node *temp3; /*活动的指针*/ struct node *temp4; /*活动的指针*/ struct node *T; /*指向根结点(hqy)的指针*/ (3)所有路径都用字符型二维数组表示: char currentpath[10][8]; /*当前路径*/ char inputpath[10][8]; /*输入的路径*/ char path[10][8]; /*存放所有路径,为完全路径*/ (4)命令行、命令、新目录或文件名用字符一维数组表示; char orderline[50]; /*从键盘上获得命令行,包括命令和路径*/ char order[5]; /*输入的命令*/ char newname[8]; /*新文件或目录的名字*/ (5)标准命令库: char stdorder[7][5]={cd,edit,del,dir,md,rd,exit};/*标准命令库*/ (6)另外 int i,j; /*用作循环计数,作为公共变量,不必再声明*/ int orderflag; /*命令的标志, int pathflag; /*路径的标志,分别用-2、-1、0、1、5表示 最后一个名字为新文件或目录、错误或无效的路径、 正确的相对路径、正确的完全路径、没有输入路径*/ 2、流程图: 主函数流程图同上。 各部分流程图如下:

文档评论(0)

pan_1984 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档