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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

操作系统实验四Word下载.docx

1、前者应包含文件主(即用户)及他们的目录区指针;后者应给出每个文件主占有的文件目录,即文件名,保护码,文件长度以及他们存放的位置等。另外为打开文件设置了运行文件目录(AFD),在文件打开时应填入打开文件号,本次打开保护码和读写指针等。(3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只修改读写指针,并不进行实际文件的读写操作。五、设计思路1.因系统小,文件目录的检索使用了简单的线性搜索,而没有采用Hash等有效算法。2.文件保护简单实用了三位保护码,对应于允许读、允许写和运行执行,如下所示: 1 1 1 允许写 允许读 允许执行 如对应位为 0,则不允许。3.程序中使用的主要数据结构如

2、下:主文件目录和用户文件目录 打开文件目录:4.程序框图:六、实验过程1.整个程序运行过程如下:输入用户名在MFD中查找显示UFD文件链表初始化AFD运行文件表输入操作命令执行操作命令保存文件目录打印文件目录结束2.MFD、UFD和AFD的结构定义如下:struct UFD string filename; int pro3; int codel; UFD *next;struct MFD string username; UFD *file; MFD *next;struct AFD int filenum; char filepro3; UFD *point; AFD *next;3.vo

3、id init( ) 初始化函数将文件链表变成循环链表,方便执行插入和删除操作。4.int checkUser( ) 检查用户检查输入的用户名是否在用户文件目录中。5.void Create ( ) 创建一个文件选择CREATE命令后,查看该用户的UFD链表内是否还有空闲结点:(1)若有则设置该结点的内容,然后打开、修改AFD;(2)若无则报错并退出。6.void Open( ) 打开一个文件选择OPEN命令后,输入要打开的文件名,在UFD查找是否有该文件名:(1)若有则打开并修改AFD;7.void Close( ) 关闭一个文件选择CLOSE命令后,输入需要关闭的文件名,在UFD中搜索是否

4、有该文件名。(1)若无则报错;(2)若有,还要分两种情况: 通过检查,该文件并未被打开,则报错 存在该文件,且被打开,则正常调用void Close1(AFD *f),关闭文件。8.void Delete( ) 删除一个文件选择DELETE命令后,输入需要删除的文件名,在UFD中搜索是否有该文件名: 通过检查,该文件已被打开,则需要先关闭该文件,确定需要关闭该文件后,通过调用void Close1(AFD *f),关闭文件,然后删除该文件。 存在该文件,且未被打开,则课正常删除该文件,即重新初始化该文件的UDF结点。9.void Read( ) 读一个文件读文件的关键是保护码的判断。选择了RE

5、AD命令后,输入需要读的文件名,在UFD中搜索是否有该文件名:(1)若有,但该文件没被打开,则报错;(2)若有,且已被打开,此处要分两种情况: 如果保护码的读位为“0”,则不能对该文件进行读操作。 否则,就通过文件号来读文件,即通过AFD中的point指针来查找该文件。10.void Write( ) 写一个文件写文件的关键也是保护码的判断。选择了WRITE命令后,输入需要读的文件名,在UFD中搜索是否有该文件名: 如果保护码的写位为0,则不能对该文件进行写操作。 否则,就可以通过文件号来写文件,即通过AFD中的point指针来查找。11.Bye 退出选择了BYE命令后,程序退出并保存当前目录

6、,然后将结果打印出来。程序运行结果1.用户验证2.创建文件3.关闭、打开文件4.删除文件5.读写文件6.退出七、感想体会实验四主要是通过链表来实现对文件的管理的,要求设计一个 10 个用户的文件系统,每个用户最多可保存 10 个文件,一次运行中用户可打开 5 个文件。程序采用了二级文件目录,设置了主文件目录和用户文件目录,另外为打开文件设置了运行文件目录,在文件打开时应填入打开文件号,本次打开保护码和读写指针。在执行各种文件操作命令的时候,需要考虑多种情况,比如读写文件的时候就要考虑文件的保护码,以及该文件是否已被打开的问题;创建命令时要在用户的文件目录中寻找空闲的文件结点,即没有被使用的文件

7、,对其进行文件名、保护码、文件长度的设置;删除命令就要考虑是否有这个文件,再查看此文件是否被打开,如果已经被打开,则要先关闭该文件,在进行删除,删除即对此文件结点进行初始化操作等等。想清楚各项操作的分类情况之后,对每个函数进行编写就容易多了。本次试验模拟了文件的管理操作,虽然只是一个小小的程序,也让我大致了解了计算机对于文件的管理是如何进行的。由于是通过链表的操作实现的,也使我巩固了C+中的链表操作过程。实验源代码:#includecstring#include using namespace std;string a10=Carol,LilyLucyBobABCDEFstring comma

8、nd7=CREATEDELETEOPENCLOSEREADWRITEBYEstruct UFDstruct MFDstruct AFDAFD *openfile=NULL;MFD *user=NULL;MFD *thisuser; endl; OpenMode(q,name); return ;void Open() coutname; UFD *p=thisuser-file; UFD *q=p; int n; for(n=0;nfilename=name)break; q=q-next; if(n=10)coutpoint=NULL; for(int i=0;ifileproi=0;SUC

9、CESS!THIS FILE IS CLOSED! return;void Close()CLOSE THE FILES NAME: CANT FIND THIS FILE! AFD *f=openfile; int i; for(i=0;5; if(f-point=q)break; f=f- if(n=5)coutTHIS FILE IS NOT OPENED! else Close1(f);void Delete()DELETE FILENAME int i;point=q) couty; if(y=Y)Close1(f);break; else return; q-filename=*c

10、odel=0; for(int x=0;xprox=0; coutfilenum=num&f-point!=NULL)break; f=f- if(i=5)coutfilepro0=1)coutREADING! elsecoutTHIS FILE CANT READ WITH READING RIGHT LIMITED!void Write()filepro1=1) coutcode; f-point-codel=code;T WRITE WITH WRITING RIGHT LIMITED!void FileWork(int com) if(com=1)Create();s; for(i=0;7; if(s=commandi)com=i+1; if(i=7)COMMAND NAME GIVEN IS WRONG!IT SHOULD BE ONE OF FOLLOWING :CREATE, DELETE, OPEN, CLOSE, READ, WRITE, BYE .TRY AGAIN continue; elseFileWork(com);return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1