模拟磁盘文件管理的程序
《操作系统》实验报告

《操作系统》实验报告一、实验目的操作系统是计算机系统中最为关键的组成部分之一,本次实验的主要目的是深入理解操作系统的基本原理和功能,通过实际操作和观察,熟悉操作系统的核心概念,包括进程管理、内存管理、文件系统和设备管理等,提高对操作系统的实际应用能力和问题解决能力。
二、实验环境本次实验在以下环境中进行:操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、进程管理实验进程是操作系统中最基本的执行单元。
在这个实验中,我们使用C++编写程序来创建和管理进程。
通过观察进程的创建、执行和结束过程,理解进程的状态转换和资源分配。
首先,我们编写了一个简单的程序,创建了多个子进程,并通过进程标识符(PID)来跟踪它们的运行状态。
然后,使用等待函数来等待子进程的结束,并获取其返回值。
在实验过程中,我们发现进程的创建和销毁需要消耗一定的系统资源,而且进程之间的同步和通信需要谨慎处理,以避免出现死锁和竞争条件等问题。
2、内存管理实验内存管理是操作系统的核心功能之一,它直接影响系统的性能和稳定性。
在这个实验中,我们研究了动态内存分配和释放的机制。
使用 C++中的 new 和 delete 操作符来分配和释放内存。
通过观察内存使用情况和内存泄漏检测工具,了解了内存分配的效率和可能出现的内存泄漏问题。
同时,我们还探讨了内存分页和分段的概念,以及虚拟内存的工作原理。
通过模拟内存访问过程,理解了页表的作用和地址转换的过程。
3、文件系统实验文件系统是操作系统用于管理文件和目录的机制。
在这个实验中,我们对文件的创建、读写和删除进行了操作。
使用 C++的文件流操作来实现对文件的读写。
通过创建不同类型的文件(文本文件和二进制文件),并对其进行读写操作,熟悉了文件的打开模式和读写方式。
此外,还研究了文件的权限设置和目录的管理,了解了如何保护文件的安全性和组织文件的结构。
4、设备管理实验设备管理是操作系统与外部设备进行交互的桥梁。
信息技术(专升本)模拟练习题与参考答案

信息技术模拟练习题与参考答案一、单选题(共100题,每题1分,共100分)1、在编辑文章时,要将第五段移到第二段前,可先选中第五段文字,然后( )。
A、把插入点移到第二段开头,击[剪切]按钮,再击[粘贴]按钮B、击[复制]按钮,再把插入点移到第二段开头,击[粘贴]按钮C、击[粘贴]按钮,再把插入点移到第二段开头,击[剪切]按钮D、击[剪切]按钮,再把插入点移到第二段开头,击[粘贴]按钮正确答案:D2、在WINDOWS 环境中,对安装的汉字输入法进行切换的键盘操作是( )A、Shift+空格键B、Ctrl+ShiftC、Ctrl+圆点D、Ctrl +空格键正确答案:B3、一般操作系统的主要功能是()。
A、管理数据库文件B、管理用各种语言编写的源程序C、控制和管理计算机系统软、硬件资源D、对汇编语言、高级语言和甚高级语言进行编译正确答案:C4、下列关于IP的说法错误的是()。
A、IP地址指出了该计算机连接到哪个网络上B、IP地址在Internet上是唯一的C、IP地址是Internet上主机的数字标识D、IP地址由32位十进制数组成正确答案:D5、PAL制式的帧率为( )。
A、30f/sB、25f/sC、24f/sD、28f/s正确答案:B6、Excel中,如果移动或复制了工作表,则( )用“撤销”按钮取消操作。
A、不一定不可以B、不可以C、不一定可以D、可以正确答案:B7、下面关于外关键字描述不正确的是A、定义外关键字需要对所参考表拥有select权B、外关键字必须是所参考表的主关键字.C、外关键字属性必须与参考的属性是相同的数据类型D、一个表中可以有多个外关键字.正确答案:A8、设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。
A、6B、8C、9D、7正确答案:D9、2008年,()先后在无锡和北京建立了两个云计算中心A、AmazonB、微软C、GoogleD、IBM正确答案:D10、数据结构主要研究()。
操作系统课程设计项目参考

