




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 一 一 课程设计目的课程设计目的 2 二 需求分析二 需求分析 2 三 概要设计三 概要设计 2 1 文件结构体 2 2 所使用函数及其功能 3 3 所使用变量 3 4 程序结构图 6 四 详细设计四 详细设计 4 1 主要函数流程图 4 2 典型数据结构及算法 5 五 测试 修改及运行结果五 测试 修改及运行结果 11 六 结束语六 结束语 12 七 参考文献七 参考文献 12 2 一一 课程设计目的课程设计目的 1 实现建立文件 打开文件 关闭 撤销操作 2 建立相应的数据结构 二二 需求分析需求分析 1 在内存中开辟一个虚拟磁盘空间作为文件存储器 在其上实现一个 简单的单用户文件系统 在退出这个简单的文件系统时 应将该虚拟文件系统 保存到磁盘上 以便下次可以再将它恢复到内存的虚拟磁盘空间中 2 文件存储空间的分配采用显式链接分配 为了实现创建和删除文件 必须要有一棵初始的文件树存在 以便在文件树的根节点下实现创建和删除文 件 3 文件目录结构采用二级目录结构 为了简单起见 可以使用文件结 构体 结构体内容包括 文件名 文件目录识别标示 文件链接数 以及他的 左孩子右孩子左兄弟右兄弟指 4 要有分解函数对输入的命令进行分解 以识别那部分是哪部分是命令 哪部分是路径和文件名 5 最后要有执行函数 来执行输入的创建文件命令 三三 概要设计概要设计 1 文件结构体 struct FileNode char filename FILENAME LEN 文件名 目录名 int isdir 目录文件识别标志 int i nlink 文件的链接数 int adr 文件的地址 struct FileNode parent child 指向父亲的指针和指向左孩子的指针 struct FileNode sibling prev sibling next 指向前一个兄弟的指针和指向 后一个兄弟的指针 初始化文件树如下 3 2 所用函数及其功能 void Init 初始化文件树 int ParseCommand 接受输入的命令并把其分解成操作名和路径文件名 void ExecuteCommand 执行命令 分别执行 edit del dir exit 命令 int editComd 处理 edit 命令 即创建文件 只要创建表示文件的节点即可 内容及大小不考虑 int delComd 处理 del 命令 即删除指定文件 不存在是给出错误信息 int dirComd 处理 dir 命令 问了能显示的看出创建文件和删除文件是否成功 把根目录的文件都显示出来 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 4 四四 详细设计详细设计 1 主函数流程图 开始 初始化文件树 获取键盘输入 分解命令 执行命令 显示文件退出报错删除文件创建文件 5 2 创建文件函数流程图 图 2 创建文件函数流程图 具体函数实现过程如下 int editComd char tmp struct FileNode temp CreateFileNode 0 0 int sign struct FileNode tp 路径不能为空 if strlen Para2 0 printf n 命令格式有错误 n return 0 长度检查 if strlen Para2 50 printf n 文件名过长 n return 0 6 格式检查 if isalpha Para2 0 Para2 0 Para2 0 0 Para2 0 printf 文件名格式有错 n 文件首字母可以为 字母 或 数字 或 或 或 回车 return 0 获取文件名 sign FindFilename Para2 if sign 0 return 0 if cp isdir 1 如当前指针指向的是文件 则报错 printf you cannot edit a file in under a file n return 0 创建文件结点 并插入到指定目录下 tp CreateFileNode 1 0 strcpy tp filename filename tp isdir 0 tp i nlink 0 if cp child NULL tp parent cp tp child NULL cp child tp tp sibling prev NULL tp sibling next NULL else temp cp 用 temp 找到新结点插入处 temp temp child while temp sibling next find the last sibing node temp temp sibling next if strcmp temp filename filename 0 重名报错 return 0 找到了最后一个结点 7 temp sibling next tp tp parent NULL tp child NULL tp sibling prev temp tp sibling next NULL return 1 3 删除文件流程图 开始 检查命令格式 获取文件名字 不存在该 文件 删除的是 目录 由用户共 享该文件 报错提示 处理删除是第一 个孩子情况 处理删除不是第 一个孩子情况 结束 图 3 删除函数流程图 具体函数实现过程如下 int delComd char tmp int sign struct FileNode temp 参数不能为空 if strlen Para2 0 8 printf n 命令格式有错误 n return 0 获取文件名 sign FindFilename Para2 if sign 0 return 0 用 temp 指向要删除的结点 if cp child temp cp child while temp sibling next if strcmp temp filename filename 0 printf 不存在该文件 n return 0 else printf 不存在该文件 n return 0 要删除的不能是目录 if temp isdir 0 printf ERROR 该命令只能删除文件 不可删除目录 n return 0 如仍有用户使用该文件 则不能删除 if temp i nlink 0 printf 还有用户共享了该文件 不能删除 n return 0 删除工作 if temp parent NULL 不是第一个孩子 temp sibling prev sibling next temp sibling next if temp sibling next 处理是最后一个兄弟的情况 temp sibling next sibling prev temp sibling prev temp sibling prev temp sibling next NULL 9 if else 第一个孩子 if temp sibling next 处理是最后一个兄弟的情况 temp sibling next parent temp parent temp parent child temp sibling next else free temp return 1 4 分解命令函数流程图 图 4 分解命令函数流程图 10 五五 测试修改及运行结果测试修改及运行结果 实际运行结果 初始界面 键入用户名和密码创建账号 11 登陆 文件操作 12 六六 结束语结束语 通过一周的努力 这次课程设计又要接近尾声了 虽然课设当中遇到很多 问题 当通过自己的努力和向老师和同学的请教 问题基本都一一解决了 总 得来说本次课程设计完成得比较顺利 文件管理系统的模拟设计需要考虑的问题很多 要做好一个比较功能完整的系统需要 大量的操作系统知识做积累 单凭平时的操作经验来想象整个系统的构架是很肤浅的欠考 虑的行为 而且在本次程序设计中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国音乐学院乐理一级试题及答案
- 云南省曲靖市罗平县一中2025年高二下物理期末调研试题含解析
- 云南省通海县第三中学2024-2025学年高二下生物期末复习检测试题含解析
- 浙江省杭州市桐庐县分水高中2025年生物高二第二学期期末达标检测模拟试题含解析
- 盐城市阜宁县高二上学期期中考试物理试题
- 餐饮店铺转让合同附带原店员劳动合同及社保转移
- 重大工程项目安全生产管理责任合同
- 地形测绘测量员聘请及质量保证合同
- 深圳博物馆选聘专业技术岗位人员考试真题2024
- 能源知识竞赛练习试题附答案
- 理论联系实际谈一谈你对高质量发展的理解参考答案二
- T/CEMIA 026-2021湿电子化学品技术成熟度等级划分及定义
- 浙江省金华市东阳市2025年七年级下学期期末数学试题及答案
- 江西省烟草专卖局(公司)笔试试题2024
- 期末复习题(试题)2024-2025学年六年级下册数学人教版
- 消防用水协议书
- 2023年广州中考政治试题及答案
- T-SCSTA001-2025《四川省好住房评价标准》
- 2025-2030全球及中国货运保险行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 《MTP管理技能提升》课件
- 密度计法颗粒分析试验记录(自动和计算)
评论
0/150
提交评论