已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年9月上海中医药大学附属曙光医院淮南医院公开招聘6名专业技术人员考试参考题库及答案解析
- 2026厦门市集美区新城幼儿园非在编保育员招聘1人考试备考题库及答案解析
- 2026年荥经县教师招聘笔试备考题库及答案解析
- 2026年勃利县教师招聘考试模拟试题及答案解析
- 昭通市2026年市直事业单位公开选调工作人员(42人)笔试参考题库及答案解析
- 2026年金湖县教师招聘考试备考题库及答案解析
- 2026简嘎乡人民政府招聘乡村公益性岗位17人考试参考题库及答案解析
- 2026年博野县教师招聘考试备考试题及答案解析
- 2026-安徽教育局会务接待招聘考试参考题库-含答案
- 2026-河南街道办税务专员招聘考试参考题库-含答案
- 中证信用增进股份有限公司招聘笔试题库2026
- 2026年高校教师资格证考试题库附参考答案(满分必刷)
- 2026-2030年中国天文望远镜行业市场发展趋势与前景展望战略分析报告
- 2026-2027学年川教版(2024)小学信息技术四年级上册教学计划及进度表(第一学期)
- 混凝土工程中常见裂缝成因及预防措施培训
- 2026年秋苏科版(新版)初中信息技术七年级上册(全册)教学设计(附目录p100)
- 2027届新高考语文精准冲刺复习作文审题立意指导及范文
- 《无人机维护技术》全套教学课件
- 超24 h急性缺血性脑卒中患者血管内取栓治疗的研究进展
- 学堂在线 批判性思维-方法和实践 章节测试答案
- CNG加气机泄漏现场应急预案
评论
0/150
提交评论