滴加碘液后
滴加碘液前
12/12/2021
第十二页,共二十三页。
消化(xiāohuà):在消化道内将食物分解成可吸收 (xīshōu)的成分的过程
(包括物理性消化和化学性消化)
吸收(xīshōu):营养物质通过消化道壁进入循环 系统的过程
12/12/2021
第十三页,共二十三页。
消化(xiāohuà)和吸收的过程
12/12/2021
第十九页,共二十三页。
练习(liànxí)
• 2、分析数据,指出(zhǐ chū)哪一部分消化道中消化液最多。
• 在每天摄入800克食物和1200毫升水的情况下, 消化腺大致分泌以下数量消化液。 1500毫升唾液 2000毫升胃液 1500毫升肠液 500毫升胆汁 1500毫升胰液
12/12/2021
第二十二页,共二十三页。
内容 总结 (nèiróng)
第二节。食物中的营养物质是在消化系统中被消化和吸收的。这粒西瓜籽在姗姗的消化道内, 经过了难忘的时光。它先遇到像轧钢机似的上、下尖硬的怪物,差点儿将它压得粉身碎骨。后来它
No 钻进了一条(yī tiáo)又长又窄的迷宫,它在这里走了很久,身边的许多物质都神秘地消失了。走出迷
唾液腺、胃腺(wèixiàn)、肝脏、胰腺、肠腺
1、淀粉在__口__腔__开始消化、蛋白质在____开始胃消化、脂肪在_______开始 消小化肠。
2、胆汁是一种消化液,但不含消化酶,起乳化脂肪的作用。
二、人体消化、吸收的主要器官—— _____小肠 能 训 练解
胰脏:分泌(fēnmì)胰液 肠腺:分泌肠液
肝脏:最大的腺体,分泌胆汁。 胆汁无消化酶,有乳化脂肪 的
作用。
第七页,共二十三页。
MS_DOS简介以及常用名令介绍

• • • •
DOS启动盘可以挽救崩溃的Windows操作系统 BIOS刷新 Firmware更新 独立操作系统进行故障检测
16
DOS、命令提示符--启动盘应用
DOS的启动盘创建方法根据引导媒体不同 分成三种不同的制作方法:
•
软盘:
利用Windows系统格式化可引导介质,如: 软盘等。在格式化窗口中“创建一个MSDOS启动盘”勾选,如右图:
27
文件命名规则--文件目录结构
•
文件目录结构: 树型目录结构 –目录和文件的隶属关系好象一个倒置的树,树根在上,称 为根目录,树叉在下,称为子目录,树的叶子称为文件 –根目录下可以挂若干子目录和文件,一级子目录下可以挂 二级子目录和文件 根目录
子目录1
子目录2
子目录3
二级子 目录
文件1
文件2
28
18
DOS、命令提示符--界面介绍
命令提示符(DOS)界面
命令提示 符(DOS) 的界面
19
主要内容:
• •
DOS概述 如何进入DOS、命令提示符
• •
文件命名规则
常用命令
20
文件命名规则--文件的概念
• •
文件是记录在磁盘等存储介质上的具有名字的一组相关信息的 集合,指在逻辑上具有完整意义的相关信息的集合 计算机处理的数据或运行的程序都是以文件方式保存的
• 命令处理程序()
该程序主要负责接收、识别、解释、处理用户通过键盘等输入的命令; 完成内部命令的解释和处理以及外部命令在内存的装入、键盘中断、出 错处理
Ps:凡是具备以上所讲的系统文件的磁盘都可视作DOS系统盘。
12
主要内容:
• •
DOS概述 如何进入DOS、命令提示符
虚拟实验:文件管理与磁盘恢复

9 1 12 25
第2次操作
D:/多媒体/图片/
7
7 22 21
第3次操作
野生动物.wmv
D:/多媒体/野生动物.wmv
4
4 10 23
第4次操作
朱自清 匆匆.doc
D:/多媒体/朱自清 匆匆.doc
19
19 8 2 27
实验报告表6 - 2创建文件过程演示实验记录表
创建的文件名
文件路径
分配的物理首地址
文件索引序列
鲁迅朝花夕拾.doc
D:15 16
实验报告表6 - 3删除文件过程实验记录表
删除的文件名
是否删除文件目录项
是否删除文件索引序列
是
是
做“文件管理与磁盘恢复”实验,完成以下实验报告表并提交。
可将以下实验报告表内容复制到word中,填写完成后,转成pdf后即可提交。
实验名称:文件管理与磁盘恢复
实验报告表6 - 1打开文件过程演示实验记录表
操作序号
文件名
文件路径
物理首地址
文件索引序列
第1次操作
命运交响曲.mp3
D:/多媒体/音乐/命运交响曲.mp3
如何在Windows操作系统中使用虚拟磁盘管理工具

