資源簡介
數據結構大作業:變長記錄文件存取類庫.
設計一個類庫,支持對變長記錄文件的存貯、插入、刪除、查找、修改等功能。文件中的每條記錄可以有不同的大小,是任意長度的字節流。每條記錄對應一個序號(記錄號)和一個字串型標識。記錄的記錄號和標識均可用作對記錄的定位和引用。這種文件的每個記錄實質上相當于一個子文件,可以存儲任意的多媒體數據,如聲音、圖形、圖像等。文件記錄號自動按記錄進入次序生成,而記錄標識由用戶隨意指定。變長記錄文件中的記錄,既可以是普通的字節流(嵌入),也可以是其他文件的鏈接。

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