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

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2798454.html】到电脑端继续下载(重复下载【60天内】不扣币)。

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(操作系统专业课程设计范文.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

操作系统专业课程设计范文.doc

1、 计算机系综合性实验 实 验 报 告 课程名称 操作系统实验报告 实验学期 至 年 第 一 学期 学生所在系部 计算机与信息管理系 年级 专业班级 计算机102 学生姓名 王强 黄新潮 张蒙 学号 11030082 11030070 11030077 任课教师 陆丽娜

2、 实验成绩 计算机系制 一种简朴文献系统详细设计 一、实验目 (1)阅读并调试一种简朴文献系统,模仿文献管理工作过程。从而对各种文献操作命令实质内容和执行过程有比较进一步理解。 (2)理解设计一种n个顾客文献系统,每个顾客可以保存M个文献。顾客在一次运营中只能打开一种文献,对文献必要设立保护办法,且至少有create、delete、open、close、read、write等命令。 二、实验规定 1、依照流程图阅读所给文献系统源程序,并对源程序加以注释(注释量达70%以上)。 2

3、修改、完善该系统,指出程序bug。 三、文献系统功能设计 1. 功能设计 该文献系统是一种多顾客、多任务文献系统。对顾客和顾客文献数目并没有上限。也就是说该系统容许任何顾客申请空间,并且在其目录下文献数目并不做任何限制。 该系统可以支持操作命令如下: ① bye——顾客注销命令。当使用该命令时,顾客退出系统,注销该顾客功能设计并回到登陆界面。 命令格式: bye ② close——删除顾客注册信息命令。执行该命令后,顾客在系统中所有信息,涉及该顾客目录下所有文献都被删除。命令执行完毕后返回登陆界面。 命令格式:close ③ create——在当前目录下创立一种文献,且该

4、文献不能跟当前已有文献重名。该文献管理信息登记在顾客文献信息管理模块中。执行完该命令后回到执行命令行。 命令格式:create>file1 其中:“>”符为提示符,file1为要创立文献名。 ④ delete——删除当前顾客目录下一种文献,命令执行完毕返回至命令行。 命令格式:delete>file1 其中:file1为要删除文献名。 ⑤ list——显示当前注册目录下所有文献信息,涉及文献名、文献长度、文献操作权限。 命令格式:list ⑥ chmod——变化某个文献执行权限,但前提是该文献是该顾客目录下文献。 命令格式:chmod>file1。 其中:file1为要授

5、权文献名。 ⑦ open——在window界面下打开某个文献。执行该命令后,文献file1将用在windows界面下文献形式打开。顾客可以在这个方式中对文献进行修改,并将修改后内容保存。 命令格式:open>file1 其中:file1为要打开文献名。 ⑧ read——读文献信息。将文献信息读入并显示在终端上。 命令格式:read>file1 其中:file1为要读文献名。 ⑨ write——向某个文献写入新信息。顾客可以选取用覆盖本来内容方式或和在文献末尾追加新信息方式写入信息。 当要退出时输入“#”即可。 (2)系统采用二级文献目录。设立主目录(MFD)和顾客文献目录(UF

6、D),分别以文献方式保存在磁盘中。在主目录中有注册顾客顾客名和另一标志该顾客目录下与否有文献指针标记。顾客文献目录采用顾客名作为文献名保存于磁盘,以便检索时以便相应。在顾客文献目录中保存着该目录下所有文献文献名称、保护码、文献长度。 (3)该系统大量使用高档语言中文献操作函数,因此能实际看到文献创立、写入、读出、删除等效果。 2. 功能设计实现总体流程 3. 重要数据构造 struct UFD {//顾客文献模块 char filename[32]; //文献名 int safecode; //文献保护码 long length;

7、 //文献长度 }*curfile = NULL; 这个是顾客文献模块数据构造,构造体名字是:UFD,在构造体里面定义了三个成员,filename,safecode,length,分别用于存储顾客文献名字,文献保护码,文献长度,*curfile = NULL;,这是一种构造体类型指针,开始初始化为NULL. struct MFD {//主文献模块 char username[32];//存储顾客名 bool filepoint; //顾客目录下文献指针,false表达目录为空,true为该顾客目录中有文献 }*curuser = NULL,*elseuser=N

8、ULL; 这个是主文献模块数据构造,有两个成员,username,filepoint,分别用于存储顾客名,顾客目录下面文献指针. *curuser = NULL,*elseuser=NULL;这两个是主文献构造体变量,用于访问构造体里面数据成员 4. 重要功能模块 1. int LoginDisplay() //登陆选项操作函数 2. bool Login(int SELETE)//顾客登陆,注册函数 3. void DisplayUFD() //打印顾客信息,涉及顾客各个文献 4. void ByeFile(bool BOOL)//注销函数,调用次函数顾客可以退

9、出系统 5. bool ClearUserFile()//顾客要将自己注册目录从系统彻底删除 6. void ClearUserMes()//删除顾客所有信息 7. void DeleteUser()//删除顾客注册目录操作 8. void CreatFile()//在当前顾客目录下创立文献 9. void DeleteFile() //删除当前目录下一种文献操作 10. bool QueryModElse(bool BOOL,bool &flag) //查询其他顾客目录下文献文献 11. bool QueryMod(bool BOOL)//查询权限 12. bool Wri

10、teRight(int len,bool BOOL) //查看与否已经对的地写入到该文献信息中,是则返回真值 13. void WriteLengthToFile(int Len,bool BOOL) //将文献长度写入文献管理模块中 14. void WriteFile()//向文献写入信息操作 15. void ReadFile()//读文献函数 16. void ChangeMod()//修改某文献执行权限 17. void Execute(int i,int len,int cmdset)//执行命令函数 18. void Command() //读取顾客输入命令,

11、并将其转换成系统能辨认命令 5.小构成员及分工 负责人: 姓名 模 块 黄新潮 组长分派任务,总结实验心得,分析流程图,给成员解说 王强 对源程序加以注释、修改 张蒙 对源程序读取,运营,截图,完善 四、文献系统功能模块详细设计流程图 1. int LoginDisplay() //登陆选项操作函数 Y N Scanf SELETE_1 Return SELETE_1 0<=SELETE_1<=2? Begin End 图1 LoginDisplay 2. bool Login(int SELETE)//顾客登陆,注册函数

12、Other N Y N Y N Y 2 1 SELETE Search MFD(图2.1) Ture? Return Ture Return False Scanf name Begin LOGIN.exe? Search MFD(图2.1) Ture? Fwrite name Creat name.exe End 图2 Login Scanf name N Y N Y 此模块重复调用,因而单独列出,到文献尾时仍未找到同名文献/顾客名返回False,反之返回True 搜索xFD 图2.1 Search xFD Tem

13、p=Malloc(xFD) EOF? Return Ture Return False Begin Fread(temp,xFD,1,file/login.exe) Temp=Name Buffer End 3. void DisplayUFD() //打印顾客信息,涉及顾客各个文献 Y N N N Y Y Begin Filepoint Username.exe EOF Temp=Malloc(UFD) Fread(temp,UFD,1,username.exe) Cout Temp Cout No

14、 File End 图3 DisplayUFD 4. void ByeFile(bool BOOL)//注销函数,调用次函数顾客可以退出系统 Y Y N N Update(True) MFD(图4.1) Begin LOGIN.exe outfilelocate.exe Remove LOGIN.exe outfilelocate.exe->LOGIN.exe End Cout error 图4 ByeFile N Y Y N Y N Begin 此模块重复调用,因而单独列出,更新xFD Update为True只更新,反之

15、会进行删除操作 Temp=Malloc(xFD) EOF Fread(Temp,xFD,1,file/login.exe) Temp=username Buffer Update Fwrite(Temp,xFD,1,outfilelocate.exe) End 图4.1 Update xFD 5. bool ClearUserFile()//顾客要将自己注册目录从系统彻底删除 N Y Y N Begin File=username.exe File EOF Temp=Malloc(UFD) Fread(Te

16、mp,UFD,1,file) Remove Temp->file Return True End 图5 ClearUserFile 6. void ClearUserMes()//删除顾客所有信息 Name=username.exe Remove Name Update(False) MFD(图4.1) End 图6 ClearUserMes Begin 7. int DeleteUser()//删除顾客注册目录操作 Other Y ‘Y’||‘y’ End 图7 DeleteUser Begin

