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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验四文件系统实验.docx

1、实验四文件系统实验实验四文件系统实验目的要求1、 用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。2、 要求设计一个n个用户的文件系统,每次用户可保存 m个文件,用户在一次 运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、 open、close、read、write 等命令。2.例题:1、 设计一个10个用户的文件系统,每次用户可保存 10个文件,一次运行用户 可以打开5个文件。2、 程序采用二级文件目录(即设置主目录MFD)和用户文件目录(UED。另 外,为打开文件设置了运行文件目

2、录(AFD。3、 为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。4、 算法与框图:1因系统小,文件目录的检索使用了简单的线性搜索。2文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。3程序中使用的主要设计结构如下:主文件目录和用户文件目录(MFD UFD打开文件目录(AFD)(即运行文件目录)M D FU F DA F D用户名文件名打开文件名文件目录指针保护码打开保护码用户名文件长度读写指针文件目录指针文件名文件系统算法的流程图如下:3.实验题:1、增加23个文件操作命令,并加以实现。(如移动读写指针

3、,改变文件属 性,更换文件名,改变文件保护级别)。#in clude#in clude#in cludeusing n amespace std;struct TYPE_UFD string bool bool bool intFile_Name;Read;Write;Execute;Length_File;struct TYPE_MFDstring User_Name; TYPE_UFD *Pointer;struct TYPE_AFDintFile_ID;boolRead;boolWrite;boolExecute;intPointer;class TYPE_FILE_SYSTEMpubl

4、ic:void Initial( void );void Start( void );private:int _Number_Users;int _Number_Files;int _MaxNumber_Open_Files;TYPE_MFD *_MFD;TYPE_UFD *_UFD;TYPE_AFD *_AFD;void TYPE_FILE_SYSTEM:Initial( void )_Number_Users = 10;_Number_Files = 10;_MaxNumber_Open_Files = 5;_UFD = new TYPE_UFD _Number_Users*_Number

5、_Files;_MFD = new TYPE_MFD _Number_Users;int i=0;for( i=0 ; i_Number_Users ; i+ )_MFDi.Pointer = &(_UFDi*_Number_Files);_AFD = new TYPE_AFD _MaxNumber_Open_Files; _MFD0.User_Name = chaochao;_UFD0.File_Name = chaochao1.txt; _UFD0.Length_File = 10;_UFD0.Read = true;_UFD0.Write = false;_UFD0.Execute =

6、true;_UFD1.File_Name = chaochao2.txt; _UFD1.Length_File = 20;_UFD1.Read = true;_UFD1.Write = false;_UFD1.Execute = false;for( i=2 ; i_Number_Files ; i+ )_UFDi.File_Name = ; _UFDi.Length_File = -1; _UFDi.Read = false; _UFDi.Write = false; _UFDi.Execute = false;void TYPE_FILE_SYSTEM:Start( void )int U

7、ser_ID;int i,temp_int;string temp;char choice;int Number_Open_Files; string User_Name; string Command;TYPE_UFD *UFD;dodocout User_Name;for( User_ID=0 ; User_ID_Number_Users ; User_ID+ )if( _MFDUser_ID.User_Name = User_Name ) break;if( User_ID = _Number_Users )cout Bad user name , please try again .

8、endl;while( User_ID = _Number_Users );cout Ok , welcome to login , User_Name ! endl;UFD = _MFDUser_ID.Pointer;for( i=0 ; i_MaxNumber_Open_Files ; i+ )_AFDi.File_ID = -1;Number_Open_Files = 0;docout C: User_Name ;cin Command;if( Command = dir )cout endl;cout Files of user User_Name endl;cout t Statet

9、 Lengtht File name endl;for( i=0 ; i_Number_Files ; i+ )if( UFDi.Length_File != -1 )cout t ;if( UFDi.Read = true )cout R;elsecout -;if( UFDi.Write = true )cout W;elsecout -;if( UFDi.Execute = true )cout E;elsecout -;cout t;cout UFDi.Length_File;cout t;cout UFDi.File_Name endl;cout endl;else if( Comm

10、and = diropen )cout endl;cout Opening Files of user User_Name endl; cout t Statet Open File name endl;for( i=0 ; i_MaxNumber_Open_Files ; i+ )if( _AFDi.File_ID != -1 )cout t ;if( _AFDi.Read = true )cout R;elsecout -;if( _AFDi.Write = true )cout W;elsecout -;if( _AFDi.Execute = true )cout E;elsecout

11、-;cout t; endl;cout UFD_AFDi.File_ID.File_Namecout endl;else if( Command = create )for( i=0 ; i_Number_Files ; i+ )if( UFDi.Length_File = -1 )break;if( i = _Number_Files )cout Error: you have already had Number_Files files . endl;elsecout Please enter the information of the new file: endl;cout temp;

12、UFDi.File_Name = temp;cout Read (y/n):;dochoice = getch();while( choice!=y & choice!=n );if( choice = y )UFDi.Read = true;elseUFDi.Read = false;cout endl;cout Write (y/n):;dochoice = getch();while( choice!=y & choice!=n );if( choice = y )UFDi.Write = true;elseUFDi.Write = false;cout endl;cout Execute (y/n):;dochoice = getch();while( choice!=y & choice!=n );if( choice = y )UFDi.Execute = true;elseUFDi.Execute = false;cout endl;cout temp_int;if( temp_int 0 )UFDi.Length_File = temp_int;cout Ok , the new file UFDi.File_Name is created! endl;else if( Command =

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

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