• 大小: 956KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: C/C++
  • 标签: C++  

资源简介

C++ os课程设计 连续文件、串联文件、索引文件 有报告 程序很简单

资源截图

代码片段和文件信息

#include
#include
#include
#include
using namespace std;
#define size 64

//*************************定义结构体******************
//定义连续文件结构体
struct lxfcb
{
int length;//文件长度
    string name;//文件名
int head;//文件首地址
int kong;//1代表被占用,0代表未被占用
};

//定义串联文件结构体
struct  clfcb
{
int length;//文件长度
string name;//文件名
int head;//文件首地址
    int tail;// 文件尾地址
int kong;//1代表被占用,0代表未被占用
};

//定义索引文件结构体
struct indexfcb
{
string name;
int in[8];
int address;
int length;
    int kong;//1代表被占用,0代表未被占用
};


//物理空间的结构体
struct block
{
int xinxi;//0表示未被占用,1表示已被占用
int next;//下一物理块的地址
};

//************************定义结构体*******************
int size1;
int count;
block a[size];//物理空间
lxfcb le[8];
clfcb c[8];
indexfcb ind[8];

void menu();//显示主菜单
void empty();//显示剩余空间
void display();//显示存储空间内的文件及存储地址
void creat();//创建新文件
void lianxu(string nint lint head);//创建连续文件
void chuanlian(string nint l);//创建串联文件
void index(string nint l);//创建索引文件
void init();//初始化
int checkname(string nameint type);//检查重名


int main()
{

srand(time(NULL));
size1=rand()%64;
count=size1;
init();
menu();
return 0;
}

void menu()
{
cout<<“****************模拟物理文件的存储过程***************“< cout<<“*****     1.显示剩余存储空间              **********“< cout<<“*****     2.显示存储空间内的文件及存储地址******“< cout<<“*****     3.创建新文件                    ******“< cout<<“*****     4.退出                          ******“< cout<<“*****************************************************“< int m;
while(1)
{
cin>>m;
if(m==1)  empty();
else if(m==2)  display();
else if(m==3)  creat();
else if(m==4)  exit(1);
else 
{
cout<<“Error“< return;
};
menu();
}
}

void init()
{
int ij;
for(i=0;i a[i].xinxi =0;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
ind[i].in[j]=-1;
le[i].kong =0;
c[i].kong =0;
ind[i].kong=0;
}
}
void empty()//显示剩余空间
{
int j=0;
cout<<“剩余空间的大小是“< cout<<“剩余空间的地址是“< for(int i=0;i     if(a[i].xinxi==0)
{
j++;
cout< if(j%8==0)
cout< }
cout<}

int checkname(string nameint type)
{    
int i;
if(type==1)
{
for(i=0;i<8;i++)
if(le[i].kong ==1)
if(!strcmp(le[i].name.c_str()name.c_str()))
return 0;
return 1;
};
 if(type==2)
{
for(i=0;i<8;i++)
if(le[i].kong ==1)
if(!strcmp(c[i].name.c_str()name.c_str()))
return 0;
  return 1;
};
if (type==3)
{
for(i=0;i<8;i++)
if(ind[i].kong ==1)
if(!strcmp(ind[i].name.c_str()name.c_str()))
return 0;
return 1;
};
}


void display()//显示物理空间中所有的文件
{
int ijhe;
cout<<“连续文件目录“< cout<<“名称\t起始位置\t长度\t存储空间“< for(i=0;i<8;i++)
if(le[i].kong ==1)
{
cout< c

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     132096  2009-06-22 11:06  os\Debug\vc60.idb

     文件     110592  2009-01-10 14:27  os\Debug\vc60.pdb

     文件     561240  2009-01-10 14:27  os\Debug\xitong.exe

     文件     805228  2009-01-10 14:27  os\Debug\xitong.ilk

     文件     290726  2009-01-10 14:27  os\Debug\xitong.obj

     文件      43520  2009-01-10 14:24  os\Debug\xitong.opt

     文件    2067060  2009-01-10 14:22  os\Debug\xitong.pch

     文件    1123328  2009-01-10 14:27  os\Debug\xitong.pdb

     文件     168960  2009-06-22 11:09  os\os.doc

     文件       7437  2009-01-10 14:26  os\xitong.cpp

     文件       3401  2009-01-08 23:55  os\xitong.dsp

     文件        520  2009-01-08 23:57  os\xitong.dsw

     文件      58368  2009-06-22 11:09  os\xitong.ncb

     文件      48640  2009-06-22 11:09  os\xitong.opt

     文件       1296  2009-01-10 14:27  os\xitong.plg

     目录          0  2009-04-10 21:43  os\Debug

     目录          0  2009-06-22 11:09  os

----------- ---------  ---------- -----  ----

              5422412                    17


评论

共有 条评论

相关资源