資源簡介
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
- 上一篇:ogre3d的vs2010插件
- 下一篇:數字信號處理課設報告 低比特率圖像壓縮
評論
共有 條評論