2022年操作系统文件系统实验 .pdf

上传人:Q****o 文档编号:27177842 上传时间:2022-07-22 格式:PDF 页数:22 大小:350.86KB
返回 下载 相关 举报
2022年操作系统文件系统实验 .pdf_第1页
第1页 / 共22页
2022年操作系统文件系统实验 .pdf_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《2022年操作系统文件系统实验 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统文件系统实验 .pdf(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1 实验四文件系统实验一实验题目:文件系统实验二实验目的:阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。了解设计一个n 个用户的文件系统,每个用户可以保存M 个文件。用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete 、open、close、read、write 等命令 . 三实验设备及环境:1. 硬件设备: PC机一台2. 软件环境:安装Windows 操作系统, C语言软件。四实验内容及要求:在阅读所给文件系统源程序的基础上,画出其实现的详细流程图,并给出有关的数据结构和说明。五.

2、 实验方法内容1. 算法流程图( 1)简单文件系统实验流程图N Y Y N 输入命令用户注销结束存在?重新输入开始选择操作(登陆/注册)用户登陆用户注册输入用户名用户存在?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 22 页 - - - - - - - - - 2 (2)void Execute(int i,int len,int cmdset) 执行命令函数流程图(3)创建文件Y Y N 开始定义整型变量j i|cmdi=N break bufferj=cmdi;j

3、+; bufferj=0 strcat(buffer,.txt) Switch 语句选择服务种类结束Y N 开始结束登陆或创建注册名Createfile 该文件名是否存在?文件创建成功给文件存在另行创建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 22 页 - - - - - - - - - 3 (4)写文件流程图(5)修改文件执行权限(6)删除用户注册信息或文件Y Y N 开始结束Writefile 选择写入方式输入正文判断写入是否结束#?N N Y 权限值在 30-

4、33 之间结束开始Chmodfile 输入新的权限值30-33?确认开始用户: close 文件: delete 删除?结束删除文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 22 页 - - - - - - - - - 4 2. 主要的常量变量char cmd64; / 存放用户输入命令char buffer36; char user32;/ 存放当前登陆的用户名typedef char ALFA12; ALFA KWORDkeynum; struct UFD/ 用

5、户文件管理模块char filename32; / 文件名int safecode; / 文件保护码long length; / 文件长度*curfile = NULL; struct MFD/ 用户登陆信息管理模块char username32; / 用户名bool filepoint; / 用户目录下的文件指针,false 表示目录为空,true 为该用户目录中有文件*curuser = NULL,*elseuser=NULL; typedef UFD UFD; typedef MFD MFD; 3. 主要模块void KeyWord()/ 初始化命令关键字int LoginDisplay

6、() / 登陆选项操作函数bool Login(int SELETE)/ 用户登陆,注册函数void DisplayUFD()/ 打印用户信息,包括用户的各个文件/名称、长度和操作权限的设置信息void ByeFile(bool BOOL)/注销函数,调用次函数用户可以退出系统bool ClearUserFile()/ 用户要将自己的注册目录从系统彻底删除/首先将该用户目录下的全部文件删除void ClearUserMes()/ 删除用户全部信息void CreatFile()/ 在当前用户目录下创建文件void DeleteFile() /删除当前目录下一个文件的操作void ListAll

7、File()/显示当前用户目录下的文件信息bool QueryModElse(bool BOOL,bool &flag)/查询其它用户目录下文件的文件/当该文件的权限允许当前用户对其执行有关操作时,返回ture bool QueryMod(bool BOOL)/查询权限bool WriteRight(int len,bool BOOL)/查看是否已经正确地写入到该文件信息中void WriteLengthToFile(int Len,bool BOOL)/将文件长度写入文件管理模块中void WriteFile()/ 向文件写入信息的操作void ReadFile()/ 读文件函数void C

8、hangeMod()/ 修改某文件的执行权限void Execute(int i,int len,int cmdset)/执行命令函数void Command()/ 读取用户输入的命令,并将其转换成系统能识别的命令void main() 4. 代码/* * 文件名 : Simple_file_system.c * 功能: 简单文件管理系统模拟程序*/ #include #include #include #include #include conio.h #include #define NULL 0 #define keynum 10 #define getspace(type) (type

9、*)malloc(sizeof(type) char cmd64; /存放用户输入命令char buffer36;/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 22 页 - - - - - - - - - 5 char user32;/存放当前登陆的用户名typedef char ALFA12; ALFA KWORDkeynum; /- struct UFD/用户文件管理模块char filename32; / 文件名int safecode; / 文件保护码lon

10、g length; / 文件长度*curfile = NULL; /- struct MFD/用户登陆信息管理模块char username32; /用户名bool filepoint; / 用户目录下的文件指针, false表示目录为空 ,true为该用户目录中有文件*curuser = NULL,*elseuser=NULL; typedef UFD UFD; typedef MFD MFD; void main(); /- void KeyWord()/初始化命令关键字 strcpy(KWORD 1,bye); strcpy(KWORD 2,chmod); strcpy(KWORD 3,

11、close); strcpy(KWORD 4,create); strcpy(KWORD 5,delete); strcpy(KWORD 6,list); strcpy(KWORD 7,open); strcpy(KWORD 8,read); strcpy(KWORD 9,write); /- int LoginDisplay() /登陆选项操作函数 int SELETE_1 = 0; do cout *请选择操作 *n1、用户登陆 2 、用户注册 0 、退出SELETE_1; while(SELETE_12); system(cls); return SELETE_1; /- bool Lo

12、gin(int SELETE)/用户登陆,注册函数 FILE *fp,*fp1,*fp2; char name12; switch(SELETE) case 1:/用户登陆if(fp = fopen(LOGIN.exe,rb) = NULL)/打开用户注册目录管理文件 coutn错误:不能打开登陆文件。endl; getch();system(cls); return false; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 22 页 - - - - - - - -

13、- 6 curuser = getspace(MFD); coutname; / 输入用户登陆名while(!feof(fp) / 检查该用户是否合法 fread(curuser,sizeof(MFD),1,fp); if(strcmp(curuser-username,name)=0) break; if(feof(fp) / 如果没有找到跟当前登陆用户名相同的管理信息,提示出错 coutn错误:该用户不存在。 endl; fclose(fp); return false; else fclose(fp); return true; break; case 2: /新用户注册if(fp=fo

14、pen(LOGIN.exe,ab)=NULL)/如果登陆信息管理文件不存在fp=fopen(LOGIN.exe,wb+); /创建该信息管理文件char name12; curuser = getspace(MFD); while(1) coutn *新用户注册 *endl; coutname; /输入用户注册名fp1 = fopen(LOGIN.exe,rb); while(!feof(fp1)/查看该用户名是否被别的用户占用 fread(curuser,sizeof(MFD),1,fp1); if(strcmp(curuser-username,name) = 0) / 该名称已经被使用

15、coutn该用户已经存在,请重新输入!username,name); curuser-filepoint = NULL; fwrite(curuser,sizeof(MFD),1,fp); strcpy(user,curuser-username); / 生成用户文件管理模块strcat(user,.exe); / 用于管理用户目录下的各个文件fp2=fopen(user,wb+); fclose(fp2); coutn注册成功! endl; /提示注册成功fclose(fp1); fclose(fp); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -

16、- - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 22 页 - - - - - - - - - 7 fp = fopen(LOGIN.exe,rb); / 显示当前注册用户的名称while(1) fread(curuser,sizeof(MFD),1,fp); if(feof(fp) break; coutusernamefilepoint = false) / 当前用户目录下没有任何文件存在coutn用户 username 文件夹是空的 username); strcat(filename,.exe); if(fp=fopen(filename

17、,rb)=NULL) / 打开用户文件信息管理模块 coutn无法打开用户: username 的文件! endl; getch(); return; else / 读入并将用户全部文件信息打印在终端cout 用户: username 目录下的文件: endl; UFD *ufd; int i=0; ufd = getspace(UFD); / 申请存放用户文件模块的空间while(1) fread(ufd,sizeof(UFD),1,fp); if(feof(fp)/全部输出完毕,结束break; else/打印信息coutfilenametlengthtsafecodeendl; fclo

18、se(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 22 页 - - - - - - - - - 8 /- void ByeFile(bool BOOL)/注销函数,调用次函数用户可以退出系统 FILE *infile,*outfile; char out50; strcpy(out,outfilelocate.exe); if(infile=fopen(LOGIN.exe,rb)=NULL) coutn保存错误。 ; /fclose(infile); ret

19、urn; else if(outfile=fopen(out,wb+)=NULL) / 申请一个缓冲区管理模块/ 存放用户更新后的全部信息 coutusername,curuser-username)=0) if(BOOL)/更新当前用户信息的操作fwrite(curuser,sizeof(MFD),1,outfile); else continue; / 如果用户想把自己的注册目录从系统中彻底删除/ 则执行该操作 else fwrite(mfd,sizeof(MFD),1,outfile); /写入新的模块 fclose(infile);fclose(outfile); remove(LOG

20、IN.exe); / 将旧的该用户的文件管理模块删除rename(out,LOGIN.exe); / 将新的用户的文件管理模块重命名为用户目录下的/ 管理模块 /- bool ClearUserFile()/用户要将自己的注册目录从系统彻底删除/ 首先将该用户目录下的全部文件删除 FILE *fp; char file50; strcpy(file,curuser-username); strcat(file,.exe); if(fp=fopen(file,rb)=NULL) / 打开用户文件信息管理模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -

21、- - - - - - 名师精心整理 - - - - - - - 第 8 页,共 22 页 - - - - - - - - - 9 / fclose(fp); coutfilename); / 删除文件 fclose(fp); return true; /- void ClearUserMes()/删除用户全部信息 char name50; strcpy(name,curuser-username); strcat(name,.exe); remove(name); / 从磁盘中删除用户文件信息管理模块ByeFile(false); / 更新系统的用户登陆信息管理模块 /- void Dele

22、teUser()/删除用户注册目录的操作 char ch; coutn该操作将会是你在系统所有信息删除,下次登陆时你必须重新申请用户名!endl; coutn你确定要删除你在系统中的注册信息吗?Y/Nch; switch(ch) / 提示用户确认删除 case Y: case y: if(ClearUserFile() / 如果用户的全部文件已经删除了/ 则可以将该用户的文件信息管理模块也从磁盘中删除/ 以免在没完全删除文件却删了该文件信息管理模块/ 使得这些文件无法再进行管理造成磁盘空间的浪费ClearUserMes(); / 删除文件信息管理模块break; default: coutfi

23、lepoint=true; if(fp=fopen(buffer,r)=NULL) / 如果没有跟用户输入文件名相同的文件 if(fp=fopen(buffer,w)=NULL) coutn创建文件失败! ; / fclose(fp); return; fclose(fp); else / 用户要创建的文件已经存在coutch; switch(ch) case Y: case y: coutbuffer; strcat(buffer,.txt); fclose(fp); if(fp=fopen(buffer,w)=NULL) coutusername); strcat(user,.exe);

24、curfile = getspace(UFD); strcpy(curfile-filename,buffer); / 文件名curfile-length=0; / 该文件长度为零curfile-safecode=30; / 设置该文件的默认权限/11 00 ,文件主有读和写权,其他用户没有读写权if(fp=fopen(user,ab)=NULL) coutn错误:你可能不是合法用户。endl; getch(); else fwrite(curfile,sizeof(UFD),1,fp); / 将该文件信息写入用户文件信息管理模块中coutn文件 filename 创建成功! ; fclose

25、(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 22 页 - - - - - - - - - 11 void DeleteFile() / 删除当前目录下一个文件的操作 char ch; FILE *infile,*outfile; coutn确定要删除文件: buffer Y/Nch;/提示用户确认删除switch(ch) case Y: case y: / 更新用户文件信息管理模块,这里同样使用缓冲区模块来更新 / 方法与上面将到的类似char out5

26、0,in50; strcpy(out,outfilelocate.exe); strcpy(in,curuser-username); strcat(in,.exe); if(infile=fopen(in,rb)=NULL) / 打开该用户的文件信息管理模块 coutn保存错误。 ; /fclose(infile); return; else if(outfile=fopen(out,wb+)=NULL) coutfilename,buffer)=0) / 要进行更新的信息continue; else fwrite(ufd,sizeof(UFD),1,outfile); /写入新模块 fcl

