模拟物理文件的存储过程连续文件索引文件.docx
- 文档编号:10582056
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:19
- 大小:245.65KB
模拟物理文件的存储过程连续文件索引文件.docx
《模拟物理文件的存储过程连续文件索引文件.docx》由会员分享,可在线阅读,更多相关《模拟物理文件的存储过程连续文件索引文件.docx(19页珍藏版)》请在冰豆网上搜索。
模拟物理文件的存储过程连续文件索引文件
学号:
012
课程设计
题目
模拟物理文件的存储过程
——连续文件、索引文件
学院
计算机科学与技术
专业
计算机科学与技术
班级
计算机
姓名
指导教师
2011
年
01
月
19
日
课程设计任务书
学生姓名:
专业班级:
计算机科学与技
指导教师:
工作单位:
计算机科学与技术学院
题目:
模拟物理文件的存储过程——连续文件、索引文件
初始条件:
1.预备内容:
阅读操作系统的文件管理章节内容,理解有关文件组织形式、文件存储的概念。
2.实践准备:
掌握一种计算机可视化语言的使用。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.模拟采用指定结构对文件进行存储。
能够处理以下的情形:
⑴能够输入给定的存储空间大小,文件的个数及大小;
⑵能显示出各文件占用空间的情况。
2.设计报告内容应说明:
⑴课程设计目的与功能;
⑵需求分析,数据结构或模块说明(功能与框图);
⑶源程序的主要部分;
⑷测试用例,运行结果与运行情况分析;
⑸自我评价与总结:
)你认为你完成的设计哪些地方做得比较好或比较出色;
)什么地方做得不太好,以后如何改正;
)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);
)完成本题是否有其他的其他方法(如果有,简要说明该方法);
)对实验题的评价和改进意见,请你推荐设计题目。
时间安排:
设计安排一周:
周1、周2:
完成程序分析及设计。
周2、周3:
完成程序调试及测试。
周4、周5:
验收,撰写课程设计报告。
(注意事项:
严禁抄袭,一旦发现,抄与被抄的一律按0分记)
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
模拟物理文件的存储过程
——连续文件、索引文件
1目的与功能
1.1设计目的
(1)阅读操作系统的文件管理章节内容,理解有关文件组织形式、文件存储的概念。
(2)掌握两种物理结构——顺序文件和索引文件的存储。
(3)掌握一种计算机可视化语言的使用。
1.2设计功能(任务要求)
模拟采用顺序结构和索引结构对文件进行存储。
能够处理以下的情形:
(1)能够输入给定的存储空间大小,文件的个数及大小;
(2)能显示出各文件占用空间的情况。
2需求分析及数据结构说明(功能与框图)
2.1需求分析
本次实验主要是实现对物理文件存储过程的模拟,模拟的是连续文件、索引文件的存储过程。
由于本次实验是模拟两种文件的存储过程,所以可以建一个主菜单,由用户来进行的操作,如显示文件的存储情况、显示剩余存储空间、创建新文件等。
如果要选择创建文件的操作,则显示一个二级菜单供用户选择。
用户可以指定创建的文件的个数,每一种文件的类型及大小。
并能够按照实验的要求显示出用户建立的文件所占用的空间情况。
连续文件、索引文件共享同一物理存储空间,所用的存储结构应同时满足这两种结构的文件,如果某一物理块已经被占用,用.[kong]=1表示,.[komg]=0则表示未被占用。
需要可以处理以下情形:
(1)能够输入给定的存储空间大小
用户可以按照自己的需要确定存储空间的大小,但要指定一最大值,存储空间的大小不能超过此范围。
(2)输入文件的个数和大小
用户可以输入文件的类型、个数和大小,即输入要创建的文件类型(连续文件你还是索引文件)、要创建几个文件、每个文件的文件名以及文件的大小。
在输入完成后先判断文件大小是否合适,是否有足够的或合适的空间来创建所需要的文件,然后再进行创建。
连续文件由于存储空间是连续的,需要显示物理始址,及存储空间;索引文件是将文件的逻辑块号与物理块号放在一张索引表中,这张表也存放在一个物理块中。
所以在判断剩余空间是否足够的时候应该考虑到。
如果输入的大小不符合,将不能创建此文件,显示“剩余空间不足,请重新输入”,输入符合的大小再进行创建。
(3)显示各文件占用空间的情况
将创建的各个文件的文件名、大小、占用空间情况显示出来。
连续文件在显示时显示出的物理空间是连续的;索引文件结构要求系统为每一个文件建立一张索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号,所以在显示的时候应该能够显示出它们之间的对应关系。
(4)在输入文件名称时,要能够实现文件不能重名。
对于输入的文件名称,要先进行判断,看是否有相同的文件名,若发生重名现象,则显示“文件已经存在,重新出入文件名”。
2.2数据结构
2.2.1连续文件结构体
连续文件是一种最简单的物理文件结构,它把一个在逻辑上连续的文件信息依次存放到物理块中。
连续文件结构如下图所示:
具体定义如下:
structlxfcb
{
stringname;//文件名
intlength;//文件长度
inthead;//文件首地址
intkong;//1代表被占用,0代表未被占用};
2.2.2索引文件结构体
索引结构要求系统为每个文件建立一张索引表,表中每一栏目指出文件信息所在的逻辑块号和与之对应的物理块号。
索引表的物理地址则由文件说明信息项给出。
索引结构如下图所示:
structindexfcb
{
stringname;//文件名称
intin[30];//文件的逻辑块与物理块对应信息
intaddress;//索引表在物理空间中的存放位置
intlength;//记录的个数,小于或等于30
intkong;//1代表被占用,0代表未被占用
};
2.3框图
2.3.1主函数流程图
调用init()程序实现对存储空间的初始化。
首先,输入存储空间的大小size1,并将地址为0~(size1-1)的这部分存储空间赋值为0。
初始化完成后调用menu()程序。
2.3.2菜单函数流程图
根据主菜单界面的提示信息,输入1调用empty()程序,显示剩余存储空间;输入2调用display()程序,显示存储空间内的文件及存储地址;输入3调用creat()程序,创建新文件,输入4则退出。
2.3.3创建函数的流程图
根据二级选择菜单的提示信息,输入文件个数,输入为0返回主菜单界面,大于0继续下面的输入;输入文件的类型,1为连续文件,2为索引文件;输入文件名na,调用checkname()程序判断该文件名是否已经存在,即有无重名现象,存在则重新出入文件名,不存在则继续下面的输入;输入文件的大小,当文件为连续文件时调用is_enough()程序,判断是否有足够的连续空间,有则调用lianxu()程序,创建连续文件,没有足够的连续空间则显示“无连续空间,不能创建”,返回主菜单界面;当文件为索引文件时同样判断空间是否足够,再调用index()程序创建索引文件。
3源程序的主要部分
3.1creat()程序
在创建文件函数creat中,先对文件的名称进行是否重名判断,符合刚进行下一输入。
如果要创建的是连续文件,则对存储空间进行判断,检查是否有连续的空间来创建。
如果是,则进行连续文件的创建。
如果是索引文件,则直接调用,在创建索引文件时才判断长度。
voidcreat()
{
cout<<"****************创建文件***************"< cout<<"***1.连续文件***"< cout<<"***2.索引文件***"< cout<<"***************************************"< intcl,len,i,j; stringna; cout<<"请输入文件个数"; cin>>i; for(j=1;j<=i;j++) { cout<<"请输入第"< cin>>cl; cout<<"请输入第"< do{//检测文件名是否已经存在 cin>>na; if(! checkname(na))//检查是否重名 { cout<<"文件已经存在请重新输入第"< flag=1; } else { flag=0; } }while(flag); cout<<"请输入第"< cin>>len; if(cl==1)//连续文件 { //判断是否有足够的空间可以创建连续文件 while(len>count) { cout<<"剩余空间不足"< empty();//显示剩余空间 cout<<"请重新输入: "; cin>>len; } is_enough(na,len);//判断是否有足够的连续空间 } elseif(cl==2)//索引文件 { while((len+len/30+1)>count)//判断剩余空间是否足够 { cout<<"剩余空间不足"< empty();//显示剩余空间 cout<<"请重新输入: "; cin>>len; } intt1,t2; t1=len/31;//定义一个索引表物理块最多存放三十个记录 t2=is_enough(na,t1+1);//t2存放索引表文件的下标 if(t2! =-1) { le[t2].kong=-1;//标志为索引表文件 } index(na,len); } else { cout<<"类型输入错误! "< return; } } } 3.2lianxu()程序 在创建连续文件函数lianxu中,首先在连续文件目录中查找是否有空间来存放,如果有,则将此空间的kong置为1。 自动产生文件的存放地址,将存放地址的xinxi位置为1,并显示创建成功。 intlianxu(stringn,intl,inthead)//创建连续文件 { inti,j; for(i=0;i { if(le[i].kong==0)break;//找到连续文件的下标 } le[i].name=n;//连续文件的名称 le[i].length=l;//连续文件的大小 le[i].head=head;//连续文件存储的起始地址 le[i].kong=1; for(j=0;j {//空间己被占用,修改 a[head+j]=1; count--; } cout<<"创建成功"< returni; } 3.3index()程序 在创建索引文件函数index中,首先在索引文件目录中查找是否有空间来存放,如果有,则将此空间的kong置为1,然后让用户输入此文件的索引表存放位置,如果该物理块已经被占用,则重新输入,直到合适为止。 其次会随机产生文件存放的首地址,然后依次随机产生其它的存放位置,并显示创建成功。 voidindex(stringn,intl)//创建索引文件 { intnum,i,j,k,t,m; for(num=0;num { if(ind[num].kong==0)break; } i=l/31+1; j=l%30; for(k=1;k { ind[num].name=n; ind[num].length=30; ind[num].kong=1; ind[num].address=begin++; for(t=0;t<30;t++) { while (1) { m=rand()%size1; if(a[m]==1) { continue; } break; } a[m]=1; ind[num].in[t]=m; count--; } num++; } //创建最后一个索引表,记录数小于等于30 if(j==0) {//长度刚好为30 ind[num].name=n; ind[num].length=30; ind[num].kong=1; ind[num].address=begin++; for(t=0;t<30;t++) { while (1) { srand((unsigned)time(NULL)); m=rand()%size1; if(a[m]==1) { continue; } break; } a[m]=1; ind[num].in[t]=m; count--; } } else { ind[num].name=n; ind[num].length=j; ind[num].kong=1; ind[num].address=begin++; for(t=0;t { while (1) { m=rand()%size1; if(a[m]==1) { continue; } break; } a[m]=1; ind[num].in[t]=m; count--; } } cout<<"创建成功"< } 4测试用例,运行结果与运行情况分析 4.1创建新文件 4.2显示存储空间内的文件及存储地址 3.3显示剩余存储空间 6自我评价与总结 6.1设计特色 本次课程设计要求完成的是模拟物理结构—连续文件和索引文件在物理空间内的存储,能够输入给定的存储空间的大小,文件个数和文件大小,并能显示文件在存储空间内的存储情况。 我完成了任务要求实现的功能。 这两种结构的文件在同一存储空间内操作,设置一信息位,用来标记物理块是否被占用。 每次创建文件前,都要对输入的大小做出判断,如果要创建文件的大小超过剩余空间,则不对其进行创建。 通过empty()函数,可以查看未被利用的物理块的具体情况,先输出总的剩余空间的大小,然后依次输出未被利用的物理块号。 对相同的文件类型来说,不能有重名现象发生。 通过checkname()函数实现重名判断,如果有重名,则重新输入。 6.2收获与体会 通过本次课程设计,我对文件的物理结构有了更深的影响。 这次设计我的体会是,对于操作系统的学习,仅仅靠掌握概念性的知识是远远不够的,更重要的是要锻炼自己的动手能力和独立思考的能力。 无论什么事情都是平时一点一滴积累的过程,学习更加如此。 正因为我平时没有正确的对待实验,认为只要做过了,有没有实现它的功能都无所谓。 才使得这次的课程设计的难度加大了很多,在以后的学习中,我要把理论知识与上机的实践操作结合起来,做到真真正正的理解知识,掌握知识。 本科生课程设计成绩评定表 班级: 计算机姓名: 学号: 序号 评分项目 满分 实得分 1 学习态度认真、遵守纪律 10 2 设计分析合理性 10 3 设计方案正确性、可行性、创造性 20 4 设计结果正确性 40 5 设计报告的规范性 10 6 设计验收 10 总得分/等级 评语: 注: 最终成绩以五级分制记。 优(90-100分)、良(80-89分)、中(70-79分)、 及格(60-69分)、60分以下为不及格 指导教师签名: 20年 月 日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 物理 文件 存储 过程 连续 索引