您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 基于Linux的模拟文件系统的设计与实现
中北大学操作系统课程设计说明书学院、系:软件学院专业:软件工程学生姓名:戴国鹏学号:1121011532设计题目:基于Linux的模拟文件系统的设计与实现起迄日期:2013年11月22日-2013年12月6日指导教师:李玉蓉2013年12月6日1.需求分析(1)设计目的:1文件管理是操作系统的重要功能之一。用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而加深学生对文件系统内部功能和内部实现的理解和认识。(2)基本功能:主要包括:改变目录(CD),创建目录(MD),显示目录(DIR),删除目录(RD),打开全部文件(openall),打开单个文件(open),建立一个文件(create),删除一个文件(delete),写文件(write),读文件(read),改文件的保护码(change),退出(exit)等。(3)设计要求:①设计一个10个用户的文件系统。每个用户最多可以保存10个文件,一次运行用户可打开多个文件。②程序采用二级文件目录。(即设置主目录(MFD)和用户文件目录(UFD))。另外,可打开文件设置指针。③为了方便实现,对文件的读写作了简化。在执行读写命令时,只需改读写指针。并不进行实际的读写操作。2.总体设计2.1数据结构struckfile{charname[10];intcode;//保护码intsize;charpwrite;//读写指针};structuser{charname[10];structfile*list;//目录指针};2.2主要函数声明voidrunning();voiddelet();voidwrite();;voidopen();2voidclose();voidbye();voidread();voidcreate();voidinput();2.3模块结构图3.详细设计3.1模块及功能说明3.1.1input()模块功能:进入文件系统。3.1.2running()模块功能:选择相应的操作。3.1.3bye()模块功能:退出文件系统函数bye()。3.1.4create()模块功能:创建文件。3.1.5open()模块3功能:打开文件。3.1.6close()模块功能:关闭文件。3.1.7write()模块功能:写文件(需要先打开文件)。3.1.8read()模块功能:读文件(需要先打开文件)。3.1..9delet()模块功能:删除文件。3.2模块代码3.2.1main()模块intmain(){input();running();return0;}3.2.2input()模块voidinput(){charname;inti;printf(\n*******************************************************************************\n);printf(Pleasechoosethefollowingusername(inputdigital):\n);printf(1.one2.two3.three4.four5.fine6.six7.seven8.eigh9.nine0.ten\n);printf(*******************************************************************************\n\n);printf(Pleaseinputusername:);4scanf(%s,&name);switch(name){case'1':for(i=0;i10;i++)UFD[i]=one[i];MFD[0]=use[1];running();break;case'2':for(i=0;i10;i++)UFD[i]=two[i];MFD[0]=use[1];running();break;case'3':for(i=0;i10;i++)UFD[i]=three[i];MFD[0]=use[2];running();break;case'4':for(i=0;i10;i++)UFD[i]=four[i];MFD[0]=use[3];running();break;case'5':for(i=0;i10;i++)UFD[i]=fine[i];MFD[0]=use[4];running();break;case'6':for(i=0;i10;i++)UFD[i]=six[i];MFD[0]=use[5];running();break;case'7':for(i=0;i10;i++)UFD[i]=seven[i];MFD[0]=use[6];running();break;case'8':for(i=0;i10;i++)UFD[i]=eight[i];MFD[0]=use[7];running();break;case'9':for(i=0;i10;i++)UFD[i]=nine[i];MFD[0]=use[8];running();break;case'0':for(i=0;i10;i++)UFD[i]=ten[i];MFD[0]=use[9];running();break;default:printf(Entertheusernamewrong!\n);input();}}3.2.3running()模块voidrunning(){charorder;inti;printf(\n******************************************************************************\n);printf(Theuserallthefilesbelow:\n);for(i=0;i10;i++){printf(%s,UFD[i].name);printf(\t);}5printf(\n**************************************************************************\n);printf(Chooseoption(inputcode):\n);printf(c-created-deleteo-opens-closer-readw-writeb-byet.exit(Re-electionuser)\n);printf(\n***************************************************************************\n);printf(Inputcommand:\n);scanf(%s,&order);switch(order){case'c':create();break;case'd':delet();break;case'o':open();break;case's':close();break;case'r':read();break;case'w':write();break;case'b':bye();break;case't':input();break;default:printf(Inputerror!\n\n);running();}}4.心得体会操作系统是计算机科学与技术专业中的一门重要基础课,目的是让我们了解操作系统的6基本概念,理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。通过课程设计,可以进一步理解在计算机系统上运行的其它各类操作系统,并懂得在操作系统的支持下建立自己的应用系统。操作系统课程设计,对于训练我们掌握程序设计、熟悉上机操作和程序调试技术都有重要作用。重点培养我们的思维能力、创新能力和排错能力。通过课程设计,进一步融会贯通教材内容,掌握程序各功能模块的工作原理,相互联系和来龙去脉,完整地建立系统的概念。激发我的学习热情和主动性,培养我的独立工作能力,在实践活动中,将所学知识综合运用,增长才干,并积累经验。对编程语言又有了更深一层次的认识,并对编程能力有所加强,但还是很多的不足有待改进,对于编程来说还需要大量的实践,才能在发现问题和解决问题中前进与提高。5.附录:源代码#includestdlib.h7#includestdio.h#includestring.h#defineNULL0intcount=0;structfile{charname[10];intcode;intsize;charpwrite;};structuser{charname[10];structfile*list;};structfileone[10]={{a1,0,10,0},{a2,2,10,0},{a3,1,10,0},{a4,2,10,0},{a5,2,10,0},{a6,2,10,0},{a7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfiletwo[10]={{b1,0,10,0},{b2,2,10,0},{b3,1,10,0},{b4,2,10,0},{b5,2,10,0},{b6,2,10,0},{b7,2,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfilethree[10]={{c1,0,10,0},{c2,2,10,0},{c3,1,10,0},{c4,2,10,0},{c5,2,10,0},{c6,2,10,0},{c7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfilefour[10]={{d1,0,10,0},{d2,2,10,0},{d3,1,10,0},{d4,2,10,0},{d5,2,10,0},{d6,2,10,0},{d7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfilefine[10]={{e1,0,10,0},{e2,2,10,0},{e3,1,10,0},{e4,2,10,0},{e5,2,10,0},{e6,2,10,0},{e7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};8structfilesix[10]={{f1,0,10,0},{f2,2,10,0},{f3,1,10,0},{f4,2,10,0},{f5,2,10,0},{f6,2,10,0},{f7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfileseven[10]={{g1,0,10,0},{g2,2,10,0},{g3,1,10,0},{g4,2,10,0},{g5,2,10,0},{g6,2,10,0},{g7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfileeight[10]={{h1,0,10,0},{h2,2,10,0},{h3,1,10,0},{h4,2,10,0},{h5,2,10,0},{h6,2,10,0},{h7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfilenine[10]={{j1,0,10,0},{j2,2,10,0},{j3,1,10,0},{j4,2,10,0},{j5,2,10,0},{j6,2,10,0},{j7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfileten[10]={{k1,0,10,0},{k2,2,10,0},{k3,1,10,0},{k4,2,10,0},{k5,2,10,0},{k6,2,10,0},{k7,1,10,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};structfileUFD[10];structfileAFD[5]={{0,0,0,
本文标题:基于Linux的模拟文件系统的设计与实现
链接地址:https://www.777doc.com/doc-3258997 .html