-
大小: 13KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-10
- 語言: 其他
- 標(biāo)簽: 數(shù)據(jù)結(jié)構(gòu)??
資源簡介
數(shù)據(jù)結(jié)構(gòu)大作業(yè):變長記錄文件存取類庫.
設(shè)計(jì)一個(gè)類庫,支持對(duì)變長記錄文件的存貯、插入、刪除、查找、修改等功能。文件中的每條記錄可以有不同的大小,是任意長度的字節(jié)流。每條記錄對(duì)應(yīng)一個(gè)序號(hào)(記錄號(hào))和一個(gè)字串型標(biāo)識(shí)。記錄的記錄號(hào)和標(biāo)識(shí)均可用作對(duì)記錄的定位和引用。這種文件的每個(gè)記錄實(shí)質(zhì)上相當(dāng)于一個(gè)子文件,可以存儲(chǔ)任意的多媒體數(shù)據(jù),如聲音、圖形、圖像等。文件記錄號(hào)自動(dòng)按記錄進(jìn)入次序生成,而記錄標(biāo)識(shí)由用戶隨意指定。變長記錄文件中的記錄,既可以是普通的字節(jié)流(嵌入),也可以是其他文件的鏈接。

代碼片段和文件信息
#include“filelibrary.h“
#include
#include
#define?Lenth_FileName?10????//文件名的長度
#define?Lenth_TempData?1000??//臨時(shí)數(shù)據(jù)內(nèi)容的最大長度
#define?Lenth_IsDelete?10????//刪除標(biāo)識(shí)的長度
FileFunction::FileFunction():NextNum(1){
}
void?FileFunction::MenuProcess(){
system(“cls“);
while(1){
char*?filename?=?new?char[Lenth_FileName];?//必須被初始化
cout<<“****************************“< cout<<“*??????????????????????????*“< cout<<“*?????處??理??文??件???????*“< cout<<“*??????????????????????????*“< cout<<“****************************“< cout<<“*????1.創(chuàng)建文件????????????*“< cout<<“*????2.打開已有文件????????*“< cout<<“*????3.關(guān)閉文件????????????*“< cout<<“*????0.返回主菜單??????????*“< cout<<“*??????????????????????????*“< cout<<“****************************“< cout<<“請(qǐng)輸入選項(xiàng)的號(hào)碼:“;
int?choice;
cin>>choice;
if(cin.fail()){
cout<<“輸入錯(cuò)誤!返回主菜單。“< return;
}
switch(choice){
case?1:{
cout<<“請(qǐng)輸入你要?jiǎng)?chuàng)建的文件名字:“;
cin>>filename;
if(Create(filename))
cout<<“創(chuàng)建文件“< else
cerr<<“創(chuàng)建文件“< break;
}
case?2:{
cout<<“請(qǐng)輸入你要打開的文件名字:“;
cin>>filename;
if(Open(filename))
cerr?<<“打開文件“< else
cerr<<“打開文件“< break;
???}
case?3:{
if(Close())
cout<<“關(guān)閉文件成功“< else
cout<<“沒有文件被打開,關(guān)閉不成功“< break;
???}
case?0: return;??????????????????????//返回主菜單
default:??cout?<“輸入錯(cuò)誤,請(qǐng)?jiān)俅屋斎搿? }
cout< }
}
void?FileFunction::MenuReadWrite(){
system(“cls“);
while(1){
cout<<“****************************“< cout<<“*??????????????????????????*“< cout<<“*?????順?序?讀?寫??????????*“< cout<<“*??????????????????????????*“< cout<<“****************************“< cout<<“*????1.順序讀??????????????*“< cout<<“*????2.順序?qū)??????????????*“< cout<<“*????0.返回主菜單??????????*“< cout<<“*??????????????????????????*“< cout<<“****************************“< cout<<“請(qǐng)輸入選項(xiàng)的號(hào)碼:“;
int?choice;
cin>>choice;
if(cin.fail()){
cout<<“輸入錯(cuò)誤!返回主菜單。“< return;
}
switch(choice){
case?1:{
if(!CheckFileOpen()){
cout<<“文件尚未打開,無法讀取“< break;
}
if(!ReadByOrder()?)
cout<<“已經(jīng)到達(dá)文件尾,讀取記錄未成功。“< break;
???}
case?2:{
WriteByOrder();
break;
???}
case?0: return;??????????????????????//返回主菜單?
default:??cout?<“輸入錯(cuò)誤,請(qǐng)?jiān)俅屋斎搿? }
cout< }
}
void?FileFunction::MenuAddRec(){?//加入記錄:加到尾部;插到指定的位置之前(按記錄號(hào)或記錄標(biāo)識(shí));插到當(dāng)前記錄之前;
system(“cls“);
while(1){
cout<<“***************************************“< cout<<“*?????????????????????????????????????*“< cout<<“*????添???????加???????記???????錄????*“< cout<<“*?????????????????????????????????????*“< cout<<“**********************************
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????318??2008-08-24?11:17??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\example
?????文件????????260??2008-08-30?16:19??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\exampleindex.txt
?????文件??????43635??2008-08-30?19:37??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\filelibrary.cpp
?????文件???????2730??2008-08-24?10:27??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\filelibrary.h
?????文件????????308??2008-08-12?11:47??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\li
?????文件????????600??2008-08-24?10:07??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\li
?????文件????????771??2008-08-24?10:50??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\llist.cpp
?????文件???????1076??2008-08-24?10:08??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\llist.h
?????文件???????2697??2008-08-30?16:18??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\main.cpp
?????文件????????258??2008-08-24?11:16??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\new
?????文件????????260??2008-08-30?16:20??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\newindex.txt
?????文件????????985??2008-08-23?20:47??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\record.cpp
?????文件????????951??2008-08-24?10:07??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\record.h
?????文件????????259??2008-08-30?16:12??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))\文件說明README.txt
?????目錄??????????0??2008-11-01?12:18??變長記錄文件(數(shù)據(jù)結(jié)構(gòu)大作業(yè))
-----------?---------??----------?-----??----
????????????????55108????????????????????15
評(píng)論
共有 條評(píng)論