如何在Windows操作系统中使用虚拟磁盘管理工具Windows操作系统是全球使用人数最多、应用场景最广泛的操作系统之一。
不论是个人用户还是企业用户,都需要对其进行管理和维护,以保证其稳定性和使用效率。
其中,虚拟磁盘管理工具是一个非常重要的组成部分,可以帮助用户管理和优化磁盘空间,提高系统性能。
那么,在本文中,我们将详细介绍如何在Windows操作系统中使用虚拟磁盘管理工具。
一、了解虚拟磁盘虚拟磁盘是Windows操作系统中一个非常实用的工具,它可以将一个文件或一个文件夹模拟成一个磁盘。
这样可以方便地管理和使用大量的资料和文件。
虚拟磁盘的容量可以根据用户的需求来进行设置。
二、使用虚拟硬盘创建虚拟磁盘虚拟硬盘是Windows操作系统的一个内置工具,它可以帮助用户创建和管理虚拟磁盘。
具体步骤如下:1、打开计算机管理程序在计算机管理程序中,可以看到设备管理器、磁盘管理器等多个选项。
2、选择“磁盘管理”磁盘管理是一个可以管理所有磁盘驱动器和分区的工具,包括虚拟磁盘。
3、选择“创建虚拟硬盘”在“磁盘管理”中,可以看到“创建虚拟硬盘”选项,选择该选项后,会弹出“新建虚拟硬盘向导”界面。
4、设置虚拟磁盘参数在“新建虚拟硬盘向导”界面中,可以设置虚拟磁盘的位置、大小、格式等参数,根据实际需求进行设置。
5、完成创建设置完成后,单击“完成”按钮,即可完成虚拟磁盘的创建。
在磁盘管理中可以看到新建的虚拟磁盘。
三、使用DiskGenius创建虚拟磁盘DiskGenius是一款功能强大的磁盘管理工具,可以帮助用户创建和管理虚拟磁盘。
具体步骤如下:1、下载并安装DiskGeniusDiskGenius是一款免费的软件,在官网上可以免费下载和安装。
2、打开DiskGenius打开安装完成的DiskGenius程序,在主界面中可以看到所有的磁盘分区信息。
3、选择“创建新虚拟磁盘”在主界面中,可以看到“创建新虚拟磁盘”按钮,单击该按钮后,会弹出“创建虚拟磁盘向导”界面。
操作系统实训报告

操作系统实训报告一、实训背景操作系统是计算机系统中最基本的软件之一,它负责管理计算机系统的各种资源,如内存、CPU、磁盘等。
为了更好地掌握操作系统的原理和实现,我们在课程中进行了一系列的操作系统实训。
二、实训内容1. 实验环境搭建在开始实验之前,我们需要先搭建好实验环境。
我们使用了虚拟机软件VMware Workstation来模拟一个计算机系统,并安装了Ubuntu 操作系统作为我们的实验平台。
2. 实验任务在本次实训中,我们主要完成了以下几个任务:(1)进程管理:通过编写一个简单的C程序来模拟进程创建、销毁和调度等操作。
(2)内存管理:通过编写一个简单的C程序来模拟内存分配和回收等操作。
(3)文件系统:通过使用Linux命令行工具来创建、读取和删除文件,并学习了文件权限管理等知识。
三、实训过程1. 进程管理首先,我们使用C语言编写了一个简单的程序,用于模拟进程创建和销毁。
程序首先创建一个父进程,并利用fork()函数创建两个子进程。
然后,父进程等待子进程结束后输出一条消息并退出。
接着,我们修改了程序,使用了wait()函数来实现进程调度。
wait()函数可以让父进程等待子进程结束后再继续执行。
我们在程序中使用了两个wait()函数来实现进程的顺序执行。
最后,我们添加了一个信号处理函数,用于处理子进程结束时发送的SIGCHLD信号。
信号处理函数可以在子进程结束时立即执行,不需要等待父进程调度。
2. 内存管理接下来,我们使用C语言编写了一个简单的程序,用于模拟内存分配和回收。
程序首先创建一个指向整型数组的指针,并使用malloc()函数动态分配一块内存。
然后,在内存中写入一些数据,并输出到屏幕上。
最后,使用free()函数释放内存并退出程序。
在编写程序时,我们注意到malloc()和free()函数是操作系统提供的内存管理接口。
malloc()函数可以动态分配一块指定大小的内存,并返回一个指向该内存区域的指针;而free()函数可以释放之前分配的内存。
操作系统B实验报告(华北电力大学科技学院)

