




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)xxx公司模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)設(shè)計(jì)目的:通過具體的文件存儲(chǔ)空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)和文件操作的實(shí)現(xiàn),加深對文件系統(tǒng)內(nèi)部功能和實(shí)現(xiàn)過程的理解。設(shè)計(jì)內(nèi)容:模擬一個(gè)簡單二級(jí)文件管理系統(tǒng)一、實(shí)驗(yàn)內(nèi)容描述1實(shí)驗(yàn)?zāi)繕?biāo)本實(shí)驗(yàn)的目的是通過一個(gè)簡單多用戶文件系統(tǒng)的設(shè)計(jì),加深理解文件系統(tǒng)的內(nèi)部功能及內(nèi)部實(shí)現(xiàn).2實(shí)驗(yàn)要求為DOS系統(tǒng)設(shè)計(jì)一個(gè)簡單的二級(jí)文件系統(tǒng).要求做到以下幾點(diǎn):①可以實(shí)現(xiàn)下列命令:login用戶登錄dir列文件目錄create創(chuàng)建文件delete刪除文件open打開文件close關(guān)閉文件read讀文件write寫文件②列目錄時(shí)要列出文件名、物理地址、保護(hù)碼和文件長度.③源文件可以進(jìn)行讀寫保護(hù).二、程序主要內(nèi)容1設(shè)計(jì)思路程序中要求每個(gè)用戶在登陸后才可對其擁有的文件進(jìn)行操作,用戶對于其他用戶的文件無操作權(quán).文件操作包括瀏覽、創(chuàng)建、刪除、打開、關(guān)閉、閱讀、寫入、修改模式.其他操作包括新建用戶、幫助、用戶登入、用戶登出、退出系統(tǒng).在程序文件夾下有個(gè)名為“file”的系統(tǒng)根目錄,此目錄下包括:一個(gè)名為“mfd”的文件,記錄所有注冊過的帳號(hào)及密碼;用戶文件,以用戶名作為文件名,內(nèi)容為其擁有的文件名及屬性;一個(gè)名為“keiji”的文件夾.“keiji”文件夾中包括:“”指針文件,記錄所有已用的物理地址;一些以物理地址為名的文件,內(nèi)容為文件內(nèi)容.2數(shù)據(jù)結(jié)構(gòu)file結(jié)構(gòu)體系統(tǒng)文件數(shù)據(jù)結(jié)構(gòu):fpaddrint,文件的物理地址、flengthint,文件長度、fmodeint,文件模式0.只讀;1.可寫;2.可讀寫;3.保護(hù)、fname[]char,文件名;filemode結(jié)構(gòu)體文件狀態(tài)數(shù)據(jù)結(jié)構(gòu):isopenint,文件當(dāng)前狀態(tài),0.關(guān)閉;1.打開、modeint,文件模式0.只讀;1.可寫;2.可讀寫;3.初始化;user結(jié)構(gòu)體用戶信息數(shù)據(jù)結(jié)構(gòu):uname[]char,用戶名、upassword[]char,用戶密碼;userfile結(jié)構(gòu)體用戶文件數(shù)據(jù)結(jié)構(gòu):uname[]char,用戶名、ufile[]file,用戶擁有的文件數(shù)組.代碼:#include<>#include<>#include<>#include<>#include<>#defineMaxUser100ser=(UFD*)malloc(sizeof(UFD));userTable[i].user->next=NULL;}while(1){printf("********************************************\n");printf("1、Creatuser\n");printf("2、login\n");printf("********************************************\n");printf("Pleasechoocethefunctionkey:>");intchoice;scanf("%d",&choice);if(choice==1)userCreate();elseif(choice==2)userID=login();elseprintf("您的輸入有誤,請重新選擇\n");while(userID!=-1){fflush(stdin);printf("———————————————————————————————————————\n");printf("create-創(chuàng)建格式:createa11000rw,將創(chuàng)建名為a1,長度為1000字節(jié)可讀可寫的文件\n");printf("rm-刪除格式:rma1,將刪除名為a1的文件\n");printf("cat-查看文件內(nèi)容格式:cata1,顯示a1的內(nèi)容\n");printf("write-寫入格式:writea1\n");printf("fine-查詢格式:finea1,將顯示文件a1的屬性\n");printf("chmod-修改格式:chmoda1r,將文件a1的權(quán)限改為只讀方式\n");printf("ren-重命名格式:rena1b1,將a1改名為b1\n");printf("dir-顯示文件格式:diraaa,將顯示aaa用戶的所有文件\n");printf("df-顯示磁盤空間使用情況格式:df\n");printf("close-關(guān)閉文件格式:closea1,將關(guān)閉文件a1\n");printf("return-退出用戶,返回登錄界面\n");printf("exit-退出程序\n");printf("————————————————————————————————————————\n");printf("pleaseimputyourcommand:>");gets(command);intselect;for(i=0;command[i]!=''&&command[i]!='\0';i++)ser->next;p!=NULL;p=p->next)serName,userName)){printf("\n");printf("該用戶名已存在,創(chuàng)建用戶失敗\n");system("pause");return;}}strcpy(userTable[used].userName,userName);printf("\n");printf("請輸入密碼:");for(i=0;c=getch();i++){if(c==13)break;elseuserTable[used].password[i]=c;printf("*");}userTable[userID].password[i]='\0';printf("\n");printf("創(chuàng)建用戶成功\n");used++;system("pause");}else{printf("創(chuàng)建用戶失敗,用戶已達(dá)到上限\n");system("pause");}fflush(stdin);}intlogin(){charname[10],psw[10];charc;inti,times;printf("請輸入用戶名:");for(i=0;c=getch();i++){if(c==13)break;elsename[i]=c;printf("%c",c);}name[i]='\0';for(i=0;i<used;i++){if(!strcmp(userTable[i].userName,name))break;}if(i==used){printf("\n您輸入的用戶名不存在\n");system("pause");return-1;}for(times=0;times<3;times++){memset(psw,'\0',sizeof(psw));printf("\n請輸入密碼:");for(i=0;c=getch();i++){if(c==13)break;elsepsw[i]=c;printf("*");}printf("\n");for(i=0;i<used;i++){if(!strcmp(psw,userTable[i].password)){printf("用戶登錄成功\n");system("pause");break;}}if(i==used){printf("您輸入的密碼錯(cuò)誤,您還有%d次輸入機(jī)會(huì)\n",2-times);if(times==2)exit(0);}elsebreak;}fflush(stdin);returni;}voidinitDisk(){diskHead=(diskNode*)malloc(sizeof(diskNode));diskHead->maxlength=MaxDisk;diskHead->useFlag=0;diskHead->start=0;diskHead->next=NULL;}intrequestDist(int&startPostion,intmaxLength){intflag=0;ser->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName)){printf("文件重名,創(chuàng)建文件失敗\n");system("pause");return;}}if(requestDist(startPos,length)){fileNode=(UFD*)malloc(sizeof(UFD));fileNode->file=(fileTable*)malloc(sizeof(fileTable));ser->next==NULL)userTable[userID].user->next=fileNode;else{p=userTable[userID].user->next;while(p->next)p=p->next;p->next=fileNode;}printf("創(chuàng)建文件成功\n");system("pause");}else{printf("磁盤空間已滿或所創(chuàng)建文件超出磁盤空閑容量,磁盤空間分配失敗\n");system("pause");}}voidfreeDisk(intstartPostion){diskNode*p;for(p=diskHead;p!=NULL;p=p->next){if(p->start==startPostion)break;}p->useFlag=false;}voidfileDel(charfileName[]){UFD*p,*q,*temp;q=userTable[userID].user;p=q->next;while(p){if(!strcmp(p->file->fileName,fileName))break;else{p=p->next;q=q->next;}}if(p){if(p->file->openFlag!=true)ser;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){startPos=p->file->strat;length=p->file->length;p->file->openFlag=true;ser;inti,k,startPos;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){if(!strcmp(p->file->fileKind,"r"))ser;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){printf("********************************************\n");printf("文件名:%s\n",p->file->fileName);printf("文件長度:%d\n",p->file->maxlength);printf("文件在存儲(chǔ)空間的起始地址:%d\n",p->file->strat);printf("文件類型:%s\n",p->file->fileKind);printf("創(chuàng)建時(shí)間:%s\n",asctime(p->file->timeinfo));printf("********************************************\n");system("pause");}else{printf("沒有找到該文件,請檢查輸入的文件名是否正確\n");system("pause");}}voidchmod(charfileName[],charkind[]){UFD*p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){strcpy(p->file->fileKind,kind);printf("修改文件類型成功\n");system("pause");}else{printf("沒有找到該文件,請檢查輸入的文件名是否正確\n");system("pause");}}voidfileRen(charfileName[],charname[]){UFD*p,*q;q=userTable[userID].user;for(p=q->next;p!=NULL;p=p->next){if(!strcmp(p->file->fileName,fileName))break;}if(p){while(q->next){if(!strcmp(q->next->file->fileName,name)){printf("您輸入的文件名已存在,重命名失敗\n");system("pause");return;}q=q->next;}strcpy(p->file->fileName,name);printf("重命名成功\n");system("pause");}else{printf("沒有找到該文件,請檢查輸入的文件名是否正確\n");system("pause");}}voidfileDir(charuserName[]){UFD*p;inti,k;for(i=0;i<MaxUser;i++){if(!strcmp(userTable[i].userName,userName)){k=i;break;}}if(i==MaxUser){printf("沒有找到該用戶,請檢查輸入用戶名是否正確\n");system("pause");return;}else{p=userTable[k].user->next;printf("********************************************************************************\n");printf("文件名文件長度文件在磁盤的起始地址文件類型創(chuàng)建時(shí)間\n");for(;p!=NULL;p=p->next)printf("%s%d%d%s%s",p->file->fileName,p->file->maxlength,p->file->strat,p->file->fileKind,asctime(p->file->timeinfo));printf("********************************************************************************\n");system("pause");}}voiddiskShow(){diskNode*p;inti=0,un
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫在醫(yī)學(xué)領(lǐng)域的應(yīng)用
- 我的夢想電影講解
- 設(shè)備投標(biāo)技術(shù)方案宣講
- 授受動(dòng)詞的講解
- 現(xiàn)代教育技術(shù)實(shí)驗(yàn)
- 2026屆廣東省五?;瘜W(xué)高二第一學(xué)期期末聯(lián)考試題含答案
- 醫(yī)院新員工崗前培訓(xùn)大綱
- 學(xué)校工作情況匯報(bào)
- 物業(yè)項(xiàng)目經(jīng)理完成培訓(xùn)匯報(bào)
- 雙眼皮講解課件
- 橋下渣土處置方案(3篇)
- 2025年 杭州市余杭區(qū)衛(wèi)生健康系統(tǒng)招聘醫(yī)學(xué)類專業(yè)畢業(yè)生筆試考試試卷附答案
- 利用乳酸菌半固態(tài)發(fā)酵提升糙米食用感官與營養(yǎng)品質(zhì)的研究
- 船體搶修方案(3篇)
- 智人遷徙路徑重構(gòu)-洞察及研究
- 關(guān)于醫(yī)院“十五五”發(fā)展規(guī)劃(2026-2030)
- 生物多樣性保護(hù)與利用專項(xiàng)債項(xiàng)目可行性研究報(bào)告
- 吊橋浮橋安全管理制度
- T/CCSAS 023-2022危險(xiǎn)化學(xué)品企業(yè)緊急切斷閥設(shè)置和使用規(guī)范
- 員工簽署自愿離職協(xié)議書
- 婦科護(hù)理小創(chuàng)新
評論
0/150
提交評論