




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(上机实验)报告课程名称: 操作系统原理 学生姓名: 沈海洋 学 号: 所在学院: 计算机科学与技术学院 专 业: 指导教师: 钱景辉 2016年 1 月 11 日课程设计(上机实验)报告填写说明1本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;2本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小4号宋体,1.5倍行距),禁止打印在其它纸上后剪贴;3本报告中的“设计说明书”应按论文的格式成文,并直接书写(或打印)在本报告“设计说明书”栏目内。其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。 说明书的篇幅应不少于2000字。4对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。5软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。课程设计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。 课 程 设 计(上 机 实 习)报 告课程设计(上机实验)题目:文件系统的模拟设计目的与任务: 理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS的有关命令)。1. 修改md命令;2. 修改Help命令;3. 修改命令行预处理程序;4. 新增fc命令,实现两个文件的比较;5. 新增batch命令,实现批处理;6. 完善copy命令,改善某些缺陷。内容和要求:1.修改md命令:增加“属性”参数,用于创建指定属性的子目录。命令形式如下:md 。属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。例如:md usr rh其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user.2. 修改Help命令:修改help命令的显示方式和显示内容:修改HelpComd()函数,使之提供菜单式的较详细的帮助信息。例如可以先用菜单形式简单列出各命令名称,当用户选择某个命令的序号后,再比较详细地介绍该命令,包括命令的各种形式,每种形式的功能,以及某些举例说明等等。3. 修改命令行预处理程序:修改命令行预处理函数ParseCommand( ),使以下命令行(命令与参数间无空格符)可以正确执行:cd/,cd.,dir/usr.copy/usr/boy mail 即命令名称与后边的“/”或“.”之间不需要空格也能正确执行。4.新增fc命令,实现两个文件的比较:命令形式:fc 5.新增batch命令,实现批处理:命令形式:batch batchfile 命令功能:从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。6.完善copy命令,改善某些缺陷:正确的功能应该是:若当前目录中不存在文件boy,则报错;第2个命令若当前目录是根目录,因根目录没有父目录,故应报错;若当前目录的父目录中已经存在名为boy的文件,也报错(或询问用户是否覆盖)。其他情况上述命令都应能正确执行。 课 程 设 计(上 机 实 习)报 告设 计 说 明 书(说明书的撰写要求请参看封里的“报告填写说明3”。篇幅不够可附页)1 修改md命令开始命令格式正确吗指定路径正确吗新目录有重名吗在指定目录中查找空目录项(若已无空目录项,则为其分配新的盘块),找到后为新目录登记目录项。为新目录分配1盘块,用于登记该目录的第一个目录项,即“.”目录项。查询文件的RHS属性,并记录、存储。返回显示相关的错误信息否否是是是否 流程图如下:课 程 设 计(上 机 实 习)报 告 设计思想:程序的指令格式为md user |rh,需改为md user rh格式,因此可在md user |rh中修改代码实现修改功能。要实现此功能,只需要获取目录的属性时删除判断操作符“|”的过程即可。具体方法:在GetAttrib函数中删除如下代码:if (str0!=|)coutn命令中属性参数错误。n;return -1; 修改后的操作方法:输入mduserrh即可正确执行 截图如下: 2 修改Help命令 流程图如下:课 程 设 计(上 机 实 习)报 告显示help命令可选内容开始命令正确?是输入126或0是显示所需help信息返回否报错否设计思想:利用switch(n) case语句实现选择只查看需了解的操作命令。 具体方法:首先利用cout语句输出改操作系统所拥有的命令.并用数字标明,供用户选择,再利用switch(n)case语句实现具体内容的介绍。例如: cout 1.create t; case 1:cout create n 创建新文件,文件属性是r、h或s。n; break; 运行效果如下: 3 修改命令行预处理程序 流程图如下:开始命令格式是否正确命令中是否有参数指定路径是否正确是是是将获得的全路径名以及指定目录的首块号保存到当前目录变量中返回显示错误信息否否显示当前目录否 设计思想:在命令行预处理函数ParseCommand( )中进行修改,使以下命令行(命令与参数间无空格符)可以正确执行:cd/,cd.,dir/usr,copy/usr/boy mail具体方法:在ParseCommand( )处理cd/,dir/usr等情况的代码中增加处理“.”的代码。for (i=0;comd0i!=0;i+)if(comd0i=/)/处理cd/,dir/usr等情况break;else if (comd0i=. & comd0i+1=.) break;4 新增fc命令,实现两个文件的比较流程图如下:开始命令格式是否正确调用ProcessPath()查找两文件的指定路径指定路径是否正确调用FindFCB()查找两文件的首块号文件是否存在将文件内容进行比较并输出结果返回显示错误信息否否否是是是 设计思想:首先利用ProcessPath()函数和FindFCB()函数查找文件的目录所在首块号和文件所在首块号,判断其存在性,并记录其全路径名。如果需要比较的文件都存在的话则进行比较。 具体实现:int FcComd(int k)if(k!=2)cout出错:输入命令格式错误,请重新输入endl;return false;short int i,j=0,s1,s2,size1,size2,s,s3;char attrib=0,*FileName,*FileName1,Buffer1,Buffer2;FCB* fcbp ,*fcbp1,*fcbp2 ;s=ProcessPath(comd1,FileName,k,0,20);/取FileName所在目录的首块号if (s1)/路径错误return s;/失败,返回s1=FindFCB(FileName,s,attrib,fcbp); /取FileName的首块号(查其存在性)fcbp1=fcbp;if (s10)coutn要比较的文件不存在。n;return -1;s3=ProcessPath(comd2,FileName1,k,0,20);/取FileName1所在目录的首块号 if (s31)/路径错误return s3;/失败,返回 s2=FindFCB(FileName1,s3,40,fcbp);/取FileName的首块号(查其存在性)fcbp2=fcbp;if (s20)coutFsize; /取文件一的长度size2=fcbp2-Fsize; /取文件二的长度if(size1=0&size2|size2=0&size1)cout两个文件的长度不同:endl;cout文件FileName的长度size1endl; cout文件FileName的长度size2endl;cout0&s20)for(i=0;iSIZE;i+,j+)if(j=size1&j=size2) break;Buffer1=Disks1i; /读第一个文件内容 Buffer2=Disks2i; /读第二个文件内容if(Buffer1!=Buffer2) /比较 cout文件FileName长度为:size1endl;cout文件FileName长度为:size2endl;cout第一个不同字节的位置为第j+1个字节endl; cout此时两个文件的字符分别为Buffer1和Buffer2endl; return false;if(iSIZE) break; /结束while循环,避免进入死循环 if(j=size1&j=size2)cout两文件内容相同endl; cout文件长度为:size1; return true;return 1;效果图如下:5 新增batch命令,实现批处理流程图如下:开始命令格式是否正确指定路径是否正确调用FindFCB()查找文件的首块号文件是否存在读取文件内容并输出文件要求执行的指令调用ProcessPath()查找文件的指定路径返回显示错误信息否否否是是是 设计思想:batch命令从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。 具体方法:int BatchComd(int k) short i,s,size,jj=0,x=0, y=0; char attrib=0,*FileName; char gFileNamePATH_LEN; /存放文件全路径名FCB* fcbp; if(k!=1) coutn命令参数中应该只有一个文件名。n; return -1; else s=ProcessPath(comd1,FileName,k,0,020);/取FileName所在目录的首块号if (s1) /路径错误return s; /失败,返回 s=FindFCB(FileName,s,attrib,fcbp); /取FileName的首块号(查其存在性) strcpy(gFileName,temppath); i=strlen(temppath); if (temppathi-1!=/) strcat(gFileName,/); strcat(gFileName,FileName); /构造文件的全路径名if (s0) coutn文件gFileName不存在。n; return -3; if (s=0) coutn文件gFileNameFsize; char Buffer10050; /分配动态内存空间 while (s0)for (i=0;iSIZE;i+,jj+)if (jj=size)break;if(Disksi=n)Bufferxy=0;coutBufferxendl;x+; y=0; elseBufferxy=Disksi;y+;if (iSIZE)Bufferxy=0;break;s=FATs;for(i=0;i=x;i+)coutnC:; /显示提示符(本系统总假定是C盘) if (dspath)coutcurpath.cpath;cout; coutBufferiendl;k=ParseCommand(Bufferi); /分解命令及其参数/comd0中是命令,comd1,comd2.是参数 ExecComd(k); /执行命令return 1; 运行结果如下:6 完善copy命令,改善某些缺陷 流程图如下:否命令格式正确源文件存在开始源文件已打开命令只有1个参数目标路径正确目标文件名正确目标文件名冲突目标文件与子目录同名源文件同名复制到该子目录中子目录有源文件同名文件为目标文件建立目录项,分配磁盘空间,复制源文件内容到新分配的磁盘空间。返回显示“命令中参数太多或太少”显示“源文件不存在。”显示“文件正在使用不能复制。”显示“路径名错误。”显示“目标文件名错误。”显示“目标文件重名错误。”否否否否是是文件复制到当前目录,同名复制源文件更名复制到目标目录中是是是否否是是否否是 设计思想:实现将当前目录/usr中的文件复制到其父目录(根目录)中,文件名仍为原名,在CopyComd( )函数中修改代码。 具体方法:修改部分代码如下else/k=2(命令中提供目标文件)的情况/用来判断第二个参数是否为.if(!strcmp(comd2,.)int s=FindPath(comd2,(char)16,1,fcbp);/找指定目录(的首块号)if(s1)coutn路径名错误!endl; return -1;strcpy(comd2,temppath);/用来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学前教育学原理期末试卷及答案
- 《计量学基础》试卷及答案
- 2025精麻药品培训考试试题库及参考答案
- 虚拟交互式可视化-洞察与解读
- 2025年事业单位招聘考试综合类结构化面试真题模拟试卷(工商类)
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷(长春)
- 2025年事业单位招聘考试面试真题模拟试卷权威解读集
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷(昆明)
- 2025年事业单位招聘面试真题模拟试卷:计算机科学与信息技术
- 递归诊断模型-洞察与解读
- 采购业务审计培训
- 2025-2026学年冀美版(2024)小学美术二年级上册(全册)教学设计(附目录P284)
- 服装色彩构成课件
- 化工仪表检修与维护课件
- 2025年华为软件开发工程师招聘面试题库及答案解析
- 程序化广告课件
- 电工基础课件
- 四川省石渠县2025年上半年公开招聘辅警试题含答案分析
- 真菌生物膜毒力因子-洞察及研究
- 基孔肯雅热危害及预防课件
- 副校长在任职宣布会上的表态发言材料
评论
0/150
提交评论