17、 ch Scanf ch R R=ClearUserFile(图5) ClearUserMes(图6) Return 1 8. void CreatFile()//在当前顾客目录下创立文献 N Other N ‘Y’||‘y’ Y Y Begin Buffer Scanf Ch Fread(NewFile,UFD,1,username.exe) Server&Set Buffer Cout error End 图8 CreatFile Can Write Ch Scanf Buffer Cout Ture Ne

18、wFile=Malloc(UFD) 9. void DeleteFile() //删除当前目录下一种文献操作 Other N ‘Y’||‘y’ N Y Y Begin Ture? Ch Scanf Ch Remove Buffer End 图9 DeleteFile Search UFD(图2.1) Name.exe Update(False) UFD(图4.1) 10. bool QueryModElse(bool BOOL,bool &flag)//

19、查询其他顾客目录下文献文献 N N N N Y Y Y 31||33 Y Y N N Y Begin Temp.File=Buffer Cout error Fread(Temp,UFD,1,user.exe) Return True End 图10 QueryModElse EOF? Temp? Return False Temp=Malloc(UFD) BOOL 32||33 11. bool QueryMod(bool BOOL)//查询权限 N N Y

20、 Y N Y N N N Y Y Begin Username.exe EOF Fread(temp,UFD,1,username.exe) Return True Else=Malloc(MFD) End 图11 QueryMod buffer temp=Malloc(UFD) EOF Fread(Else,MFD,1,Login.exe) Username=Else Ture QueryModElse(图10) Return False 12.

