版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
評定等級(jí)操作系統(tǒng)課程設(shè)計(jì)文件系統(tǒng)管理學(xué)院計(jì)算機(jī)學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)姓名學(xué)號(hào)2013年1月8日廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院制文件系統(tǒng)管理一、實(shí)驗(yàn)?zāi)康哪M文件系統(tǒng)的實(shí)現(xiàn)的基本功能,了解文件系統(tǒng)的基本結(jié)構(gòu)和文件系統(tǒng)的管理方法看,加深了解文件系統(tǒng)的內(nèi)部功能的實(shí)現(xiàn)。通過高級(jí)語言編寫和實(shí)現(xiàn)一個(gè)簡單的文件系統(tǒng),模擬文件管理的工作過程,從而對各種文件操作系統(tǒng)命令的實(shí)質(zhì)內(nèi)容和執(zhí)行過程有比較深入的了解。二、實(shí)驗(yàn)內(nèi)容和要求編程模擬一個(gè)簡單的文件系統(tǒng),實(shí)現(xiàn)文件系統(tǒng)的管理和控制功能。在用戶程序中通過使用文件系統(tǒng)提供的create,open,read,write,close,delete等文件命令,對文件進(jìn)行操作。以下報(bào)告主要包括:1.可行性分析2.需求分析3.概要設(shè)計(jì)4.詳細(xì)設(shè)計(jì)5.測試6.總結(jié)三、可行性分析1、技術(shù)可行性對于圖形編程還不了解,但是經(jīng)過本學(xué)期的三次實(shí)驗(yàn)的練習(xí),可以設(shè)計(jì)好命令操作界面。利用大二期間學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)可以模擬出此課程設(shè)計(jì)的要求。2、經(jīng)濟(jì)可行性課程設(shè)計(jì)作為本課程的練習(xí)及進(jìn)一步加深理解。與經(jīng)濟(jì)無關(guān),可以不考慮。(零花費(fèi),零收益)3.法律可行性自己編寫的程序,僅為練習(xí),不作其他用途,與外界沒什么聯(lián)系,可行。四、需求分析編寫程序?qū)崿F(xiàn)文件系統(tǒng),主要有以下幾點(diǎn)要求:1、實(shí)現(xiàn)無窮級(jí)目錄管理及文件管理基本操作2、實(shí)現(xiàn)共享“別名”3、加快了文件檢索五、概要設(shè)計(jì)為了克服單級(jí)目錄所存在的缺點(diǎn),可以為每一位用戶建立一個(gè)單獨(dú)的用戶文件目錄UFD(UserFileDirectory)。這些文件目錄可以具有相似的結(jié)構(gòu),它由用戶所有文件的文件控制塊組成。此外,在系統(tǒng)中再建立一個(gè)主文件目錄MFD(MasterFileDirectory);在主文件目錄中,每個(gè)用戶目錄文件都占有一個(gè)目錄項(xiàng),其目錄項(xiàng)中包括用戶名和指向該用戶目錄的指針。本設(shè)計(jì)主要實(shí)現(xiàn)下面幾個(gè)數(shù)據(jù)結(jié)構(gòu):MDF用戶名文件目錄指針用戶名文件目錄指針UFD文件名保護(hù)碼文件長度文件名···AFD打開文件名打開保護(hù)碼讀寫指針總體的流程圖如下:六、詳細(xì)設(shè)計(jì)主要數(shù)據(jù)結(jié)構(gòu):(MasterFileDirectory),主要用以存放用戶,可以增加存放密碼的字符數(shù)組,本設(shè)計(jì)沒有保密安全方面的憂慮,為了使用時(shí)操作更簡單省去密碼。所以,MFD結(jié)構(gòu)僅包括用戶名和指向子目錄的一個(gè)指針,以及指向下一用戶的連接點(diǎn),為線性結(jié)構(gòu)。structMFD{charname[20];UFD(UserFileDirectory),用于存放文件的數(shù)據(jù)結(jié)構(gòu)。由于本設(shè)計(jì)為了加快檢索速度,使用了二叉排序樹的結(jié)構(gòu),所以UFD結(jié)構(gòu)中相應(yīng)加入了用于樹結(jié)構(gòu)的parent,leftchild,和rightchild記錄鏈接情況。當(dāng)本文件為普通文件時(shí),為下級(jí)記錄申請AFD(file),folder為空。同樣,當(dāng)本文件為文件夾時(shí),為它申請相應(yīng)的空間,AFD為空。以此來達(dá)到無窮級(jí)別目錄的存儲(chǔ)。structUFD{UFD*parent;UFD*leftchild;UFD*rightchild;UFD*folder;");printf("\n");temp=temp->link;}}voidBSTtraverse(UFD*fileBST)以區(qū)分文件夾printf("..\t");elseprintf("\t");if(fileBST->leftchild!=NULL)創(chuàng)建文件\n");printf("2.創(chuàng)建文件夾\n");printf("3.取消\n");printf("請選擇:\n");scanf("%c",&s);fflush(stdin);if(s=='3')return;if(s!='1'&&s!='2')printf("輸入錯(cuò)誤,請重新輸入!\n");}while(s!='1'&&s!='2'); if(strcmp(fileBST->name,"NULL")==0)追加\n");printf("2.重寫\n");printf("3.取消\n");printf("請選擇:\n");scanf("%c",&s);fflush(stdin);if(s=='3')return;if(s!='1'&&s!='2')printf("輸入錯(cuò)誤,請重新輸入!\n");}while(s!='1'&&s!='2');printf("請輸入要重寫或追加的內(nèi)容(<100):");scanf("%s",newfile);fflush(stdin);if(s=='1')\t");stemp=stemp->link;}printf("\n是否嘗試在共享文件夾中打開(y/n):");do{s=getchar();if(s=='n'||s=='N')returnNULL;elseif(s=='y'||s=='Y')break;elseprintf("輸入錯(cuò)誤,請重新輸入:");}while(s!='y'&&s!='n'&&s!='Y'&&s!='N');stemp=share_file;while(stemp!=NULL){if(strcmp(stemp->file->name,name)==0){temp=stemp->file;break;}stemp=stemp->link;}returntemp;}UFD*operations(UFD*fileBST){while(1){chars; system("cls");if(open_file!=NULL){printf("已打開文件,請及時(shí)關(guān)閉!\n");printf("文件名\t文件長度\t讀寫\t共享\t內(nèi)容");printf("\n");print_open_file(); printf("\n");}printf("當(dāng)前路徑:");print_path(fileBST); printf("\n");if(strcmp(fileBST->name,"NULL")==0)printf("本層文件為空!\n");else{printf("本文件夾包含以下文件:\n");BSTtraverse(fileBST);}printf("\n");printf("1.創(chuàng)建文件create\n");printf("2.刪除文件delete\n");printf("3.打開文件open\n");printf("4.關(guān)閉文件close\n");printf("5.讀文件read\n");printf("6.寫文件write\n");printf("0.返回上一層/注銷\n\n");printf("請選擇:");printf("");scanf("%c",&s);fflush(stdin);switch(s){case'1':fcreate(fileBST);break;case'2':fileBST=fdelete(fileBST);break;case'3':fopen(fileBST);break;case'4':fclose();break;case'5':case'6':fread_write(fileBST,s);break;case'0':returnfileBST;default:break;}}}voidLog_in(){MFD*temp=NULL;charname[30];charflag='0';if(mfd_link==NULL){printf("目前還沒有創(chuàng)建用戶,請創(chuàng)建后再登陸!");getch();return;}do{printf("請輸入用戶名:");scanf("%s",name);fflush(stdin);if(strcmp(name,"cancel")==0)return;登錄\n");printf("2.添加新用戶\n");printf("3.查看已注冊用戶\n");printf("0.退出\n\n");printf("請選擇:");printf("");scanf("%c",&s);fflush(stdin);if(s!='0'&&s!='1'&&s!='2'&&s!='3'){ printf("輸入錯(cuò)誤,請重新輸入:");getch();fflush(stdin);continue;}switch(s){case'1':Log_in();break;case'2':Init_user();break;case'3':Check_user();break;case'0':return1;default:break;}}return0;}七、測試登錄操作:以下為對文件的六個(gè)基本操作:無窮級(jí)文件、文件路徑的顯示,以及打開一個(gè)不存在的文件的示例:打開普通文件后的情況,此時(shí)不能刪除文件:本系統(tǒng)未能實(shí)現(xiàn)級(jí)聯(lián)刪除,操作被禁止:關(guān)閉文件后刪除操作成功:逐個(gè)刪除后“文件系統(tǒng)”文件夾也可以刪除了:八、總結(jié)本次課程設(shè)計(jì)設(shè)計(jì)的知識(shí)比較廣,需要較好的理解能力和編程能力。在本次設(shè)計(jì)中,花費(fèi)時(shí)間比較多的應(yīng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年林業(yè)科技創(chuàng)新項(xiàng)目樹苗采購合同3篇
- 2025年個(gè)人房產(chǎn)買賣合同標(biāo)準(zhǔn)文本下載7篇
- 二零二五年度智慧城市建設(shè)名義合伙人合同4篇
- 2025年度旅游度假村經(jīng)營管理合同范本4篇
- 2025年度跨境投資委托理財(cái)合同范文集錄3篇
- 2025年度智能家居個(gè)人精裝修房屋租賃合同(長期居住舒適保障)4篇
- 2025年度定制門窗安裝與品牌授權(quán)合作協(xié)議4篇
- 二零二五版美發(fā)店合伙人經(jīng)營目標(biāo)與業(yè)績考核合同4篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫及完整答案(典優(yōu))
- 建筑材料采購合作協(xié)議書(2篇)
- 12123交管學(xué)法減分考試題及答案
- 2025年寒假實(shí)踐特色作業(yè)設(shè)計(jì)模板
- 《數(shù)據(jù)采集技術(shù)》課件-XPath 解析庫
- 財(cái)務(wù)報(bào)銷流程培訓(xùn)課程
- 24年追覓在線測評28題及答案
- 春節(jié)慰問困難職工方案春節(jié)慰問困難職工活動(dòng)
- 2024年全國職業(yè)院校技能大賽高職組(藥學(xué)技能賽項(xiàng))考試題庫(含答案)
- 2024至2030年中國氫氧化鈣行業(yè)市場全景調(diào)查及發(fā)展趨勢分析報(bào)告
- 魚菜共生課件
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 初中物理八年級(jí)下冊《動(dòng)能和勢能》教學(xué)課件
評論
0/150
提交評論