資源簡介
用高級語言編寫和調(diào)試一個簡單的文件系統(tǒng),模擬文件管理的工作過程。
代碼片段和文件信息
/*
title:?文件管理
Author:?王婷(20083560)
Date:?2010/11/01
*/
#include?
#include?
#include?
#include?
using?namespace?std;
typedef?struct?UNode
{?//?UFD結(jié)點
????char?FileName[12];?//?文件名
????char?ProCode[4];?//?保護碼
????int?length;?//?文件長度
????int?Open_RW;?//?文件打開關閉讀寫指針
????struct?UNode?*next;?//?后向指針
????struct?UNode?*prior;?//?前向指針
}*?UFD;
typedef?struct?MNode
{?//?MDF結(jié)點
????char?UserName[12];?//?用戶名
????char?Password[12];?//?密碼
????struct?UNode?*FileMenu;?//?文件目錄指針
????struct?MNode?*next;?//?后向指針
}*?MDF;
MDF?H=(MDF)malloc(sizeof(MNode));?//?全局變量指向MDF頭結(jié)點(數(shù)據(jù)項為空)
MDF?CurrUser;?//?全局變量當前操作用戶指針
//---------------------------函數(shù)聲明------------------------------
void?Welcome();?
void?InitSystem();?
UFD?InitUFD(MDF?p);?
void?DispMDF();?
void?DispMDF();?
void?DispUFD(MDF?L);
int?LoginCheck();?
void?Create();?
void?Delete();?
void?Open();???
void?Close();?
void?Read();??
void?Write();
void?Bye();?
//-----------------------------------------------------------------
void?InitSystem()?//?從文件將默認MDF和UFD組織起來進入內(nèi)存
{
????//“InitInfo.txt“?所有初始化信息都已寫入該文件這里未使用文件流
????H->FileMenu=NULL;
????H->next=NULL;
????MDF?p=H;
????int?UserNum;?//?初始化時用戶個數(shù)和文件個數(shù)
????cout<<“系統(tǒng)初始化開始請輸入用戶名個數(shù):?“;
????cin>>UserNum;
????for?(int?i=1;?i<=UserNum;?i++)
????{
????????p=p->next=(MDF)malloc(sizeof(MNode));
????????cout<<“\n請輸入第?“<????????cin>>p->UserName;
????????cin>>p->Password;?//?初始化MDF結(jié)點
????????p->FileMenu=InitUFD(p);
????????p->next=NULL;
????}
????cout<<“\n初始化完畢按任意鍵清屏并開始文件管理!\n“;
????system(“pause“);
????char?c;
????cin.get(c);
????system(“cls“);
}
UFD?InitUFD(MDF?p)?//首次創(chuàng)建用戶的文件
{
????UFD?srL=(UFD)malloc(sizeof(UNode));?//?初始化當前用戶的所有文件UFD
????L->next=NULL;
????r=L;
????int?FileNum;
????cout<<“請輸入用戶?“<UserName<<“?將要創(chuàng)建的文件個數(shù):?“;
????cin>>FileNum;
????cout<<“請輸入用戶?“<UserName<<“?的所有文件名保護碼和長度:?“;
????for?(int?j=1;?j<=FileNum;?j++)
????{
????????s=(UFD)malloc(sizeof(UNode));
????????cin>>s->FileName;?//讀取文件名
????????cin>>s->ProCode;?//?讀取保護碼
????????cin>>s->length;?//文件長度
????????s->Open_RW=0;
????????r->next=s;
????????s->prior=r;
????????r=s;
????}
????r->next=NULL;?//?UFD是雙向鏈表,便于刪除
????return?L->next;
}
void?DispMDF()?//?顯示用戶名列表
{
????cout<<“現(xiàn)有用戶名列表:?“;
????MDF?p=H->next;
????while?(p)
????{
????????cout<<“\t“<UserName;
????????p=p->next;
????}
????cout< }
void?DispUFD(MDF?L)?//?顯示UFD里的各個文件名
{
????cout< ????????<<“???“<UserName< ????????<<“---------\n“;
????UFD?p=L->FileMenu;
????if?(!p)
????{
????????cout<UserName<<“?用戶無文件現(xiàn)在創(chuàng)建文件嗎??(y/n)“;
????????char?c;?cin.get(c);?//?為無文件用戶第一次創(chuàng)建文件
????????if?(c==‘y‘)?L->FileMenu=InitUFD(L);
????????else?return;
????}
????while?(p)
????{
????????cout<<“???“<FileName< ????????p=p->next;
????}
????cout<<“---------\n“;
}
int?LoginCheck()?//?搜索用戶名是否存在
{
????char?UserName[12]PassWord[12];
????
- 上一篇:計算機圖形學實驗二 opengl
- 下一篇:基于c語言的多人聊天室系統(tǒng)
評論
共有 條評論