21、bool WriteRight(int len,bool BOOL) //查看与否已经对的地写入到该文献信息中,是则返回真值 N Y N N Y Y N Y N N Y Y Begin Username.exe EOF Fread(temp,UFD,1,username.exe) Length=len Return False End 图12 WriteRight temp=Malloc(UFD) Buffer Fwrite(temp,UFD,1,outfilelocate.exe) outfilelocate.exe Length+

22、len EOF Buffer Fread(temp,UFD,1,username.exe) BOOL Remove username.exe outfilelocate.exe ->username.exe Return Ture 13. void WriteLengthToFile(int Len,bool BOOL)//将文献长度写入文献管理模块中 N Y Y Y N N Begin LOGIN.exe Fread(Else,MFD,1,LOGIN.exe) End Cout error 图13 WriteLengthToFi

23、le Else=Malloc(MFD) EOF WriteRight(图12) True? 14. void WriteFile()//向文献写入信息操作 N N 2 Other Y Y 2 1 Y Y N N Begin Buffer End Get char 图14 WriteFile Scanf Chmod Chmod QueryMod(true)(图11) True? Char!=# Fput(char,buffer) Get char Char!=# Fput(char,buffer) WriteLength

24、 ToFile (图11) Cout error 15. void ReadFile()//读文献函数 N Y Y Y N N Begin True? Putchar(ch) End Cout error 图15 ReadFile Fgetchar(buffer) Buffer QueryMod(False)(图12) EOF? 16. void ChangeMod()//修改某文献执行权限 Other Y N ‘Y’||‘y’ Begin True? Scanf Mod End Cout error 图1

25、6 ChangeMod Printf Mod Test Ch Search UFD(图2.1) Scanf ch Update UFD(图4.1) Remove username.exe outfilelocate.exe->username.exe 17. int Execute(int i,int len,int cmdset)//执行命令函数 9 8 7 6 5 4 2 3 1 N Y N Y Begin Cmd[i]!=0 Buffer[i]=Cmd[i] End Cout error 图17 Execute Li

26、stAllFile Buffer? ChangeMod(图16) ByeFile(图4) OpenFile Return Temp cmdset DeleteUser(图7) CreatFile (图8) DeleteFile (图9) ReadFile (图15) WriteFile (图14) 18. void Command()//读取顾客输入命令,并将其转换成系统能辨认命令 Y N Y N Y N Y Begin 1 Scanf cmd End 图18 Command Buffer[i]=cmd

