实验四文件系统实验Word下载.docx

上传人:b****3 文档编号:15914779 上传时间:2022-11-17 格式:DOCX 页数:16 大小:30.01KB
下载 相关 举报
实验四文件系统实验Word下载.docx_第1页
第1页 / 共16页
实验四文件系统实验Word下载.docx_第2页
第2页 / 共16页
实验四文件系统实验Word下载.docx_第3页
第3页 / 共16页
实验四文件系统实验Word下载.docx_第4页
第4页 / 共16页
实验四文件系统实验Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验四文件系统实验Word下载.docx

《实验四文件系统实验Word下载.docx》由会员分享,可在线阅读,更多相关《实验四文件系统实验Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

实验四文件系统实验Word下载.docx

UFD

AFD

用户名

文件名

打开文件名

文件目录指针

保护码

打开保护码

文件长度

读写指针

文件系统算法的流程图如下:

3.实验题:

1、增加2〜3个文件操作命令,并加以实现。

(如移动读写指针,改变文件属性,更换文件名,改变文件保护级别)。

#include<

iostream>

string>

conio.h>

usingnamespacestd;

structTYPE_UFD{

stringboolboolboolint

File_Name;

Read;

Write;

Execute;

Length_File;

};

structTYPE_MFD

{

stringUser_Name;

TYPE_UFD*Pointer;

structTYPE_AFD

int

File_ID;

bool

Pointer;

classTYPE_FILE_SYSTEM

public:

voidInitial(void);

voidStart(void);

private:

int_Number_Users;

int_Number_Files;

int_MaxNumber_Open_Files;

TYPE_MFD*_MFD;

TYPE_UFD*_UFD;

TYPE_AFD*_AFD;

voidTYPE_FILE_SYSTEM:

:

Initial(void)

_Number_Users=10;

_Number_Files=10;

_MaxNumber_Open_Files=5;

_UFD=newTYPE_UFD[_Number_Users*_Number_Files];

_MFD=newTYPE_MFD[_Number_Users];

inti=0;

for(i=0;

i<

_Number_Users;

i++)

_MFD[i].Pointer=&

(_UFD[i*_Number_Files]);

}

_AFD=newTYPE_AFD[_MaxNumber_Open_Files];

_MFD[0].User_Name="

chaochao"

;

_UFD[0].File_Name="

chaochao1.txt"

_UFD[0].Length_File=10;

_UFD[0].Read=true;

_UFD[0].Write=false;

_UFD[0].Execute=true;

_UFD[1].File_Name="

chaochao2.txt"

_UFD[1].Length_File=20;

_UFD[1].Read=true;

_UFD[1].Write=false;

_UFD[1].Execute=false;

for(i=2;

_Number_Files;

_UFD[i].File_Name="

"

_UFD[i].Length_File=-1;

_UFD[i].Read=false;

_UFD[i].Write=false;

_UFD[i].Execute=false;

Start(void)

intUser_ID;

inti,temp_int;

stringtemp;

charchoice;

intNumber_Open_Files;

stringUser_Name;

stringCommand;

TYPE_UFD*UFD;

do

cout<

<

"

Username:

cin>

>

User_Name;

for(User_ID=0;

User_ID<

User_ID++)

if(_MFD[User_ID].User_Name==User_Name)break;

if(User_ID==_Number_Users)

Badusername,pleasetryagain."

<

endl;

while(User_ID==_Number_Users);

Ok,welcometologin,"

User_Name<

!

UFD=_MFD[User_ID].Pointer;

_MaxNumber_Open_Files;

_AFD[i].File_ID=-1;

Number_Open_Files=0;

C:

\\"

;

cin>

Command;

if(Command=="

dir"

Filesofuser"

\t"

State\t"

Length\t"

Filename"

if(UFD[i].Length_File!

=-1)

if(UFD[i].Read==true)

R"

else

-"

if(UFD[i].Write==true)

W"

if(UFD[i].Execute==true)

E"

UFD[i].Length_File;

UFD[i].File_Name<

elseif(Command=="

diropen"

OpeningFilesofuser"

cout<

OpenFilename"

if(_AFD[i].File_ID!

if(_AFD[i].Read==true)

if(_AFD[i].Write==true)

if(_AFD[i].Execute==true)

UFD[_AFD[i].File_ID].File_Name

create"

if(UFD[i].Length_File==-1)

break;

if(i==_Number_Files)

Error:

youhavealreadyhad"

Number_Files<

files."

Pleaseentertheinformationofthenewfile:

Filename:

temp;

UFD[i].File_Name=temp;

Read(y/n):

choice=getch();

while(choice!

='

y'

&

&

choice!

n'

);

if(choice=='

UFD[i].Read=true;

UFD[i].Read=false;

Write(y/n):

UFD[i].Write=true;

UFD[i].Write=false;

Execute(y/n):

UFD[i].Execute=true;

UFD[i].Execute=false;

Length:

temp_int;

if(temp_int>

0)

UFD[i].Length_File=temp_int;

Ok,thenewfile"

iscreated!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

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

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