(精選word)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)_第1頁(yè)
(精選word)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)_第2頁(yè)
(精選word)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)_第3頁(yè)
(精選word)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)_第4頁(yè)
(精選word)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、(完整word版)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)(完整word版)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)PAGE8(完整word版)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)操作系統(tǒng)二級(jí)文件管理課程設(shè)計(jì)課程設(shè)計(jì)名稱: 二級(jí)文件管理系統(tǒng) 專 業(yè) 班 級(jí) : 軟件工程計(jì)083-1 學(xué) 生 姓 名 : 李曉斌 學(xué) 號(hào) : 103 指 導(dǎo) 教 師 : 任滿杰 設(shè)計(jì)目的:通過(guò)具體的文件存儲(chǔ)空間的管理、文件的物理結(jié)構(gòu)、目錄結(jié)構(gòu)和文件操作的實(shí)現(xiàn),加深對(duì)文件系統(tǒng)內(nèi)部功能和實(shí)現(xiàn)過(guò)程的理解。設(shè)計(jì)內(nèi)容:為L(zhǎng)inux系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單二級(jí)文件管理系統(tǒng) 一、實(shí)驗(yàn)內(nèi)容描述1 實(shí)驗(yàn)?zāi)繕?biāo)本實(shí)驗(yàn)的目的是通過(guò)一個(gè)簡(jiǎn)單多用戶文件系統(tǒng)的設(shè)計(jì),加深理解文件系統(tǒng)的

2、內(nèi)部功能及內(nèi)部實(shí)現(xiàn).2 實(shí)驗(yàn)要求為linux系統(tǒng)設(shè)計(jì)一個(gè)簡(jiǎn)單的二級(jí)文件系統(tǒng).要求做到以下幾點(diǎn):可以實(shí)現(xiàn)下列命令:login 用戶登錄dir 列文件目錄create 創(chuàng)建文件delete 刪除文件open 打開(kāi)文件close 關(guān)閉文件read 讀文件write 寫(xiě)文件列目錄時(shí)要列出文件名、物理地址、保護(hù)碼和文件長(zhǎng)度.源文件可以進(jìn)行讀寫(xiě)保護(hù).程序設(shè)計(jì)(1) 設(shè)計(jì)思想 本文件系統(tǒng)采用兩級(jí)目錄,其中第一級(jí)對(duì)應(yīng)于用戶賬號(hào),第二級(jí)對(duì)應(yīng)于用戶賬號(hào)下的文件。另外,為了簡(jiǎn)便文件系統(tǒng)未考慮文件共享,文件系統(tǒng)安全以及管理文件與設(shè)備文件等特殊內(nèi)容。(2) 主要數(shù)據(jù)結(jié)構(gòu)A 磁盤(pán)塊結(jié)構(gòu)體:typedef struct d

3、istTable int maxlength; int start; int useFlag; distTable *next; diskNode; diskNode *diskHead; B 文件塊結(jié)構(gòu)體:struct fileTable serName,userName) printf(n); printf(該用戶名已存在,創(chuàng)建用戶失敗n); system(pause); return; strcpy(userTableused.userName,userName); printf(n); printf(請(qǐng)輸入密碼:); for(i=0;c=getch();i+) if(c=13) bre

4、ak; else userTableused.passwordi=c; printf(*); userTableuserID.passwordi=0; printf(n); printf(創(chuàng)建用戶成功n); used+; system(pause); else printf(創(chuàng)建用戶失敗,用戶已達(dá)到上限n); system(pause); fflush(stdin); serName,name) break; if(i=used) printf(n您輸入的用戶名不存在n); system(pause); return -1; for(times=0;timesnext;p!=NULL;p=p-

5、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) userTableuserID.user-next=fileNode; else p=userTableuserID.user-next; while(

6、p-next) p=p-next; p-next=fileNode; printf(創(chuàng)建文件成功n); system(pause); else printf(磁盤(pán)空間已滿或所創(chuàng)建文件超出磁盤(pán)空閑容量,磁盤(pán)空間分配失敗n); system(pause); void freeDisk(int startPostion) diskNode *p; for(p=diskHead;p!=NULL;p=p-next) if(p-start=startPostion) break; p-useFlag=false; void fileDel(char fileName) UFD *p,*q,*temp; q