27、[i] ‘>’||‘ ’||len-1 Cmdset=0||mid 二分查找命令编号 Cmdset EndIt? Execute(图17) 五、实验运营成果 /***************************************************************** * 文献名:Simple_file_system.c * 功 能:简朴文献管理系统模仿程序 ************************************************************

28、/ #include #include #include #include #include "conio.h" #include #define NULL 0 #define keynum 10 #define getspace(type) (type*)malloc(sizeof(type)) //宏定义 申请内存 char cmd[64]; //存储顾客输入命令 char buffer[36];// char user[32];//

29、存储当前登陆顾客名 typedef char ALFA[12]; ALFA KWORD[keynum]; //------------------------------------------------------------------------------------------------ struct UFD{//顾客文献管理模块 char filename[32]; //文献名 int safecode; //文献保护码 long length; //文献长度 }*curfile = NULL; //----------

30、 struct MFD{//顾客登陆信息管理模块 char username[32];//顾客名 bool filepoint; //顾客目录下文献指针,false表达目录为空,true为该顾客目录中有文献 }*curuser = NULL,*elseuser=NULL; typedef UFD UFD; //重命名 typedef MFD MFD; void main(); //------

31、 void KeyWord()//初始化命令核心字 { strcpy(KWORD[ 1],"bye"); //顾客注销命令 strcpy(KWORD[ 2],"chmod"); //变化文献执行权限 strcpy(KWORD[ 3],"close"); //删除顾客注册信息 strcpy(KWORD[ 4],"create"); // 在当前目录下创立一种文献 strcpy(KWO

32、RD[ 5],"delete"); //删除当前顾客目录下一种文献 strcpy(KWORD[ 6],"list"); //显示当前注册目录下所有文献信息 strcpy(KWORD[ 7],"open"); //打开文献 strcpy(KWORD[ 8],"read"); //读文献信息 strcpy(KWORD[ 9],"write"); //向文献写入新信息 } //--------------------------------------------------------------

33、 int LoginDisplay() //登陆选项操作函数 { int SELETE_1 = 0; //定义整型数存储选项 do //循环控制 { cout<<" *****请选取操作*****\n1、顾客登陆 2、顾客注册 0、退出"<>SELETE_1; //输入要选取命令 }while(SELETE_1<0 || SELETE_1>2

34、); //选项判断 system("cls"); //清屏 return SELETE_1; //返回选项数 } //------------------------------------------------------------------------------------------------ bool Login(int SELETE)//顾客登陆,注册函数 { FILE *fp,*fp1,*fp2; //定义文献 char name[1

35、2]; //定义数组存储登录名 switch(SELETE) //switch选取 { case 1://顾客登陆 if((fp = fopen("LOGIN.exe","rb")) == NULL)//打开顾客注册目录管理文献 { cout<<"\n错误:不能打开登陆文献。"<

36、 return false; //返回 } curuser = getspace(MFD); //顾客名申请空间 cout<<"\n*****登陆*****\n顾客名:"; //显示 cin>>name; //输入顾客登陆名 while(!feof(fp)) //检查该顾客与否合法 { fread

37、curuser,sizeof(MFD),1,fp); //文献读取 if(strcmp(curuser->username,name)==0) //比较输入顾客名与否与存在顾客名相似 break; } if(feof(fp)) //如果没有找到跟当前登陆顾客名相似管理信息,执行下列代码 { cout<<"\n错误:该顾客不存在。"<

38、 //关闭文献 return false; //返回 } else { fclose(fp); //关闭文献 return true; //返回 } break; //跳出 case 2: //新顾客注册 if((fp=fopen("LOGIN.exe","ab"))==NULL)//如果登陆信息管理文献不存

39、在 fp=fopen("LOGIN.exe","wb+"); //创立该信息管理文献 char name[12]; curuser = getspace(MFD); //顾客申请空间 while(1) { cout<<"\n *****新顾客注册*****"<>name; //输入顾客注册名 fp1 = fopen("LOGIN.exe","rb"); //打开登陆文献,只容许读数据 while(!feof(f

40、p1))//查看该顾客名与否被别顾客占用 { fread(curuser,sizeof(MFD),1,fp1); //文献读取 if(strcmp(curuser->username,name) == 0) { cout<<"\n该顾客已经存在,请重新输入!"<

41、fp1))//该名称没有被别顾客占用 { strcpy(curuser->username,name); //拷贝输入顾客名到顾客名构造体 curuser->filepoint = NULL; //文献指针置空 fwrite(curuser,sizeof(MFD),1,fp); //顾客信息写入文献 strcpy(user,curuser->username); //生成顾客文献管理模块 strcat(user,"

42、exe"); //用于管理顾客目录下各个文献 fp2=fopen(user,"wb+"); //打开文献,容许读和写 fclose(fp2); //关闭fp2 cout<<"\n注册成功!"<

43、close(fp); //关闭fp break; } } fp = fopen("LOGIN.exe","rb"); //显示当前注册顾客名称 while(1) { fread(curuser,sizeof(MFD),1,fp); //文献读取 if(feof(fp)) //检查与否最后顾客 break; cout<username<<

44、endl; // 显示顾客名 getch(); //读取结束符 } fclose(fp); //关闭文献 return true; //返回 break; default: return false; //返回 br

45、eak; //返回到上一层 } } //------------------------------------------------------------------------------------------------ void DisplayUFD()//打印顾客信息,涉及顾客各个文献 //名称、长度和操作权限设立信息 { if(curuser->filepoint == false) //当前顾客目录下没有任何文献存在 c

46、out<<"\n顾客 "<username<<" 文献夹是空"<username); //拷贝顾客名到定义 strcat(filename,".exe"); //扩展名.exe if((fp=fope

47、n(filename,"rb"))==NULL) //打开顾客文献信息管理模块 { cout<<"\n无法打开顾客:"<username<<" 文献!"<username<<"目录下文献:"<

48、 UFD *ufd; //申请文献模块 int i=0; ufd = getspace(UFD); //申请存储顾客文献模块空间 while(1) { fread(ufd,sizeof(UFD),1,fp); //文献读取,把文献信息读到顾客中 if(feof(fp)) //所有输出 break; else

49、 //打印信息 cout<filename<<"\t"<length<<"\t"<safecode<

50、ol BOOL)//注销函数,调用次函数顾客可以退出系统 { FILE *infile,*outfile; //定义文献 char out[50]; //定义数组out[50] strcpy(out,"outfilelocate.exe"); //拷贝信息到数组 if((infile=fopen("LOGIN.exe","rb"))==NULL)//检查与否保存 { cout<<"\n保存错误。"; //fclose(infile); return; } else { if((outfil

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服