




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
模拟文件系统实验报告(精选合集) 第一篇:模拟文件系统实验报告操作系统大型试验实验报告姓名:XX班级:软件工程110x学号:201126630xxx一、名称操作系统大型试验。二、目的用C++编写出一个简单的模拟文件系统,实现目录的添加、删除、重命名,文件的添加、删除、重命名、文件和目录、文件的拷贝。三、要求开发工具:word,vcwin32api1.设计和实现一个简单的文件系统,要求包括目录、普通文件和文件的存储2.文件系统的目录结构采用类似Linux的树状结构;3.要求模拟的操作包括:a)目录的添加、删除、重命名;b)目录的显示(列表)c)文件的添加、删除、重命名d)文件和目录的拷贝4.用户进入时显示可用命令列表;用户输入help时显示所有命令的帮助文档;输入某个命令+?时显示该条命令的使用说明5.用户输入exit时退出该系统6.实验实现基于windows平台;7.实验开发语言可以选用C/c++等四、设计1.主要思路说明本模拟系统通过一个大小固定的数组要代表物理盘块,假设共有1024块,新增目录占一块,新增文件占一块,文件中可输入内容,内容假设定义为5个字符占一块,超出则应新申请空间。模拟物理盘块的数组中,数组内容为-99代表改物理盘块内容为空,可使用,其他数字均代表该物理盘块被占用,其中-3代表是占用文件的末结点,其他整数代表是文件内容的下一个寻址下标,另有一个string类型的数组来存储内容,模拟文件写入了对应下标的物理盘块中。设置了一个全局指针指向根结点,一个全局指针指向当前操作目录。搜索空白物理盘块时采用顺序搜索物理盘块数组。存储形式主要采用类似二叉树结构,如目录为根,目录下的第一个文件或目录存在根的子节点,目录下的其他文件或目录存在第一个文件或目录的兄弟节点,以此类推。本程序仅seperate()函数使用现成代码,此函数功能为将输入命令串分离,仅仅起到美观作用,其余所有代码均为原创!2.申优功能:1)能实现动态增长,即当输入文件的内容大小大于分配的模拟物理盘块时系统能够自动寻找空物理盘块并分配,将超出的内容保存在新的物理盘块中,若超出模拟磁盘大小,则超出部分不保存且返回提示。2)能实现级联删除,即当删除目录(文件夹)时,目录下的所有内容也应当删除并正确释放物理盘块空间。3)能实现目录的复制,即复制目录时(文件夹)时,该目录下的所有文件和目录也应准确复制至目标目录中,并正确分配物理盘块空间。3.主要函数和类的定义1)主要函数定义#defineshow_bnum20//显示物理盘块的块数#defineblock_size1024//物理盘块块数intblock[block_size];//假设有block_size块物理盘块stringcontent[block_size];//存放文件内容intMsize=5;//此处为模拟磁盘大小为输入5个字符fnode*root=newfnode(“WP:”,0,0);//设置根目录fnode*current_path=newfnode();fnode*seek_flag=newfnode();fnode*cp_flag=newfnode();voidinitialize();intseekTarget(stringname);intseek_log(stringname);voiddelete_node(stringname);intfreeblock(fnode*);intseekfreeblock();voidshow_current_path();voidadd_file(stringname,intt);voidshow_curpath_all();voidrename_file(stringOname,stringNname);voidseperate();voidcd();voidadd_File();voidadd_Log();voiddelete_file();voidshow_memory();voidre_name();voidhelp();voidshow_content();voidwrite_file();voidClear_();voidExit();voidcp();voidcp_log(fnode*target,fnode*source);voidcp_file(fnode*target,fnode*source);voidcp_node(fnode*target,fnode*source);intfind_target_log();intcalculate_logsizeMain(fnode*);intcalculate_logsize(fnode*);2)文件节点类的定义:classfnode{public://当前路径//作为查找标志//

光誉****君哥
实名认证
内容提供者


最近下载