ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:239.37KB ,
资源ID:2867932      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2867932.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统上机实验报告.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

操作系统上机实验报告.docx

1、操作系统上机实验报告操作系统上机实验报告 课程设计(上机实验)报告课程名称: 操作系统原理 学生姓名: 沈海洋 学 号: 所在学院: 计算机科学与技术学院 专 业: 指导教师: 钱景辉 2016年 1 月 11 日课程设计(上机实验)报告填写说明1本报告作为指导教师对学生课程设计(上机实验)评分的依据材料之一。此报告应在指导教师指导下,由学生在课程设计(上机实验)结束时完成,以班为单位收齐后按时交给指导教师批阅;2本报告内容必须用黑墨水笔工整书写或按信息学院统一设计的电子文档标准格式(可从信息学院网页上下载)打印(小),禁止打印在其它纸上后剪贴;3本报告中的“设计说明书”应按论文的格式成文,并

2、直接书写(或打印)在本报告“设计说明书”栏目内。其内容可以结合设计题目的内容和要求,根据自己在本课程设计(上机实验)阶段所完成的工作,阐明自己所采取的设计思想和方法(硬件的设计及其电原理图分析介绍,和/或软件的算法和数据结构及其主要模块介绍、程序在测试用例下的测试运行结果等)、完成本课程设计的心得体会、设计中的不足及改进设计的设想或建议等。 说明书的篇幅应不少于2000字。4对硬件类课程设计,应绘制或打印硬件设计图纸或实验原理图,作为设计报告的附件。5软件类课程设计(上机实验)的软件文档(含软件清单和程序运行的有关结果)可以单独打印成册或上传到指导教师指定计算机,作为课程设计报告的附件。课程设

3、计(上机实验)报告的附件是指导教师对学生课程设计(上机实验)评分的另一个依据。 课 程 设 计(上 机 实 习)报 告课程设计(上机实验)题目:文件系统的模拟设计目的与任务: 理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计方法。通过实验,使学生加深对操作系统文件系统某些问题的理解,归纳学习方法和思考方法,做到理论联系实际。培养学生分析问题、解决问题的能力,提高学生软件设计能力和逻辑思维能力。设计实现一个简单的文件系统,包括目录文件、普通文件,以及一些文件操作命令和目录操作命令(例如可以模仿DOS的有关命令)。1.修改md命令;2.修改Help命令;3.修改命令行预处理

4、程序;4.新增fc命令,实现两个文件的比较;5.新增batch命令,实现批处理;6. 完善copy命令,改善某些缺陷。内容和要求:1.修改md命令:增加“属性”参数,用于创建指定属性的子目录。命令形式如下:md 。属性包括R、H、S以及它们的组合(不区分大小写,顺序也不限)。例如:md usr rh其功能是在当前目录中创建具有“只读”和“隐藏”属性的子目录user.2.修改Help命令:修改help命令的显示方式和显示内容:修改HelpComd()函数,使之提供菜单式的较详细的帮助信息。例如可以先用菜单形式简单列出各命令名称,当用户选择某个命令的序号后,再比较详细地介绍该命令,包括命令的各种形

5、式,每种形式的功能,以及某些举例说明等等。3.“/”或“.”之间不需要空格也能正确执行。4.新增fc命令,实现两个文件的比较:命令形式:fc 5.新增batch命令,实现批处理:命令形式:batch batchfile 命令功能:从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。6.完善copy命令,改善某些缺陷:正确的功能应该是:若当前目录中不存在文件boy,则报错;第2个命令若当前目录是根目录,因根目录没有父目录,故应报错;若当前目录的父目录中已经存在名为boy的文件,也报错(或询问用户是否覆盖)。其他情况上述命令都应能正确执行。 课 程 设

6、 计(上 机 实 习)报 告设 计 说 明 书(说明书的撰写要求请参看封里的“报告填写说明3”。篇幅不够可附页)一修改md命令 流程图如下:课 程 设 计(上 机 实 习)报 告 设计思想:程序的指令格式为md user |rh,需改为md user rh格式,因此可在md user |rh中修改代码实现修改功能。要实现此功能,只需要获取目录的属性时删除判断操作符“|”的过程即可。具体方法:在GetAttrib函数中删除如下代码: if (str0!=|) coutn命令中属性参数错误。n; return -1; 修改后的操作方法:输入mduserrh即可正确执行 截图如下: 二修改Help命

7、令 流程图如下:课 程 设 计(上 机 实 习)报 告设计思想:利用switch(n) case语句实现选择只查看需了解的操作命令。 具体方法:首先利用cout语句输出改操作系统所拥有的命令.并用数字标明,供用户选择,再利用switch(n)case语句实现具体内容的介绍。例如: cout 1.create t; case 1:cout create n 创建新文件,文件属性是r、h或s。n; break; 运行效果如下: 三修改命令行预处理程序 流程图如下: 设计思想:在命令行预处理函数ParseCommand( )中进行修改,使以下命令行(命令与参数间无空格符)可以正确执行:cd/,cd.

8、,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; 四新增fc命令,实现两个文件的比较流程图如下: 设计思想:首先利用ProcessPath()函数和FindFCB()函数查找文件的目录所在首块号和文件所在首块号,判断其存在性,并记录其全路径名。如果需要比较的文件都存在的话则进行比较。 具体

9、实现: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,a

10、ttrib,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; /取文件二的长

11、度 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长度为:size2

12、endl; 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;效果图如下:五新增batch命令,实现批处理流程图如下: 设计思想:batch命令从磁盘文件batchfile逐行读入命令行执行,直到batchfile中所有命令行都执行完毕为止。 具体方法:int Bat

13、chComd(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的首块号(

14、查其存在性) 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

15、=n) Bufferxy=0; coutBufferxendl; x+; y=0; else Bufferxy=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; 运行结果如下

16、:六完善copy命令,改善某些缺陷 流程图如下: 设计思想:实现将当前目录/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); /用来判断第二个参数是否为“/” if(!strcmp(comd2,/) strcat(comd2, FileName1); s02=ProcessPath(comd2,FileName2,k,0,20);/取FileName2所在目录的首块号 if(s021)/目标路径错误 return s02; 效果图如下所示: 指 导 教 师 意 见内 容 及 要 求评 定 等 级优良中及格不及格独立完成全部工作量设计说明书质量创新素质,综合能力编程能力,软件质量遵守纪律,出勤率综合得分对学生课程设计(上机实验)的评语: 指导教师: 年 月 日所在专业审查意见: 负责人: 年 月 日

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2