




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中北大学操作系统课程设计说明书学院、系:软件学院专 业:软件工程学生姓名: 戴国鹏 学号: 1121011532设计题目: 基于Linux的模拟文件系统的设计与实现起迄日期:2013年11月22日-2013年12月6日指导教师:李玉蓉2013年12月6日1 .需求分析(1)设计目的:模拟文文件管理是操作系统的重要功能之一。用高级语言编写和调试一个简单的文件系统, 件管理的工作过程。从而加深学生对文件系统内部功能和内部实现的理解和认识。(2)基本功能:主要包括:改变目录(CD,创建目录(MD,显示目录(DIR),删除目录(RD,打开全部 文件(openall ),打开单个文件(open),建立一
2、个文件(create ),删除一个文件(delete ), 写文件(write ),读文件(read),改文件的保护码(change),退出(exit )等。(3)设计要求:设计一个10个用户的文件系统。每个用户最多可以保存10个文件,一次运行用户可打开多个文件。程序采用二级文件目录。(即设置主目录(MFD和用户文件目录(UFD)。另外,可打开文件设置指针。为了方便实现,对文件的读写作了简化。在执行读写命令时,只需改读写指针。并不进行实际的读写操作。2 .总体设计2.1 数据结构struck filechar name10;int code;/保护码int size;char pwrite;/
3、读写指针;struct userchar name10;struct file *list;目录指针;2.2 主要函数声明void running。;void delet();void write();void open();Word资料void close();void bye();void read();void create();void input();2.3模块结构图Main函数0岩鸟.一3 .详细设计3.1 模块及功能说明3.1.1 input() 模块功能:进入文件系统。3.1.2 running。模块功能:选择相应的操作。3.1.3 bye()模块功能:退出文件系统函数 bye
4、()。3.1.4 create()模块功能:创建文件。3.1.5 open()模块功能:打开文件。3.1.6 close()模块功能:关闭文件。3.1.7 write()模块功能:写文件(需要先打开文件)。3.1.8 read() 模块功能:读文件(需要先打开文件)。3.1.9 9 delet()模块功能:删除文件。3.2 模块代码3.2.1 main()模块int main() input();running。;return 0;3.2.2 input()模块void input() char name;int i;printf("n*n");*(input digita
5、lprintf(" Please choose the following usernamen");printf("1.one 2.two 3.three 4.four 5.fine 6.six 7.seven 8.eigh9.nine 0.ten n");printf(”*nn");printf("Please input username:");scanf("%s",&name); switch(name) case'1':for(i=0;i<10;i+)UFDi=one
6、i;MFD0=use1;running();break; case'2':for(i=0;i<10;i+)UFDi=twoi;MFD0=use1;running();break; case'3':for(i=0;i<10;i+)UFDi=threei;MFD0=use2;running();break; case'4':for(i=0;i<10;i+)UFDi=fouri;MFD0=use3;running();break; case'5':for(i=0;i<10;i+)UFDi=finei;MFD0=u
7、se4;running();break; case'6':for(i=0;i<10;i+)UFDi=sixi;MFD0=use5;running();break; case'7':for(i=0;i<10;i+)UFDi=seveni;MFD0=use6;running();break; case'8':for(i=0;i<10;i+)UFDi=eighti;MFD0=use7;running();break; case'9':for(i=0;i<10;i+)UFDi=ninei;MFD0=use8;run
8、ning();break; case'0':for(i=0;i<10;i+)UFDi=teni;MFD0=use9;running();break; default : printf("Enter the user name wrong!n"); input(); 3.2.3 running。 模块 void running。 char order;int i;printf("n*n");printf("The user all the files below: n");for(i=0;i<10;i+)pr
9、intf("%s",UFD);printf("t");printf("n*n");printf(Choose option(input code ) : n");printf("c-create d-delete o-open s-close r-read w-write b-bye t.exit R Re-election user ) n");printf("n*n");printf("Input commandin');scanf("%s&
10、quot;,&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 : pri
11、ntf("Input error!nn");running。;4 .心得体会操作系统是计算机科学与技术专业中的一门重要基础课,目的是让我们了解操作系统的基本概念,理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。通过课程设计,可以进一步理解在计算机系统上运行的其它各类操作系统,并懂得在操作系统的支持下建立自己的应用系统。 操作系统课程设计, 对于训练我们掌握程序设计、 熟 悉上机操作和程序调试技术都有重要作用。 重点培养我们的思维能力、创新能力和排错能力。通过课程设计,进一步融会贯通教材内容,掌握程序各功能模块的工作原
12、理,相互联系和来龙去脉,完整地建立系统的概念。激发我的学习热情和主动性,培养我的独立工作能力, 在实践活动中,将所学知识综合运用,增长才干,并积累经验。对编程语言又有了更深一层次的认识,并对编程能力有所加强, 但还是很多的不足有待改进, 对于编程来说还需要大量 的实践,才能在发现问题和解决问题中前进与提高。5 .附录:源代码#include <stdlib.h>#include <stdio.h>#include <string.h>#define NULL 0int count=0;struct filechar name10;int code;int s
13、ize;char pwrite;struct userchar name10;struct file *list;struct file one10="a1",0,10,0,"a2”210,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;struct file two10="b1",0,10
14、,0,"b2",2,10,0,"b3",1,10,0,"b4”210,0,"b5”210,0,"b6”210,0,"b7”210,0,"0",0,0,0, "0",0,0,0,"0",0,0,0;struct file three10="c1",0,10,0,"c2”210,0,"c3”,1,10,0, "c4",2,10,0,"c5",2,10,0,"c6"
15、;,2,10,0,"c7",1,10,0,"0",0,0,0, "0",0,0,0,"0",0,0,0;struct file four10="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"
16、,0,0,0,"0",0,0,0;struct file fine10="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;struct file six10="f1",0,10,0,"f2"
17、,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;struct file seven10="g1",0,10,0,"g2",2,10,0,"g3",1,10,0, "g4"210,0"g5"21
18、0,0"g6"210,0"g7",1,10,0,"0",0,0,0, "0",0,0,0,"0",0,0,0;struct file eight10="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,
19、 "0",0,0,0,"0",0,0,0;struct file nine10="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;struct file ten10="k1
20、",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;struct file UFD10;filestructAFD5="0",0,0,0,"0",0,0,0,"0",0,0,0,
21、"0",0,0,0,"0",0,0,0;userstruct use10="number1",one,"number2",two,"number3",three,"number4",four,"number5",fine,"number6",six,"number7",seven,"number8",eight,"number9",nine,"number10&quo
22、t;,ten;struct user MFD1="0",0;void running。;void delet();void write();void open();void close();void bye();void read();void create。;void input();int main() input();running。;return 0;void running() char order;int i;*n,);printf("The user all the files below:n");for(i=0;i<10;i+)pr
23、intf("%s",UFD);printf("t");printf("n*n");printf(printf("nChoose option<input code>: n");printf("c-create d-delete o-open s-close r-read w-write b-bye t.exit<Re-election user> n");*n");printf("Input command:n");scanf(&
24、quot;%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;defaul
25、t :printf("Input error!nn");running();void delet() char name10;int i,flag;do printf("Input file name: nn");scanf("%s",&name);flag=0;for(i=0;i<10;i+) if(strcmp(UFD,name)flag=1;else flag=0;strcpy(UFD,"0");UFDi.code=0;UFDi.pwrite=0;UFDi.size=0;
26、printf("Delete success!n");break;Word资料if(flag=1)printf("Without this file,please enter again!n");while(flag=1);printf("n");running。;void open() char name10;int i,j,flag;if(count=5) printf("Run queue is full!n");running。;else do printf("Input file name:n&
27、quot;);scanf("%s",&name);flag=0;for(i=0;i<10;i+) if(strcmp(UFD,name)flag=1;else flag=0;break;Word资料if(flag=1)printf("Without this file,please enter again!n");while(flag=1);for(j=0;j<5;j+) if(strcmp(AFD,name)flag=1;else flag=0;break;if(flag=1)for(j=0;j<5;j
28、+) if(!strcmp(AFD,"0") AFDj=UFDi;printf("The file has been opend!n");count+;break;elseprintf("The file has been opended in the queue!nn");running。;void close() char name10;int j,flag;printf("Input file name: n");scanf("%s",&name);flag=0;for
29、(j=0;j<5;j+) if(strcmp(AFD,name) flag=1; else flag=0;strcpy(AFD,"0");AFDj.code=0;AFDj.pwrite=0;AFDj.size=0;printf("The file has been closed in the run queue!n"); break;if(flag=1)operateprintf("Runqueue without the open file ,pleaseagain!nn");running。;void
30、 bye() int i,j;for(i=0;i<5;i+) for(j=0;j<10;j+) if(!strcmp(AFD,UFD) UFDi=AFDi;break;printf("The saved file directory!n");printf("End of the operation。");exit(0);void read() char name10;int j,flag=0;printf("Input file name: n");scanf("%s",&
31、;name);for(j=0;j<5;j+)if(!strcmp(AFD,name) flag=1; break;if(flag=1)if(AFDj.code=0|AFDj.code=2) AFDj.pwrite='R'printf("The state of the files are read!n");else printf("No permission to write this file!n"); elsefileprintf("Run queue without this file,please op
32、en thefirst!n");printf("n"); running。;void write() char name10;int j,flag=0;printf("Input file name: n");scanf("%s",&name);for(j=0;j<5;j+)if(!strcmp(AFD,name) flag=1; break;if(flag=1)if(AFDj.code=1|AFDj.code=2) AFDj.pwrite=W;printf("The state of t
33、he files are write!n");else printf("No permission to write this file!n"); elseprintf("Run queue without this file,please open the filefirst!n");printf("n");running。; void create。 char name10;int i,j=0,flag;for(i=0;i<10;i+) if(!strcmp(UFD,"0") j+;
34、if(j>9) printf("The folder is full,please delete!n"); running。; else do printf("Input file name; n");scanf("%s",&name);flag=0;for(i=0;i<10;i+)Word资料 if(!strcmp(UFD,name) printf("File name duplication,please enter again!n");flag=1;break;while(fl
35、ag=1);for(i=0;i<10;i+) if(!strcmp(UFD,"0") strcpy(UFD,name);doprintf("Please enter the protected codechoose0-2,0-Read1-Write 2-Read or Write:n");scanf("%d”,&UFDi.code);if(UFDi.code!=0&&UFDi.code!=1&&UFDi.code!=2)printf("Inputerror,input protection code again!n");while(UFDi.code!=0&&UFDi.code!=1&&UFDi.code!=2);printf("Please enter the file sizechoose the digital:n");scanf("%d”,&UFDi.size);printf("The file has been established!");
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年关于格式合同的法律规制与挑战
- 2025混凝土拌合站租赁合同范本
- 2025年桥梁工程试题
- 2025年肠梗阻理论试题
- 幼儿园语言教育与活动设计 课件 第6、7章 幼儿园语言教育活动实施的价值取向与反思;幼儿园语言教育活动中的教师与幼儿
- 高三高考数学知识点总结
- 保险-72名亿万富翁死亡的背后
- 纵隔疝的临床护理
- 火灾应急流程制作指南
- 某咨询-北京世博伟业房地产0806一阶段人力资源诊断报告
- 新员工入职报到通知书
- 2018年版电工-国家职业技能标准
- 浅谈如何做好财务安全工作
- 砼塔施工方案
- 电动车分期付款的合同范本
- 高中英语-Live form the Louvre教学设计学情分析教材分析课后反思
- 2023北京高考英语答题卡ok
- 医务科运用PDCA循环提高门诊医生准时出诊率PDCA成果汇报
- 动脉采血操作考核标准
- 艾媒咨询 2023-2024年中国水产行业现状及消费趋势洞察报告
- 2023年新疆省新疆生产建设兵团四年级数学第二学期期末预测试题含解析
评论
0/150
提交评论