h->next->priority--;
}
void show(PCB *h)
{
PCB *p=h->next;
while(p!=NULL)
{
cout<<"
p"<<p->id <<"
"<<p->runtime <<"
"<<p->priority <<"
"<<p->status <<endl;
cout<<"---------------------------------------------------------------------- "<<endl;
课程设计报告
( 2012-- 2013 年度第 1 学期)
名 称: 操作系统原理课程设计 B
院 系: 科技学院信息工程系
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
4
成 绩:
日期: 年 月 日
《操作系统原理课程设计 B》课程设计
任务书
一、 目的与要求
1. 理解和掌握操作系统的基本概念、基本组成与工作原理; 2. 理解和掌握操作系统中主要功能模块的工作原理及其实现算法; 3. 掌握软件模块设计技能;熟悉并能较好地利用软件开发环境独立编程、调试和分 析程序运行情况,逐渐形成创新思维和从事系统软件的研究和开发能力。
q=q->next; } p->next=q->next; q->next=p; } } void sort(PCB *h) { if(h->next->runtime==0) { h->next->status='E'; h->next=h->next->next; return; } PCB *p=h->next; h->next=p->next; PCB *q=h->next; if((q==NULL)||(p->priority>q->priority)) { p->next=h->next; h->next=p; return;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟磁盘文件管理的程序一、课程设计内容⑴自定义磁盘文件管理的数据结构;⑵能够自由创建、修改、删除文件;⑶文件具有一定自定义的属性;⑷能够显示当前系统文件的状态。
二、课程设计的数据结构说明程序中定义了两个类:class file//文件类{private:char name[10]; //文件名public:int tag; //删除标记 1:已删 0:未删file( ){ }char *getname( ){return name;} //获取文件名int gettag( ){return tag;} //获取删除标记int getlength() {return length;} //获取文件大小int getblocknum() {return blocknum;} // 磁盘块数int getblocksum1(){return blocksum1;} //磁盘块号的始点int getblocksum2(){return blocksum2;} //磁盘块号的终点int length,blocknum,blocksum1,blocksum2;void setname(char na[ ] ) {strcpy(name,na);} //设置文件名void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删void creatfile(char *na,int L,int num,int s1,int s2) //创建文件void deltefile(char *na) {tag=1; strcpy(name,na);} //删除文件void disp( )//输出文件信息class fdatabase //文件库类{ private:int top; //文件记录指针file f[50];public:fdatabase(){top=-1;} //构造函数int search(char *fname)//按文件名查找int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在int deltefile(char *na)//删除文件时先查找是否存在void disp() //输出所有文件信息};三、课程设计的模板说明1、初始化,建立文件系统输入磁盘大小(G),每个盘块大小(M),自动建立位示图,位示图字长定为32位输出位示图的行数,以及行号、列号与磁盘块号的转换公式(都从0开始编号)。
2、循环选择执行以下功能1、存储文件输入建立的文件名和文件大小,如果该文件名已经存在,则输出不能建立的信息否则计算所需的磁盘块数为其分配足够多的磁盘块,并记录下来输出所占用的磁盘块号2、删除文件输入要删除的文件名,如果该文件名不存在,则输出删除错误信息,否则收回该文件所占用的磁盘块删除该文件名3、显示位示图情况显示位示图的情况显示剩余磁盘块的数目4、显示文件列表显示文件名,文件大小,占用的磁盘块数目和磁盘块号四、课程设计的源代码#include<iostream.h>#include <math.h>#include<iomanip.h>#include<string.h>#include<fstream.h>int i=0,j=0,sum=0,tt=0,r,ii,k,g,m;int a[100][32];class file//文件类{private:int no; //文件编号char name[10]; //文件名public:int tag; //删除标记 1:已删 0:未删file( ){ }char *getname( ){return name;} //获取姓名int gettag( ){return tag;} //获取删除标记int getno() {return no;} //获取文件编号int getlength() {return length;} //获取文件大小int getblocknum() {return blocknum;} // 磁盘块数int getblocksum1()//磁盘块号的始点{ return blocksum1; }int getblocksum2()//磁盘块号的终点{ return blocksum2;}int length; //文件大小int blocknum;//盘块数int blocksum1;//所占盘块号的始点int blocksum2;//所占盘块号的终点void setname(char na[ ] ) //设置文件名{strcpy(name,na);}void delwenjian(){ tag=1; }//设置删除标记 1:已删 0:未删void creatfile(char *na,int L,int num,int s1,int s2) //创建文件{ tag=0;length=L;blocknum=num;blocksum1=s1;blocksum2=s2;strcpy(name,na);blocknum=length/m; //盘块数=文件大小/盘块大小if(length%m!=0) //盘块数取上整blocknum=blocknum+1;cout<<" 所需磁盘块数:"<<blocknum<<endl<<endl;if((sum+blocknum)<=32) //所有盘块数只占用一行,直接赋值{ for(;j<(sum+blocknum);j++)a[i][j]=1;sum=sum+blocknum; //再进行下面文件的盘块数累加}else{ //占用多行,先赋值整行for(;j<32;j++)a[i][j]=1;i=i+1;for(j=0;j<(sum+blocknum)-32;j++) //再进行剩余项赋值{a[i][j]=1;}sum=sum+blocknum-32;}tt=tt+blocknum; //输出文件所占用的盘块号cout<<" 所占磁盘块号:"<<tt-blocknum<<" to "<<tt-1<<endl; blocksum1=tt-blocknum;blocksum2=tt-1;}void deltefile(char *na) //删除文件{ tag=1;strcpy(name,na);}void disp( )//输出文件信息{cout<<setw(8)<<name<<setw(10)<<length<<setw(18)<<blocknum<<setw(12)<<blocksum1<<" to "<<blocksum2<<endl;}};class fdatabase //文件库类{ private:int top; //文件记录指针file f[50];public:fdatabase() //构造函数{top=-1;}int search(char *fname)//按文件名查找{for ( ii=0;ii<=top;ii++){ if (strcmp(f[ii].getname(),fname)==0 && f[ii].tag==0) return 0;}return 1;}int creatfile(char *na,int L,int num,int s1,int s2)//创建文件时先查找是否存在{ int p;p=search(na);if (p==1){ top++;f[top].creatfile(na,L,num,s1,s2);return 1;}else{cout<<" !!!该文件已存在,不能创建!!!\n\n";return 0; }}int deltefile(char *na)//删除文件时先查找是否存在{int b,p,x=0,n1,n2,q1,q2,t;p=search(na);if (p==0) //若文件存在{ //进行删除文件赋值f[ii].tag=1;b=f[ii].length/m; //盘块数=当前文件大小/盘块大小if(ii==0) // 对第一个删除文件进行赋值for(k=0;k<b;k++)a[x][k]=0;else{n1=(f[ii-1].blocksum2+1)/32; //被查找的文件之前文件所占用的盘块数/32,//大于0表示跨行n2=(f[ii].blocksum2+1)/32; //所有文件所占用的盘块数/32,大于0表示跨行q1=(f[ii-1].blocksum2+1)-n1*32; // 当前文件的开始盘块号q2=(f[ii].blocksum2+1)-n2*32; // 用于跨行后计算盘块号t=n2-n1;if(t==0) //若n2与n1相等,表明当前所有被占用盘块在同一行for(k=q1;k<1+b;k++)a[n2][k]=0;else{ if((f[ii-1].blocksum2+1)%32==0) //前面所占用的盘块数是32倍数{ x=x+n1; //当前文件赋值for(;t-1>=0;t--,x++) //循环进行整行赋值for(k=0;k<32;k++)a[x][k]=0;x=n2; //对剩余项赋值for(k=0;k<b-(t-1)*32;k++)a[x][k]=0;}else //对当前文件前几项赋值{ x=n1;for(k=q1;k<32;k++)a[x][k]=0;x=x+1;int t1=t;for(;t-1>0;t--,x++) //中间整行赋值for(k=0;k<32;k++)a[x][k]=0;x=n2; //最后剩余项赋值for(k=0;k<(f[ii].blocksum2+1)-t1*32;k++)a[x][k]=0;}}return 1; }}else{cout<<"该文件不存在";return 0;}}void disp() //输出所有文件信息{for (int i=0;i<=top;i++)if(f[i].tag==0)f[i].disp();}};void bit_map(int I){int s=0;cout<<"---------------------------------------------------------------"<<endl;for(int p=0;p<I;p++){for(int q=0;q<32;q++)cout<<a[p][q]<<" ";cout<<endl;}out<<"----------------------------------------------------------------"<<endl;for(int p1=0;p1<I;p1++)for(int q1=0;q1<32;q1++)if(a[p1][q1]==1)s=s+1;s=(g*1024)/m-s;cout<<" 剩余盘块数:"<<s<<endl;}void main(){ int I,l,b,i,j,ss1,ss2,sum=0;char fname[20];fdatabase p;file w;cout <<"\t\t************************************************\n"; cout <<"\t\t* *\n"; cout <<"\t\t* 初始化,建立文件系统 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";cout <<" 请输入磁盘大小GB: ";cin >>g;cout<<endl;cout <<" 请输入盘块大小MB: ";cin >>m;cout<<endl;I=(g*1024)/(32*m);for( i=0;i<I;i++)for( j=0;j<32;j++)a[i][j]=0;cout<<" 建立的位示图为:"<<endl;bit_map(I);cout<<" 行数:"<<I<<endl;cout <<"\t\t************************************************\n";cout <<"\t\t* *\n";cout <<"\t\t* 行号、列号与磁盘块号的转换公式为: *\n"; cout <<"\t\t* 磁盘块号=行号*32+列号 *\n";cout <<"\t\t* 行号=磁盘块号/32 *\n";cout <<"\t\t* 列号=磁盘块号%32 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";char choice;while(choice!='0'){cout <<"\t\t************************************************\n";cout <<"\t\t* *\n";cout <<"\t\t* 文件管理系统 *\n";cout <<"\t\t* *\n";cout <<"\t\t************************************************\n";cout <<"\t\t\t1 存储文件\n\n\t\t\t2 删除文件\n\n\t\t\t3 显示位示图情况 \n\n\t\t\t4 显示文件列表"<<endl;cout <<" 请输入选择项: ";cin >> choice;cout<<endl;switch (choice){case '1':cout <<" 请输入文件名: ";cin>>fname;cout<<endl; //创建文件前,先查找是否有同名文件存在int q;q=p.search(fname);if (q==0){ cout<<" !!!该文件已存在,不能创建!!!\n\n";break;}cout <<" 请输入文件大小MB: ";cin>>l;cout<<endl;if(l>g*1024){cout<<" !!!文件大小超过磁盘最大容量,无法进行分配!!!"<<endl;break;}p.creatfile(fname,l,b,ss1,ss2);break;case '2':cout <<" 请输入文件名: ";cin>>fname;cout<<endl;q=p.search(fname);if (!q==0){cout<<" !!!该文件不存在,无法删除!!!\n\n ";break;}p.deltefile(fname);break;case '3':cout <<"\t\t**************显示位示图如下*********************\n"; bit_map(I);cout<<endl;break;case '4':cout <<"\t\t*************文件列表如下************************\n"; cout<<"---------------------------------------------------------------"<<endl;cout<<setw(10)<<"文件名"<<setw(15)<<"文件大小(MB)"<<setw(15)<<"所占盘块数"<<setw(15)<<"所占盘块号"<<endl;p.disp();cout<<endl;break;default:cout<<"输入错误,请从新输入: \n\n";break;}}}五、课程设计程序运行结果1、初始化,建立文件系统(1)用户根据提示输入磁盘大小(GB)与每个盘块大小(MB);(2)程序首先根据用户输入的磁盘大小(GB)与每个盘块大小(MB),自动建立位示图,即初始化位示图,位示图每一行长度固定为32位(即列固定为32);位示图中每一位表示一个盘块,取值0和1分别表示空闲和占用。