操作系统试验模拟文件管理系统_资格考试-建造师考试

上传人:cn****1 文档编号:568763565 上传时间:2024-07-26 格式:PDF 页数:17 大小:326.45KB
返回 下载 相关 举报
操作系统试验模拟文件管理系统_资格考试-建造师考试_第1页
第1页 / 共17页
操作系统试验模拟文件管理系统_资格考试-建造师考试_第2页
第2页 / 共17页
操作系统试验模拟文件管理系统_资格考试-建造师考试_第3页
第3页 / 共17页
操作系统试验模拟文件管理系统_资格考试-建造师考试_第4页
第4页 / 共17页
操作系统试验模拟文件管理系统_资格考试-建造师考试_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《操作系统试验模拟文件管理系统_资格考试-建造师考试》由会员分享,可在线阅读,更多相关《操作系统试验模拟文件管理系统_资格考试-建造师考试(17页珍藏版)》请在金锄头文库上搜索。

1、 . - . .可修编. . 【实验报告正文】 一、实验目的和要求(必填) 实验目的:通过在 VC 平台下编程,设计和调试一个简单的文件系统,通过模拟文件操作命令的执行,来模拟文件系统对文件及目录的管理。 实验要求:两名学生成组结对完成实验,仿真出文件系统中对文件和目录的操作。 二、实验容(必填) 文件管理:实现一个简单的文件系统 三、实验原理或实验方法(必填) 原理:通过结构体来描述文件和目录,利用链表知识实现目录树结构,通过对链表的操作实现整个文件系统中目录和文件的相关操作。 方法:学生两人结对进行实验,分别实现对文件和目录的操作。 对文件的操作包括:创建文件 create、读文件 rea

2、d、写文件 write、删除文件 delete。 对目录的操作包括:创建目录 mkdir、切换目录 cd、展示目录容 dir、删除目录 rm。 四、主要仪器设备或实验条件 Windows 操作系统,VC开发环境 五、实验步骤(含实验数据记录处理)或操作设计过程记录 #include stdio.h #include iostream.h #include string.h #define FILENAME_LENGTH 10 /文件名称长度 #define MAND_LENGTH 10 /命令行长度 #define PATH_LENGTH 30 /参数长度 装 订 线 . - . .可修编.

3、. struct filenode char filenameFILENAME_LENGTH; int isdir; char content255; filenode *parent; filenode *child; filenode *prev; filenode *next; ; filenode *initnode(char filename,int isdir); void createroot(); int run(); int findpath(char *topath); void help(); int mkdir(); int create(); int read();

4、int write(); int del(); int rm(); int cd(); int dir(); filenode *root,*recent,*temp,*ttemp,*temp_child; char pathPATH_LENGTH,mandMAND_LENGTH,temppathPATH_LENGTH,recentpathPATH_LENGTH; /创建文件或目录的存储节点 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对

5、进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . filenode* initnode(char filename,int isdir) filenode *node=new filenode; strcpy(node

6、-filename,filename); node-isdir=isdir; node-parent=NULL; node-child=NULL; node-prev=NULL; node-next=NULL; return node; /初始化文件系统根结点 void createroot () recent=root=initnode(/,1); root-parent=NULL; root-child=NULL; root-prev=root-next=NULL; strcpy(path,/); void help() coutendl; coutcreate: 建立文件。 endl;

7、coutread: 读取文件。 endl; coutwrite: 写入文件。 endl; coutdelete: 删除文件。 endl; coutrm: 删除目录。 endl; coutmkdir: 建立目录。 endl; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环

8、境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . coutcd: 切换目录。 endl; coutdir: 显示目录。 endl; coutlogout: 退出登录。 endl; int dir() int i=0,j=0; temp=new filenode; temp=recent; if(temp=root) cout .endl; if(temp!=root) cout .chi

9、ld=NULL) coutTotal: directors i files j child; while(temp) if(temp-isdir) cout filenameendl;i+; else cout filenamenext; coutTotal: directors i files j filename; if(recent-child=NULL) cout 文件不存在!child-filename,filename)=0) coutchild-contentchild; while(temp-next) if(strcmp(temp-next-filename,filename

10、)=0) coutnext-contentendl; return 0; cout 文件不存在!filename; if(recent-child=NULL) cout 文件不存在!child-filename,filename)=0) cinrecent-child-content; cout 文件写入成功!child; while(temp-next) if(strcmp(temp-next-filename,filename)=0) cintemp-next-content; cout 文件写入成功!endl; return 0; cout 文件不存在!filename; temp=ne

11、w filenode; if(recent-child) temp=recent-child; while(temp-next & (strcmp(temp-filename,filename)!=0 | temp-isdir!=0) temp=temp-next; if(strcmp(temp-filename,filename)!=0 | temp-isdir!=0) cout 不存在该文件!endl; return 0; else cout 不存在该文件!parent=NULL) temp-prev-next=temp-next; if(temp-next) temp-next-prev

12、=temp-prev; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在

13、该文件不存在该文件可修编文件已 . - . .可修编. . temp-prev=temp-next=NULL; else if(temp-next) temp-next-parent=temp-parent; temp-parent-child=temp-next; delete temp; cout 文件已删除!filename; temp=new filenode; if(recent-child) temp=recent-child; while(temp-next & (strcmp(temp-filename,filename)!=0 | temp-isdir!=1) temp=te

14、mp-next; if(strcmp(temp-filename,filename)!=0 | temp-isdir!=1) cout 不存在该目录!endl; return 0; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件

15、读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . else cout 不存在该目录!parent=NULL) temp-prev-next=temp-next; if(temp-next) temp-next-prev=temp-prev; temp-prev=temp-next=NULL; else if(temp-next) temp-next-parent=temp-parent; temp-parent-child=te

