版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
評定等級操作系統(tǒng)課程設(shè)計文件系統(tǒng)管理學(xué)院計算機(jī)學(xué)院專業(yè)計算機(jī)科學(xué)與技術(shù)班級姓名學(xué)號2013年1月8日廣東工業(yè)大學(xué)計算機(jī)學(xué)院制文件系統(tǒng)管理一、實驗?zāi)康哪M文件系統(tǒng)的實現(xiàn)的基本功能,了解文件系統(tǒng)的基本結(jié)構(gòu)和文件系統(tǒng)的管理方法看,加深了解文件系統(tǒng)的內(nèi)部功能的實現(xiàn)。通過高級語言編寫和實現(xiàn)一個簡單的文件系統(tǒng),模擬文件管理的工作過程,從而對各種文件操作系統(tǒng)命令的實質(zhì)內(nèi)容和執(zhí)行過程有比較深入的了解。二、實驗內(nèi)容和要求編程模擬一個簡單的文件系統(tǒng),實現(xiàn)文件系統(tǒng)的管理和控制功能。在用戶程序中通過使用文件系統(tǒng)提供的create,open,read,write,close,delete等文件命令,對文件進(jìn)行操作。以下報告主要包括:1.可行性分析2.需求分析3.概要設(shè)計4.詳細(xì)設(shè)計5.測試6.總結(jié)三、可行性分析1、技術(shù)可行性對于圖形編程還不了解,但是經(jīng)過本學(xué)期的三次實驗的練習(xí),可以設(shè)計好命令操作界面。利用大二期間學(xué)習(xí)的數(shù)據(jù)結(jié)構(gòu)可以模擬出此課程設(shè)計的要求。2、經(jīng)濟(jì)可行性課程設(shè)計作為本課程的練習(xí)及進(jìn)一步加深理解。與經(jīng)濟(jì)無關(guān),可以不考慮。(零花費,零收益)3.法律可行性自己編寫的程序,僅為練習(xí),不作其他用途,與外界沒什么聯(lián)系,可行。四、需求分析編寫程序?qū)崿F(xiàn)文件系統(tǒng),主要有以下幾點要求:1、實現(xiàn)無窮級目錄管理及文件管理基本操作2、實現(xiàn)共享“別名”3、加快了文件檢索五、概要設(shè)計為了克服單級目錄所存在的缺點,可以為每一位用戶建立一個單獨的用戶文件目錄UFD(UserFileDirectory)。這些文件目錄可以具有相似的結(jié)構(gòu),它由用戶所有文件的文件控制塊組成。此外,在系統(tǒng)中再建立一個主文件目錄MFD(MasterFileDirectory);在主文件目錄中,每個用戶目錄文件都占有一個目錄項,其目錄項中包括用戶名和指向該用戶目錄的指針。本設(shè)計主要實現(xiàn)下面幾個數(shù)據(jù)結(jié)構(gòu):MDF用戶名文件目錄指針用戶名文件目錄指針UFD文件名保護(hù)碼文件長度文件名···AFD打開文件名打開保護(hù)碼讀寫指針總體的流程圖如下:六、詳細(xì)設(shè)計主要數(shù)據(jù)結(jié)構(gòu):(MasterFileDirectory),主要用以存放用戶,可以增加存放密碼的字符數(shù)組,本設(shè)計沒有保密安全方面的憂慮,為了使用時操作更簡單省去密碼。所以,MFD結(jié)構(gòu)僅包括用戶名和指向子目錄的一個指針,以及指向下一用戶的連接點,為線性結(jié)構(gòu)。structMFD{charname[20];UFD(UserFileDirectory),用于存放文件的數(shù)據(jù)結(jié)構(gòu)。由于本設(shè)計為了加快檢索速度,使用了二叉排序樹的結(jié)構(gòu),所以UFD結(jié)構(gòu)中相應(yīng)加入了用于樹結(jié)構(gòu)的parent,leftchild,和rightchild記錄鏈接情況。當(dāng)本文件為普通文件時,為下級記錄申請AFD(file),folder為空。同樣,當(dāng)本文件為文件夾時,為它申請相應(yīng)的空間,AFD為空。以此來達(dá)到無窮級別目錄的存儲。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("輸入錯誤,請重新輸入!\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("輸入錯誤,請重新輸入!\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("輸入錯誤,請重新輸入:");}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("已打開文件,請及時關(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("輸入錯誤,請重新輸入:");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;}七、測試登錄操作:以下為對文件的六個基本操作:無窮級文件、文件路徑的顯示,以及打開一個不存在的文件的示例:打開普通文件后的情況,此時不能刪除文件:本系統(tǒng)未能實現(xiàn)級聯(lián)刪除,操作被禁止:關(guān)閉文件后刪除操作成功:逐個刪除后“文件系統(tǒng)”文件夾也可以刪除了:八、總結(jié)本次課程設(shè)計設(shè)計的知識比較廣,需要較好的理解能力和編程能力。在本次設(shè)計中,花費時間比較多的應(yīng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級語文上冊 課文5 16《朱德的扁擔(dān)》教案 新人教版
- 2024秋四年級語文上冊 第四單元 12 盤古開天地教案 新人教版
- 2024乙方為甲方提供品牌戰(zhàn)略咨詢的合同
- 2024基于區(qū)塊鏈的個人信息安全保護(hù)合同
- 2024年企業(yè)股權(quán)轉(zhuǎn)讓合同
- 2024年工程價款結(jié)算與付款合同
- 2024奶粉行業(yè)工會與企業(yè)管理層溝通機(jī)制合同
- 2024年農(nóng)產(chǎn)品銷售合同模板 create online
- 2024年商務(wù)咨詢合同:咨詢公司與客戶之間的咨詢服務(wù)與費用約定
- 2024年地鐵沿線餐飲商鋪租賃協(xié)議
- 2024年【汽車駕駛員(技師)】證模擬考試及答案
- 大學(xué)生心理健康教育智慧樹知到期末考試答案章節(jié)答案2024年魯東大學(xué)
- 瑜伽脊柱扭轉(zhuǎn)課程設(shè)計
- 生物技術(shù)研究合伙協(xié)議
- 室外燃?xì)夤艿腊惭b施工方案
- 小學(xué)生個人行為習(xí)慣自我管理、監(jiān)督考核評分表
- 醫(yī)院醫(yī)療科研設(shè)備租賃協(xié)議
- 《陸上風(fēng)電場工程概算定額》NBT 31010-2019
- 變電運維(技師)技能鑒定理論考試題庫及答案
- 2023 版《中國近現(xiàn)代史綱要》 課后習(xí)題答案
- 世界紅十字日紅十字應(yīng)急救護(hù)
評論
0/150
提交評論