27、ose(infile);fclose(outfile); remove(in); / 在磁盘移除就模块rename(out,in); / 新模块命名为当前用户文件信息管理模块 remove(buffer); / 从磁盘中删除该文件break; default: break; void ListAllFile()/显示当前用户目录下的文件信息 DisplayUFD(); void WriteLengthToFile(int Len,bool BOOL); void OpenFile()/在 window模式下打开该文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

28、- - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 22 页 - - - - - - - - - 12 FILE *fp; char ch; int i=0; system(buffer); /buffer为文件名,如 :file1.txt fp=fopen(buffer,r); while(1) / 获取新文件的长度if(feof(fp) break; ch=fgetc(fp); i+; WriteLengthToFile(i,false);/将修改后的文件长度写入管理表 /- bool QueryModElse(bool BOOL,bool &f

29、lag)/查询其它用户目录下文件的文件/ 当该文件的权限允许当前用户对其执行有关操作时,返回ture FILE *fp; char user50; UFD *ufd = getspace(UFD);/elseuser表示除当前用户外的所有用户注册目录strcpy(user,elseuser-username); strcat(user,.exe); if(fp=fopen(user,rb)=NULL)/打开一个其它的用户文件信息管理模块/ fclose(fp); coutfilename,buffer)=0) if(BOOL)/该用户请求写该文件 if(ufd-safecode= 31 | u

30、fd-safecode= 33) /1101 、1111最后一位为 1,有写权return true; else coutn你无权对文件 buffersafecode = 32 | ufd-safecode = 33) /1110 、1111倒数第二位为 1,有读权return true; else coutn你无权对文件 bufferusername); strcat(user,.exe); if(fp=fopen(user,rb)=NULL)/打开用户文件信息管理模块/ fclose(fp); coutfilename,buffer)=0) / 在当前用户注册目录下/ 找到该文件,返回真值

