操作系统课程设计模拟磁盘文件管理的程序_第1页
操作系统课程设计模拟磁盘文件管理的程序_第2页
操作系统课程设计模拟磁盘文件管理的程序_第3页
操作系统课程设计模拟磁盘文件管理的程序_第4页
操作系统课程设计模拟磁盘文件管理的程序_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——操作系统课程设计模拟磁盘文件管理的程序

模拟磁盘文件管理的程序

一、课程设计内容

⑴自定义磁盘文件管理的数据结构;⑵能够自由创立、修改、删除文件;⑶文件具有一定自定义的属性;⑷能够显示当前系统文件的状态。

二、课程设计的数据结构说明

程序中定义了两个类:classfile//文件类{private:

charname[10];//文件名public:

inttag;//删除标记1:已删0:未删file(){}

char*getname(){returnname;}//获取文件名intgettag(){returntag;}//获取删除标记

intgetlength(){returnlength;}//获取文件大小intgetblocknum(){returnblocknum;}//磁盘块数

intgetblocksum1(){returnblocksum1;}//磁盘块号的始点intgetblocksum2(){returnblocksum2;}//磁盘块号的终点intlength,blocknum,blocksum1,blocksum2;

voidsetname(charna[]){strcpy(name,na);}//设置文件名voiddelwenjian(){tag=1;}//设置删除标记1:已删0:未删

voidcreatfile(char*na,intL,intnum,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)//删除文件时先查找是否存在voiddisp()//输出所有文件信息};

三、课程设计的模板说明

1、初始化,建立文件系统

输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。

2、循环选择执行以下功能

1、存储文件

输入建立的文件名和文件大小,假使该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数

为其分派足够多的磁盘块,并记录下来输出所占用的磁盘块号

2、删除文件

输入要删除的文件名,假使该文件名不存在,则输出删除错误信息,否则收回该

文件所占用的磁盘块删除该文件名

3、显示位示图状况

显示位示图的状况显示剩余磁盘块的数目

4、显示文件列表

显示文件名,文件大小,占用的磁盘块数目和磁盘块号

四、课程设计的源代码

#include#include#include#include#include

inti=0,j=0,sum=0,tt=0,r,ii,k,g,m;inta[100][32];

classfile//文件类{private:

intno;//文件编号

charname[10];//文件名public:

inttag;//删除标记1:已删0:未删file(){}

char*getname(){returnname;}//获取姓名intgettag(){returntag;}//获取删除标记

intgetno(){returnno;}//获取文件编号

intgetlength(){returnlength;}//获取文件大小intgetblocknum(){returnblocknum;}//磁盘块数intgetblocksum1()//磁盘块号的始点

{returnblocksum1;}

intgetblocksum2()//磁盘块号的终点{returnblocksum2;}intlength;//文件大小intblocknum;//盘块数

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=length/m;//盘块数=文件大小/盘块大小if(length%m!=0)//盘块数取上整blocknum=blocknum+1;

cout=0;t--,x++)//循环进行整行赋值for(k=0;k0;t--,x++)//中间整行赋值for(k=0;k

{

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论