您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 多级文件目录的文件管理系统
山东理工大学计算机学院课程设计(操作系统)班级姓名学号指导教师二○一一年六月二十四日课程设计任务书及成绩评定课题名称基于多级文件目录的文件管理系统设计Ⅰ、题目的目的和要求:巩固和加深对操作系统(OS)原理的理解,初步掌握操作系统组成模块和应用接口的使用方法,提高进行工程设计和系统分析的能力;通过选做上面的课题,实现OS最基本模块的管理功能,重点放在数据结构设计、文档规范化和程序设计风格。Ⅱ、设计进度及完成情况日期内容6.13-6.15选取参考书,查阅有关文献资料,完成课程设计说明书内容1部分。完成课程设计说明书内容2-4部分6.16~6.20创建相关数据结构,录入源程序6.21~6.22调试程序并记录调试中的问题,完成课程设计说明书第5部分。6.23系统测试,演示设计成果,考核成绩。6.24整理课程设计说明书,上午11时,由学习委员交课程设计说明书(计算机科学系9#213或直接交给指导教师)Ⅲ、主要参考文献及资料[1]汤子赢等.计算机操作系统(第二版).西安电子科技大学出版社,2006.8[2]冯耀霖等.操作系统,西安电子科技大学出版社.1992[3]张尧学等.计算机操作系统教程(第2版).清华大学出版社,2001.4[4]谭耀铭.操作系统.中国人民大学出版社,2003.4[5]刘坤起.操作系统学习辅导与习题详解[M].北京:电子工业出版社,2003:58-67[6]孙钟秀等编著,操作系统教程[M],高等教育出版社,2003:46-78Ⅳ、成绩评定:设计成绩:(教师填写)指导老师:(签字)二○一一年六月二十四日目录第一章概述…………………………………………………………1第二章系统分析……………………………………………………2第三章系统设计……………………………………………………3第四章程序设计流程图或N-S图…………………………………6第五章调试过程中的问题及系统测试情况………………………7第六章结束语………………………………………………………9附录……………………………………………………………………101第一章概述课程设计是实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《计算机操作系统》一门重要的专业课,是开发操作系统和软件系统的理论和应用基础。本课程设计要求设计一个基于多级文件目录的文件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。第二章系统分析21.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多级文件目录的文件管理系统。2.文件物理结构可采用显式链接或其他方法。4.文件目录结构采用多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:第三章系统设计1.文件的操作3(1)文件的创建:(2)文件的打开:(3)文件的读:read(4)文件的写:write(5)文件关闭:close2.数据结构体1).文件夹数据结构体:typedefstructMFD//主文件目录{charusername[100];charpassword[100];FILE*fp;//文件目录指针}MFD;2).用户文件数据结构体:typedefstructUFD//用户文件目录{charfilename[256];charprotect;//保护码intlength;//文件长度}UFD;3).功能实现命令数据结构体:typedefstructCOMM//命令串{charstring[256];//用户命令串structCOMM*next;//后继指针:指向命令各参数所在的结点}COMM;MFDmainfd[N];//主文件目录数组4UFDuserfd[M];//用户文件目录数组OFDopenfd[L];//打开文件目录数组COMM*command;//命令串指针intnext;}DISK;3.主要模块组成1).头文件:#includeio.h#includeconio.h//里面有clrscr()清屏函数#includestdio.h#includestdlib.h#includemalloc.h//内存分配函数#includestring.h#includectype.h#defineN30//用户数#defineM20//一个用户可保存M个文件#defineL5//用户只能一次打开L个文件2).功能模块实现函数:voidinit();//初始化主文件目录数组voidinit_ufd(char*username);//初始化用户文件目录voidmesg(char*str);//输出函数char*getuser();//设置用户函数声明char*getpass();//设置口令函数声明COMM*readcommand();//读命令串函数声明voidlogin();//用户登录voidsetpass();//设置口令5voidcreate();//创建用户文件voidmydelete();//删除voidmyread();//读voidmyopen();//打开voidmyclose();//关闭voidmywrite();//写voidhelp();//帮助第四章程序设计流程图或N-S图6图1程序流程图第五章调试过程中的问题及系统测试情况开始输入用户判断是否存在YESNO删除文件创建子目录改变子目录列出子目录关闭文件打开文件创建文件读文件写文件是否退出结束NOYES71.运行后主界面显示图2主界面2.输入login命令用户登陆,当用户账号不存在时,即可创建:图3创建用户3.创建用户下文件功能实现:图4创建用户4.打开文件open命令功能的实现8图5打开文件5.读文件read命令功能实现图6.读文件6.写文件write命令功能实现,及对内容中添加实现图7写文件8.退出文件logout操作图8退出文件第六章结束语这次操作系统课程设计,在编写过程中,遇到很多难题,特别是在操9作系统实验中不曾注意到的问题,也有许多新的问题,在实际反复调试运行中,不断加深了对操作系统的理解,也很大地程度上提高了编程的能力,由于对重要概念的把握程度还不够深入,在实际理解编写时遇到很多不该发生的问题。不过,都很好的解决并牢牢地掌握住了。通过做多级目录文件系统,我知道了多级目录文件系统的工作原理,在打开文件时系统是如何进行操作的,并加深了理解。希望在以后的学习中,继续保持这份昂扬的斗志,继续努力学习计算机方面的知识,永不懈怠。通过这次课程设计,不仅让我了解了多级目录文件系统,更重要的还让我学会了、或者说是验证了“做事一定要有次序和对事物的总体把握”这句话。开始我一味的进行调试,急切的想侥幸调试出来,但由于没有进行深入的考虑,我调试了很久都没没有成功,我仔细的分析题目,分析材料,在原由的基础上我进行了改正,我最后还是调试成功了,虽然还是经过了一翻努力,当然汗水还是留的很值,这次操作系统实习,不仅让我对操作系统这门课程有了更深入的研究、对很多重要的概念有了巩固和掌握,还给了我今后做事的启示。做事要塌实,不能想着一步登天,要有计划,有目的的进行做事。盲目真的不应该再在我们新一代的大学生身上出现了,我们应该认真找到自己的缺点并且及时改正。在这里,我如果不说感谢的话,不知道要说些什么好;首先感谢学校和父母,然后更重要的是感谢老师的教导。“活到老,学到老”,这也是我整个学习过程中的一次经验、一次总结,我相信它肯定会给我今后的学习有所启示和指导作用。附录:源程序代码:#includeio.h#includeconio.h//里面有clrscr()清屏函数10#includestdio.h#includestdlib.h#includemalloc.h//内存分配函数#includestring.h#includectype.h#defineN30//用户数#defineM20//一个用户可保存M个文件#defineL5//用户只能一次打开L个文件typedefstructMFD//主文件目录{charusername[100];charpassword[100];FILE*fp;//文件目录指针}MFD;typedefstructUFD//用户文件目录{charfilename[256];charprotect;//保护码intlength;//文件长度}UFD;typedefstructOFD//打开文件目录{charfilename[256];charopencode;//打开保护码int*fp;//读写指针}OFD;typedefstructCOMM//命令串{charstring[256];//用户命令串structCOMM*next;//后继指针:指向命令各参数所在的结点}COMM;MFDmainfd[N];//主文件目录数组UFDuserfd[M];//用户文件目录数组OFDopenfd[L];//打开文件目录数组COMM*command;//命令串指针charusername[100];intusernum,savenum,opennum;intworkfile;voidinit();//初始化主文件目录数组voidinit_ufd(char*username);//初始化用户文件目录voidmesg(char*str);//输出函数char*getuser();//设置用户函数声明char*getpass();//设置口令函数声明COMM*readcommand();//读命令串函数声明11voidlogin();//用户登录voidsetpass();//设置口令voidcreate();//创建用户文件voidmydelete();//删除voidmyread();//读voidmyopen();//打开voidmyclose();//关闭voidmywrite();//写voidhelp();//帮助voidmain(){init();printf(\n\t\t计科0804班0812103773张超);printf(\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);printf(\n\t\t多级文件目录的文件管理系统);printf(\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~);printf(\n\t\t选择命令:);printf(\n\t\tloginsetpasscreate);printf(\n\t\topenreadwritedelete);printf(\n\t\thelpexitcopyrename);printf(\n\t\t首次使用请输入help命令请求帮助);printf(\n\t\t使用中欢迎以help[command]请求帮助);while(1){readcommand();if(strcmp(command-string,create)==0)create();elseif(strcmp(command-string,delete)==0)mydelete();elseif(strcmp(command-string,open)==0)myopen();elseif(strcmp(command-string,close)==0)myclose();elseif(strcmp(command-string,read)==0)myread();elseif(strcmp(command-string,write)==0)mywrite();e
本文标题:多级文件目录的文件管理系统
链接地址:https://www.777doc.com/doc-7310803 .html