版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE操作系统课程设计
模拟文件管理系统一、实验内容基本要求:编写一程序,模拟一个简单的文件管理系统。树型结构,目录下可以是目录,也可以是文件。在此文件管理系统,可实现的操作有:改变目录:格式:cd<目录名>显示目录:格式:dir[<目录名>]创建目录:格式:md<目录名>删除目录:格式:rd<目录名>新建文件:格式:edit<文件名>删除文件:格式:del<文件名>退出文件系统:exit目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开功能具体描述:改变目录:改变当前工作目录,目录不存在是给出出错信息显示目录:显示指定目录下或当前目录下所有文件和一级目录(选做:带/s参数的dir命令,显示所有子目录)创建目录:在指定路径或当前路径下创建指定目录。重名时给出出错信息。删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。创建文件:创建指定名字的文件,只要创建表示文件的节点即可,内容及大小不考虑。删除文件:删除指定文件,不存在时给出出错信息。退出文件系统:exit总体流程:初始化文件目录输出提示符,等待接受命令,分析键入的命令;对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令。直到键入exit退出为止。二、数据结构设计StructFileNode{Charfilename[FILENAME_LEN];//文件名/目录名Intisdir;//目录、文件的识别标志Inti_nlink;//文件链接数Intadr;//文件的地址StructFileNode*parent,*child;//指向父亲的指针和左孩子的指针StructFileNode*sibling_prev,*sibling_next;//指向前一个兄弟的指针和后一个兄弟的指针。}三、算法设计3.1功能模块图3.2算法思路3.2.1boolspile(char*str,char*cmdstr,char*filestr);//切割字符串boolshell(char*str); //用来解释命令boolerrorp(intid); //打印错误提示boolboot(); //启动初始化filenode*find(char*str,filenode*_root); //递归对目录树进行查找boolcdexc(char*str); //执行cd命令booldirexc(char*str); //执行dir命令boolmdexc(char*str); //执行md命令booleditexc(char*str); //执行edit命令booldelexc(char*str,filenode*fcur,boolmode,booldir); //执行del命令boolexitexc(); //退出filenode*createnode(char*str,bool_isdir,int_adr,filenode*_par);//新建对象节点 函数调用图3.2.2设计思想建立一刻目录树,根据输入的命令字符串,对该目录树进行增删等操作。(1)定义全局变量filenode*cur=NULL; //指向当前目录节点filenode*root=NULL; //指向根节点目录节点char*shellstr[7]={"cd","dir","md","rd","edit","del","exit"};//命令字符串intshelllen=7; //命令的字符串的长度(2)主函数模块调用boot模块初始化,然后使用while循环,每次循环中用户可以输入命令字符串,调用shell模块进行解释并执行操作,执行完成后再次进入循环,直到用户使用exit退出。(3)其他模块说明(用文字描述,不要代码) 删除模块:调用find函数查找到目录节点,然后进行删除节点操作,并注意特殊情况。新建目录/文件模块:通过调用find查找是否重复,若不重复就进行增加节点。切换目录模块:通过find函数找到节点,然后将cur指针指向该节点。显示目录模块:通过find函数找到节点,循环遍历该节点显示。退出模块:执行exit函数。
四、测试数据及程序运行情况
五、实验过程中出现的问题及解决方法判断路径需要识别全路径与相对路径,解决方法,通过对符号“/”的查找,分四种情况。删除当前目录或其父目录会造成cur乱指,解决方法,删除前先判断,如果出现这种情况就重新设置cur。递归删除子目录,若子目录非空,会弹出警告,解决方法,设置安静模式,用于递归删除。六、自我评析与总结通过本次课程设计,我认真了解了系统中目录的工作原理,以及他所采用的数据结构原理,让我对操作系统有了更深的体会。七、参考
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年滨州邹平市教育系统校园招聘教师48名备考题库(山师-曲师站)附答案详解(完整版)
- 成都职业技术学院2026年上半年编制外公开(考试)招聘30名工作人员考试备考试题及答案解析
- 2026湖南益阳桃江县选调事业单位工作人员19人备考题库含答案详解(夺分金卷)
- 2026江苏南京大学XZ2026-044现代工程与应用科学学院科研人员招聘考试参考试题及答案解析
- 2026上半年四川成都职业技术学院编制外(考核)招聘高层次人才20人备考题库附答案详解(黄金题型)
- 2026湖南岳阳市云溪区事业单位集中选调9人备考题库含答案详解(研优卷)
- 2026重庆行政学院事业单位考核招聘10人备考题库含答案详解ab卷
- 2026陕西西安经济技术开发区管委会招聘111人备考题库附答案详解(培优b卷)
- 2026辽宁化肥有限责任公司及出资企业人员招聘3人备考题库及一套参考答案详解
- 2026北京昌平区教委所属事业单位第一次招聘教师97人备考题库附答案详解(轻巧夺冠)
- 0-6岁儿童行为预警及早期干预手册
- 水运工程结构防腐蚀施工规范 JTS-T 209-2020
- 带状疱疹后遗神经痛的中医治疗
- 国别与区域研究毕业论文
- 防水公司挂靠协议书
- 2025贵州高速公路集团有限公司第二批次招聘6人 (第二轮)考试笔试参考题库附答案解析
- 2025黑龙江龙建路桥股份有限公司财务共享中心职员岗位竞聘上岗笔试历年参考题库附带答案详解
- DB52-T 1806-2024 偏瘫患者体位转移及轮椅使用技术规程
- 道路交通安全法教育课件
- 2025年教师招聘考试教育综合知识6000题(主观题含答案)
- 大规模水电站水工建筑结构健康大数据分析-洞察及研究
评论
0/150
提交评论