操作系统课程设计-模拟文件管理系统_第1页
操作系统课程设计-模拟文件管理系统_第2页
操作系统课程设计-模拟文件管理系统_第3页
操作系统课程设计-模拟文件管理系统_第4页
操作系统课程设计-模拟文件管理系统_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论