7、=userTableuserID.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;

8、 int i,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) serName,userName) k=i;break; if(i=MaxUser) printf(沒(méi)有找到該用戶,請(qǐng)檢查輸入用戶名是否正確n); system(pause); return; else p=userTablek.user-next; printf(*n); printf(文件名 文件長(zhǎng)度 文件在磁盤(pán)的起始地址 文件類型

9、創(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); void diskShow() ser; for(p=q-next;p!=NULL;p=p-next) if(!strcmp(p-file-fileName,fileName) break; if(p) p-file-openFlag=false; printf

10、(%s文件已關(guān)閉n,p-file-fileName); system(pause); else printf(沒(méi)有找到該文件,請(qǐng)檢查輸入的文件名是否正確n); system(pause); 心得體會(huì)在設(shè)計(jì)程序之前,我先花費(fèi)了一天多的時(shí)間思考設(shè)計(jì)該程序的思路,熟悉了一下學(xué)過(guò)的課本,把以前忘了的東西又熟悉了一下,然后就通過(guò)操作系統(tǒng)要求開(kāi)始設(shè)計(jì)程序了,我采用了一個(gè)模塊一測(cè)試,成功之后在寫(xiě)另一個(gè)模塊,剛開(kāi)始創(chuàng)建文件,顯示你創(chuàng)建成功了,可是卻在指定路徑中沒(méi)有該文件,只有一個(gè)二級(jí)文件目錄,經(jīng)過(guò)我認(rèn)真的查看,發(fā)現(xiàn)我用的函數(shù)是創(chuàng)建目錄的,而非創(chuàng)建文件。 隨后我就選擇了給他指定一個(gè)二級(jí)文件目錄,在該目錄中創(chuàng)建文

11、件,終于測(cè)試成功了,接著我有創(chuàng)建了刪除文件函數(shù),打開(kāi)文件函數(shù),關(guān)閉文件函數(shù),如文件函數(shù),寫(xiě)文件函數(shù),雖然也遇到了好多問(wèn)題,我通過(guò)測(cè)試,查資料,細(xì)心的修改和調(diào)試后,最后還是一個(gè)模塊一個(gè)模塊的成功完成了,但是沒(méi)法實(shí)現(xiàn)讀寫(xiě)保護(hù),而且整體測(cè)試時(shí)也出現(xiàn)了一些邏輯問(wèn)題,例如:對(duì)于創(chuàng)建的只讀文件,只寫(xiě)文件,可讀可寫(xiě)文件均可以進(jìn)行讀寫(xiě),這不符合邏輯,經(jīng)過(guò)我的認(rèn)真思考后,我把程序修改了一下,實(shí)現(xiàn)了在讀,寫(xiě)文件前,先打開(kāi)文件,而且對(duì)于只讀文件,只能讀取,不能寫(xiě)入,對(duì)于只寫(xiě)文件,只能寫(xiě)入不能讀取,對(duì)于可讀可寫(xiě)文件,既可以讀取,又可以寫(xiě)入等功能。對(duì)于讀寫(xiě)保護(hù),我試著用打開(kāi)文件來(lái)控制,當(dāng)讀文件時(shí),可以顯示打開(kāi)的文件列表,該文件列表中只有只讀文件和可讀可寫(xiě)文件,當(dāng)你從只寫(xiě)文件讀取時(shí),提示你這是只寫(xiě)文件,不能讀取。同理,在寫(xiě)文件時(shí),顯示的打開(kāi)的文件列表中只有只寫(xiě)文件和可讀可寫(xiě)文件,當(dāng)你對(duì)只讀文件寫(xiě)入內(nèi)容時(shí),提示你這是只讀文件,不能寫(xiě)入。這樣實(shí)現(xiàn)了文件的讀寫(xiě)保護(hù)。雖然本次課程設(shè)計(jì)的所做的程序規(guī)模不是很大,但在編程中我也充分體味到作為一名程序員,要有嚴(yán)密的邏輯思維能力的重要性,充分學(xué)好一些邏輯學(xué)科的重要性;一個(gè)沒(méi)有邏輯的程序,就不能完美地實(shí)現(xiàn)所要完成的功能, 因此,以后學(xué)習(xí)中一定

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論