资源描述:
《操作系统课程设计++模拟磁盘文件管理的程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、模拟磁盘文件管理的程序一、课程设计内容⑴自定义磁盘文件管理的数据结构;⑵能够自由创建、修改、删除文件;⑶文件具有一定自定义的属性;⑷能够显示当前系统文件的状态。二、课程设计的数据结构说明程序中定义了两个类:classfile//文件类{private:charname[10];//文件名public:inttag;//删除标记1:已删0:未删file(){}char*getname(){returnname;}//获取文件名intgettag(){returntag;}//获取删除标记intgetlength(){returnlength;}//获取文件大小in
2、tgetblocknum(){returnblocknum;}//磁盘块数intgetblocksum1(){returnblocksum1;}//磁盘块号的始点intgetblocksum2(){returnblocksum2;}//磁盘块号的终点intlength,blocknum,blocksum1,blocksum2;voidsetname(charna[]){strcpy(name,na);}//设置文件名voiddelwenjian(){tag=1;}//设置删除标记1:已删0:未删voidcreatfile(char*na,intL,intnum,
3、ints1,ints2)//创建文件voiddeltefile(char*na){tag=1;strcpy(name,na);}//删除文件voiddisp()//输出文件信息classfdatabase//文件库类{private:inttop;//文件记录指针filef[50];public:fdatabase(){top=-1;}//构造函数intsearch(char*fname)//按文件名查找intcreatfile(char*na,intL,intnum,ints1,ints2)//创建文件时先查找是否存在intdeltefile(char*na)
4、//删除文件时先查找是否存在voiddisp()//输出所有文件信息};一、课程设计的模板说明1、初始化,建立文件系统输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。2、循环选择执行以下功能1、存储文件输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数为其分配足够多的磁盘块,并记录下来输出所占用的磁盘块号2、删除文件输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块删除该文件名3、显示
5、位示图情况显示位示图的情况显示剩余磁盘块的数目4、显示文件列表显示文件名,文件大小,占用的磁盘块数目和磁盘块号二、课程设计的源代码#include#include#include#include#includeinti=0,j=0,sum=0,tt=0,r,ii,k,g,m;inta[100][32];classfile//文件类{private:intno;//文件编号charname[10];//文件名public:inttag;//删除标记1:已删0:未
6、删file(){}char*getname(){returnname;}//获取姓名intgettag(){returntag;}//获取删除标记intgetno(){returnno;}//获取文件编号intgetlength(){returnlength;}//获取文件大小intgetblocknum(){returnblocknum;}//磁盘块数intgetblocksum1()//磁盘块号的始点{returnblocksum1;}intgetblocksum2()//磁盘块号的终点{returnblocksum2;}intlength;//文件大小in
7、tblocknum;//盘块数intblocksum1;//所占盘块号的始点intblocksum2;//所占盘块号的终点voidsetname(charna[])//设置文件名{strcpy(name,na);}voiddelwenjian(){tag=1;}//设置删除标记1:已删0:未删voidcreatfile(char*na,intL,intnum,ints1,ints2)//创建文件{tag=0;length=L;blocknum=num;blocksum1=s1;blocksum2=s2;strcpy(name,na);blocknum=lengt
8、h/m;//盘块数=文件