16、mp-next; delete temp; cout 目录已删除!topath; if(strcmp(topath,.)=0) return 0; if(strcmp(topath,.)=0) 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根

17、结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . int i; while(recent-prev) recent=recent-prev; /向前回溯,找到第一次创建的目录 if(recent-parent) recent=recent-parent; i=strlen(path); / printf(%d %sn,i,path); while(pathi!=/ & i0) i-; /找到最右边的/ if(i!=0

18、) pathi=0; /printf(%s,path); /path中不止有一个/ else pathi+1=0; else findpath(topath); return 0; int findpath(char *topath) unsigned int i=0; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除

19、目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . int sign=1; if(strcmp(topath,/)=0) /如果命令是 cd / recent=root; strcpy(path,/); return 0; temp=recent; strcpy(temppath,path); if(topath0=/) /cd 命令以 cd

20、 /开始 recent=root-child; i+; strcpy(path,/); / printf(n%s,path); else if(recent!=NULL & recent!=root) strcat(path,/); / printf(n%sn,path); if(recent & recent-child) if(recent-isdir) recent=recent-child; else printf(路径错误!n); 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三

21、实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . return 1; while(ichild) i+; if(recent-isdir) recent=recent-

22、child; else printf( 路径错误n); return 1; strcat(path,/); while(topathi!=/ & ifilename,recentpath)!=0 | (recent-isdir!=1) & recent-next!=NULL) recent=recent-next; if(strcmp(recent-filename,recentpath)=0) if(recent-isdir=0) 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理

23、或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . strcpy(path,temppath); recent=temp; printf(是文件不是目录。n); return 1

24、; strcat(path,recent-filename); if(strcmp(recent-filename,recentpath)!=0 | recent=NULL) strcpy(path,temppath); recent=temp; printf(输入路径错误n); return 1; return 0; int mkdir() temp=initnode( ,1); cintemp-filename; if(recent-child=NULL) temp-parent=recent; temp-child=NULL; recent-child=temp; temp-prev=t

25、emp-next=NULL; printf(目录建立成功!n); else 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件

26、不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . ttemp=recent-child; if(strcmp(ttemp-filename,temp-filename)=0&ttemp-isdir=1) printf(目录已存在!n); return 1; while(ttemp-next) ttemp=ttemp-next; if(strcmp(ttemp-filename,temp-filename)=0&ttemp-isdir=1) printf(目录已存在!n); return 1; ttemp-next=temp; tem

27、p-parent=NULL; temp-child=NULL; temp-prev=ttemp; temp-next=NULL; printf(目录建立成功!n); return 0; int create() 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤

28、含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . temp=initnode( ,0); cintemp-filename; if(recent-child=NULL) temp-parent=recent; temp-child=NULL; recent-child=temp; temp-prev=temp-next=NULL; cout 文件创建成功!child; if(strcmp(ttemp

29、-filename,temp-filename)=0&ttemp-isdir=0) printf(文件已存在!n); return 1; while(ttemp-next) ttemp=ttemp-next; if(strcmp(ttemp-filename,temp-filename)=0&ttemp-isdir=0) printf(文件已存在!n); return 1; ttemp-next=temp; temp-parent=NULL; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统

30、三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . temp-child=NULL; temp-prev=ttemp; temp-next=NULL; cout 文件建

31、立成功!endl; return 0; int run() coutfilesystem:path; cinmand; if(strcmp(mand,mkdir)=0) mkdir(); else if(strcmp(mand,dir)=0) dir(); else if(strcmp(mand,cd)=0) cd(); else if(strcmp(mand,create)=0) create(); else if(strcmp(mand,read)=0) read(); else if(strcmp(mand,rm)=0) rm(); else if(strcmp(mand,write)=

32、0) write(); else if(strcmp(mand,delete)=0) del(); else if(strcmp(mand,help)=0) 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件

33、删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已 . - . .可修编. . help(); else if(strcmp(mand,logout)=0) return 0; else cout 请参考 help 提供的命令列表!endl; return 1; void main() cout*endl; cout*操作系统课程设计项目*endl; cout* 简单文件系统模拟 *endl; cout* 键入 help 可以获取帮助 *endl; cout*endl; cout*

34、endl; coutendl; createroot(); while(1) if(!run() break; 作命令的执行来模拟文件系统对文件及目录的管理实验要求两名学生成组结对完成实验仿真出文件系统中对文件和目录的操作二实验容必填文件管理实现一个简单的文件系统三实验原理或实验方法必填原理通过结构体来描述文件和对进行实验分别实现对文件和目录的操作对文件的操作包括创建文件读文件写文件删除文件对目录的操作包括创建目录切换目录展示目录容删除目录装订线四主要仪器设备或实验条件操作系统开发环境五实验步骤含实验数据记录处根结点建立文件读取文件写入文件删除文件删除目录建立目录可修编切换目录显示目录退出登录可修编文件不存在文件不存在可修编文件不存在文件写入成功文件写入成功文件不存在可修编不存在该文件不存在该文件可修编文件已

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号