- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验与大作业安排
实验与大作业安排 该模拟文件系统包括目录文件、普通文件,i结点和存储区,并实现下面一些基本功能: 1.改变目录:CD 〈目录名〉,工作目录转到指定的目录下。目录名支持全路径名和当前目录的路径名。目录不存在时, 给出错误信息。 2.创建文件:EDIT 〈文件名〉,创建一个指定名字的新文件,即在目录中增加一项,不考虑文件的内容。对于重名文件给出错误信息。 3.删除文件:DEL 〈文件名〉,删除指定的文件。文件不存在时给出错误信息。 4.显示目录:DIR [〈目录名〉],显示目录下全部文件和第一级子目录,如果没有指定路径名,则显示当前目录下的内容。 5.创建目录:MD 〈目录名〉,再指定路径下创建指定的目录,或者在没有指定路径时,在当前目录下创建子目录,对于重名目录给出错误信息。 6.删除目录:RD 〈目录名〉,删除指定的目录,如果该目录为空,则可删除,否则给出是否做删除,删除操作将该目录下的全部文件和子目录都删除。 注:(1)上面目录名和文件名都支持全路径名和相对当前目录的路径名。文件名由目录结构中各级文件名分量排列构成。各分量间用“/”隔开。 (2)程序初始化时应构造如图1-1所示的目录结构 目录树 要求 不限操作系统 程序设计不限语言 最后提供: 源代码 可执行程序 文档 要考虑到的特殊情况 各个命令对全路径和相对路径的支持 相对路径的解析. 以下命令效果一样 dir usr dir \usr dir usr\ dir \usr\ 路径中的空格剔除 cd usr \ lib 新建目录或文件时的问题 重名问题; 目录或文件的名字长度限制; 目录或文件的名字中包含不合法字符(注意空格) 删除目录或文件时的问题 删除不存在的文件或目录; 删除目录时目录不为空; 进入到某个目录下,却要删除本目录; 数据结构 目录采用二叉树表示 左孩子指向下一级目录和文件结点,右孩子(即兄弟)指向同一级的下一个文件或者目录结点。 节点数据结构示例 struct Node { char filename[MAXLEN];//文件名/目录名 int isdir;//目录文件标志 int i_nlink;//文件的链接数 int adr;//文件的地址 Node *child;//指向子节点的指针,当此节点为文件时为NULL Node *sibling;//指向兄弟节点的指针. }; 初始目录的二叉树 程序模块图 主函数流程图 文档编写 需求分析 概要设计 详细设计(数据结构的说明,流程图;面向对象语言则可采用UML) 测试用例 用户手册 代码编写 结构化:模块划分清晰 面向对象:良好的面向对象设计 良好的编程风格 良好的编程风格(Code Conventions ) 源代码文件的命名和组织 变量和函数(类)的命名 注释 编程语句的书写 代码缩进 Recommend:google “code conventions” * * / bin usr etc lib user bin liu sun fti unix 目录文件 无框:普通文件 图1-1 初始的目录树 sibling child filename / bin etc ULL unix usr lib user bin fti sun liu 目录树的初始化 main 命令的解析 dir模块 cd模块 edit模块 del模块 md模块 rd模块 路径 查找 模块 文件 查找 模块 为exit 开始 输入命令 命令和路径的解析 初始化目录树 根据命令调用相应模块 退出程序 Y N * * *
文档评论(0)