31、fclose(fp);return true; /- bool WriteRight(int len,bool BOOL)/查看是否已经正确地写入到该文件信息中/ 是则返回真值 char user50,outfile50; FILE *fp,*fp1; strcpy(user,elseuser-username); strcat(user,.exe); if(fp=fopen(user,rb)=NULL) / fclose(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

32、3 页,共 22 页 - - - - - - - - - 14 return false; else UFD *ufd = getspace(UFD); while(1) / 在此用户目录下查找匹配文件fread(ufd,sizeof(UFD),1,fp); if(feof(fp) fclose(fp);return false; if(strcmp(ufd-filename,buffer)=0) / 找到要写入新的长度的文件strcpy(outfile,outfilelocate.exe); if(fp1=fopen(outfile,wb+)=NULL) coutfilename,buffe

33、r)=0) / 找到匹配的文件if(BOOL) ufd-length+=len; / 在文件末追加内容的操作else ufd-length =len; / 覆盖原文件内容 fwrite(ufd,sizeof(UFD),1,fp1); fclose(fp);fclose(fp1); remove(user); rename(outfile,user); return true; /- void WriteLengthToFile(int Len,bool BOOL)/将文件长度写入文件管理模块中/ 因为当前用户可以对其它用户的文件进行操作(只要权限允许)/ 所以应该在整个文件系统目录下查找该文件

