资源简介
操作系统课程设计 设计便于直接存取的索引文件结构,混合索引(含源代码,设计报告)

代码片段和文件信息
#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基带调制解调的实现
相关资源
- FTP课程设计(服务端+客户端)
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- STM32基于rt_thread操作系统的SDHC卡文件
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
- 操作系统 LRU算法 实验报告 及 程序代
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- [免费]车载CE6.0操作系统
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- 操作系统实验——虚存管理实验
- c 课程设计 职工信息管理系统
- 广工操作系统实验
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 广东工业大学操作系统实验四文件系
- 课程设计蔬菜大棚自动控制系统,包
评论
共有 条评论