资源简介
操作系统课程设计 设计便于直接存取的索引文件结构,混合索引(含源代码,设计报告)
代码片段和文件信息
#include
#include
#include
#include//调用system()malloc()
#include//调用setw(n)时需要该头文件, 设域宽为n个字符
#define N 100
int a;//传递索引结点编号
int freespace=100;//空闲盘块初始值为0
int filenumber=0;//文件数量初始值为0
int p[100];//该数组作标记用
int q[100];//该数组作标记用
struct MENU// 目录信息项数据结构
{
char filename[5];//文件名
int indexPoint;//索引结点编号
};
MENU menu[50];
struct INDEX//索引表信息数据结构
{
int iaddr[5];
int singleindirect;
int s[10];
int doubleindirect;
int d[15];
int filelength;
};
INDEX index[50];
//写文件
void w1(int tint i)
{
int j;
for(i=0;i for(j=0;j if(p[j]==0)//是否存放标记
{
index[a].iaddr[i]=j;
p[j]=1;
break;
}
}
void w2(int tint i)
{
int j;
for(i=0;i for(j=0;j if(p[j]==0)
{
index[a].s[i]=j;
p[j]=1;
break;
}
}
void w3(int tint i)
{
int j;
for(i=0;i for(j=0;j if(p[j]==0)
{
index[a].d[i]=j;
p[j]=1;
break;
}
}
void write(char *tmpnameint tmplengthint *p)
{
int ij;
if(tmplength<1||tmplength>30)
{cout<<“请注意输入的文件长度必须在1~30范围之内!“< cout<<“请重新输入文件长度:“;
cin>>tmplength;}
for(i=0;i if(strcmp(menu[i].filenametmpname)==0)//判断是否文件重名
{
cout<<“存在重名文件!“< cout<<“文件写入失败!“ < system(“pause“);
return;
}
if(tmplength>freespace)//判断磁盘空间是否足够
{
cout<<“磁盘空间不足!“< cout<<“文件写入失败!“< system(“pause“);
}
for(i=0;i if(q[i]==0)
{
a=i;
q[i]=1;//标记置1
break;
}
strcpy(menu[a].filenametmpname);//复制文件名给目录的文件名
menu[a].indexPoint=a;//赋值给索引结点编号
index[a].filelength=tmplength;//赋值给文件长度
if(tmplength<=5)//直接索引
w1(tmplengthi);
else if(tmplength>5&&tmplength<=15)//一级
{
w1(5i);
for(j=0;j if(p[j]==0)
{
index[a].singleindirect=j;//j的值分配给一级地址块
p[j]=1;
break;
}
w2(tmplength-5i);
freespace--;
}
else if(tmplength>15)//二级以上
{
w1(5i);
for(j=0;j if(p[j]==0)
{
index[a].singleindirect=j;
p[j]=1;
break;
}
w2(10i);
for(j=0;j if(p[j]==0)
{
index[a].doubleindirect=j;
p[j]=1;
break;
}
w3(tmplength-15i);
freespace=freespace-2;
}
freespace-=tmplength;
filenumber++;//文件数量加1
cout<<“文件已成功写入!“< system(“pause“);
}
//删除文件
void d1(int tint iint r)
{
int j;
for(j=0;j {
r=index[i].iaddr[j];
p[r]=0;//标记置0
}
}
void d2(int tint iint r)
{
int j;
for(j=0;j {
r=index[i].s[j];
p[r]=0;
}
}
void d3(int tint iint r)
{
int j;
for(j=0;j {
r=index[i].d[j];
p[r]=0;
}
}
void remove(char *rnameint *p)
{
int ij;
int r0r1r2r3r4;
for(i=0;i {
if(strcmp(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8830 2013-06-09 13:10 操作系统课程设计 便于直接存取的索引文件结构\100811113.cpp
文件 8834 2013-06-09 00:45 操作系统课程设计 便于直接存取的索引文件结构\新建文本文档.txt
文件 978432 2013-06-30 13:18 操作系统课程设计 便于直接存取的索引文件结构\设计报告.doc
目录 0 2013-06-30 13:19 操作系统课程设计 便于直接存取的索引文件结构
----------- --------- ---------- ----- ----
996096 4
- 上一篇:心理学内隐联想测验Inquisit程序模板
- 下一篇:GMSK基带调制解调的实现
相关资源
- 山东大学操作系统实验八 磁盘移臂调
- EDA课程设计,完整版,全部验证,带
- 数字电路课程设计——彩灯设计
- csapp.h csapp.c文件
- 微机原理课程设计 --汽车信号灯控制
- GEEK OS课程设计报告
- 网上图书销售系统—数据库课程设计
- 软件体系结构课程设计报告
- 煤气公司送气管理系统.docx
- [单片机课设]秒表时钟计时器的设计
- 乒乓球游戏机设计报告.doc
- 数据结构课程设计全部系统合集超市
- 操作系统考研王道知识点整理
- 微机原理课程设计(亲测可用)--吉利
- 课程设计题五:汽车尾灯控制器设计
- 数据结构课程设计(排序综合)
- 贪吃蛇程序课程设计报告
- 微机原理课程设计:汽车控制系统.
- VxWorks操作系统指南.pdf
- 武侠小说网
- 操作系统实验报告-文件系统
- 数据挖掘课程设计
- 数据结构课程设计实验报告后缀表达
- 单片机课程设计基于单片机的交通灯
- 微机接口课程设计 电子琴
- 华中科技大学操作系统课程设计——
- 数据库课程设计工厂管理系统
- 操作系统银行家算法 js网页实现
- 《汇编语言课程设计案例精编》
- 信息处理课程设计
评论
共有 条评论