34、的位置FILE *fp; if(fp=fopen(LOGIN.exe,rb)=NULL) / 不能打开文件coutn写入文件长度错误 _1!; / fclose(fp); return; else elseuser = getspace(MFD); while(1) fread(elseuser,sizeof(MFD),1,fp); if(feof(fp) break; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 22 页 - - - - - - - -

35、- 15 if(WriteRight(Len,BOOL) / 查看是否已经正确地写入到该文件信息中fclose(fp);return; coutn写入文件长度错误 _2!; fclose(fp);return; /- void WriteFile()/向文件写入信息的操作 if(!QueryMod(true) / 查询当前用户对该文件是否有写权return; / 对该文件没有写权则返回char ch; int i=0; FILE *fp; if(fp=fopen(buffer,r)=NULL) / 查询该文件是否存在 coutn该文件不存在,请创建该文件后再写入。; / fclose(fp);

36、 return; fclose(fp); coutn请选择写入方式: endl; cout 1、覆盖原文件 2、在原文件末尾写入 3 、取消 ch; cout 开始输入正文: endl; switch(ch) case 1:/覆盖原文件if(fp=fopen(buffer,w)=NULL) coutn文件打开失败。 ; else ch=getchar(); while(ch!=#) / 将新的文件内容写入到文件的磁盘位置中 i+; fputc(ch,fp); ch=getchar(); fclose(fp); WriteLengthToFile(i,false); / 将文件长度写入文件管理模

37、块break; case 2: if(fp=fopen(buffer,a)=NULL) coutn文件打开失败。 ; else ch=getchar(); while(ch!=#) / 将新的文件内容写入到文件的磁盘位置中 i+; fputc(ch,fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 22 页 - - - - - - - - - 16 ch=getchar(); fclose(fp); WriteLengthToFile(i,true); / 将文

38、件长度写入文件管理模块break; default: break; /- void ReadFile()/读文件函数 if(!QueryMod(false) / 查询当前用户是否有权读该文件return; / 没有读权,则返回FILE *fp; if(fp=fopen(buffer,r)=NULL) / 打开该文件 coutbuffer; coutn该文件不存在。 ; return; else char ch; ch=fgetc(fp); while(ch!=EOF) / 将该文件信息逐一输出到终端 putchar(ch); ch=fgetc(fp); coutusername); strca

39、t(in,.exe); strcpy(out,outfilelocate.exe); if(fp=fopen(in,rb)=NULL) / fclose(fp); coutn操作出现错误,对此我们表示歉意!;return; else while(1) / 查看该文件是否在当前用户的注册目录下/ 任何用户无权修改不是自己目录下的文件的权限值fread(ufd,sizeof(UFD),1,fp); if(feof(fp) /在当前目录下找不到该文件,说明该用户无权修改该文件权限coutn你没有权限对文件 bufferfilename,buffer)=0) / 找到该文件,继续操作fclose(fp

40、);break; bool flag1=true; while(flag1) coutn输入文件 buffermod; / 输入权限值if(mod33) / 确保输入的权限值正确coutn错误:权限值必须在3033之间; continue; else char ch; switch(mod) / 告诉用户对该文件权限修改的结果,以便用户确认case 30: coutn当前权限设置:其他用户对buffer 既没读权也没写权! ; break; case 31: coutn当前权限设置:其他用户对buffer 没读权但有写权! ; break; case 32: coutn当前权限设置:其他用户对

41、buffer 有读权但没写权! ; break; case 33: coutn当前权限设置:其他用户对buffer 既有读权也有写权! ; break; default: break; coutch; switch(ch) case Y: case y:flag1=false;break; default: flag1=true; / 更新文件信息管理模块,相关操作类似上面,不在赘述if(infile=fopen(in,rb)=NULL) coutn操作出现错误,对此我们表示歉意!;fclose(infile); return; else if(outfile=fopen(out,wb+)=N

42、ULL) coutfilename,buffer)=0) ufd-safecode=mod; fwrite(ufd,sizeof(UFD),1,outfile); fclose(infile);fclose(outfile); remove(in); rename(out,in); /- void Execute(int i,int len,int cmdset)/执行命令函数 int j=0; for(;i|cmdi= ) / bufferi = 0; break; /* if(i=len-1) bufferj=cmdi; bufferj+1=0; break; */ bufferj=cmd

43、i;j+; bufferj=0; strcat(buffer,.txt); switch(cmdset) case 1: / 退出ByeFile(true); system(cls); break; case 2: / 改变文件操作权限if(strcmp(buffer,.txt)=0) coutn输入命令出错! ; return; ChangeMod(); break; case 3: / 删除用户 DeleteUser(); break; case 4: / 创建文件if(strcmp(buffer,.txt)=0) coutn输入命令出错! ; return; CreatFile(); b

44、reak; case 5: / 删除文件if(strcmp(buffer,.txt)=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 22 页 - - - - - - - - - 19 coutn输入命令出错! ; return; DeleteFile(); break; case 6: / 列出该用户所有文件清单ListAllFile(); break; case 7: / 打开文件if(strcmp(buffer,.txt)=0) coutn输入命令出错! ;

45、 return; OpenFile(); break; case 8: / 读文件if(strcmp(buffer,.txt)=0) coutn输入命令出错! ; return; ReadFile(); break; case 9: / 写文件if(strcmp(buffer,.txt)=0) coutn输入命令出错! ; return; WriteFile(); break; default: break; /- void Command()/ 读取用户输入的命令,并将其转换成系统能识别的命令 int len = 0,i,j; int cmdset; while(1) cmdset = 0;

46、 coutcmd; len = strlen(cmd); i=0;j=0; while(cmdi=|cmdi= )i+; / 过滤空格键和 for(;i | cmdi= | i=len-1) if(cmdi= | cmdi= ) bufferj = 0; else if(i=len-1) bufferj=cmdi; bufferj+1=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 22 页 - - - - - - - - - 20 i+; j=0; int lo

47、w=1,mid,high=keynum-1; bool BOOL = false; while(low=high) / 找到该命令关键字的内部识别码mid=(low+high)/2; if (strcmp(buffer,KWORDmid)=0) low=mid+1; if(strcmp(buffer,KWORDmid)=0) BOOL = true; break; if(!BOOL) coutnbuffer|cmdi= )i+; / 过滤空格键和 buffer0=0; Execute(i,len,cmdset); / 执行该命令 /- void main() while(1) int SELE

48、TE = LoginDisplay(); if(SELETE=0) exit(0); bool BOOL = Login(SELETE); / 用户登陆,或者注册函数if(BOOL) KeyWord(); / 初始化命令关键字DisplayUFD(); / 打印用户目录下的文件 Command(); / 命令行操作 六、实验结果1. 执行结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 22 页 - - - - - - - - - 21 图( 4-1)注册新用户图(

49、4-2)登陆图( 4-3)打开的文件图( 4-4)创建并显示文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 22 页 - - - - - - - - - 22 2. 结果分析文件管理系统中,用户可以注册一个或者多个目录,目录名不能重复,在每个注册目录下,用户可以创建文件,文件名不可重复,对每个文件,可以进行不同的操作,读文件,向文件中写信息,删除当前目录下的文件,对文件设置访问权限等。不同目录下的文件名可以相同,不同目录下的文件互相访问受权限的约束,此模拟程序用的是

50、二级目录,比一级目录存储容量大。用户可以对自己创建的文件进行彻底删除,也可以删除注册的目录,注册目录删除,目录下的文件信息将全部被删除,下次登陆时此目录不存在。用户在当前目录下可以注销,返回到主界面。图(4-4)表明,程序中仍存在错误,需要进一步调试修改。七、实验总结通过这次实验,对文件管理系统的认识加深了,将课本上的理论知识与实际的程序结合起来,使理论在实践中得到验证,对知识的掌握有很大帮助。对文件中一些基本的命令的实现,使自己对这些命令的理解更深了。通过对程序的分析,自己理解程序的能力也增强了,对于编程的逻辑思维有了进一步提高。希望以后能有更多的机会来锻炼自己,让自己的能力得到进一步提高。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com