版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中北大學(xué)操作系統(tǒng)課程設(shè)計(jì)說 明 書學(xué) 院、系:軟件學(xué)院專 業(yè):軟件工程學(xué) 生 姓 名:學(xué) 號:設(shè) 計(jì) 題 目:基于linux的模擬文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 起 迄 日 期:2013年11月22日- 2013年12月6日指 導(dǎo) 教 師:2013 年 12月 6 日1.需求分析(1)設(shè)計(jì)目的:文件管理是操作系統(tǒng)的重要功能之一。用高級語言編寫和調(diào)試一個(gè)簡單的文件系統(tǒng),模擬文件管理的工作過程。從而加深學(xué)生對文件系統(tǒng)內(nèi)部功能和內(nèi)部實(shí)現(xiàn)的理解和認(rèn)識。(2)基本功能:主要包括:改變目錄(cd),創(chuàng)建目錄(md),顯示目錄(dir),刪除目錄(rd),打開全部文件(openall),打開單個(gè)文件(open),建立
2、一個(gè)文件(create),刪除一個(gè)文件(delete),寫文件(write),讀文件(read),改文件的保護(hù)碼(change),退出(exit)等。(3)設(shè)計(jì)要求:設(shè)計(jì)一個(gè)10個(gè)用戶的文件系統(tǒng)。每個(gè)用戶最多可以保存10個(gè)文件,一次運(yùn)行用戶可打開多個(gè)文件。程序采用二級文件目錄。(即設(shè)置主目錄(mfd)和用戶文件目錄(ufd)。另外,可打開文件設(shè)置指針。為了方便實(shí)現(xiàn),對文件的讀寫作了簡化。在執(zhí)行讀寫命令時(shí),只需改讀寫指針。并不進(jìn)行實(shí)際的讀寫操作。2.總體設(shè)計(jì) 2.1數(shù)據(jù)結(jié)構(gòu)struck file char name10; int code;/保護(hù)碼 int size; char pwrite;/
3、讀寫指針 ; struct user char name10; struct file *list;/目錄指針 ; 2.2主要函數(shù)聲明void running(); void delet(); void write(); void open(); void close(); void bye(); void read(); void create(); void input(); 2.3模塊結(jié)構(gòu)圖 3.詳細(xì)設(shè)計(jì)3.1 模塊及功能說明3.1.1 input()模塊功能:進(jìn)入文件系統(tǒng)。3.1.2 running()模塊功能:選擇相應(yīng)的操作。3.1.3 bye()模塊功能:退出文件系統(tǒng)函數(shù)bye()
4、。3.1.4 create()模塊功能:創(chuàng)建文件。3.1.5 open()模塊功能:打開文件。3.1.6 close()模塊功能:關(guān)閉文件。3.1.7 write()模塊功能:寫文件(需要先打開文件)。3.1.8 read()模塊功能:讀文件(需要先打開文件)。3.1.9 delet()模塊功能:刪除文件。3.2 模塊代碼3.2.1 main()模塊int main() input(); running(); return 0; 3.2.2 input()模塊void input() char name; int i; printf(n*n); printf( please choose th
5、e following username(input digital):n); printf(1.one 2.two 3.three 4.four 5.fine 6.six 7.seven 8.eigh 9.nine 0.ten n); printf(*nn); printf(please input username:); scanf(%s,&name); switch(name) case 1: for(i=0;i10;i+)ufdi=onei;mfd0=use1;running();break; case 2: for(i=0;i10;i+)ufdi=twoi;mfd0=use1;run
6、ning();break; case 3: for(i=0;i10;i+)ufdi=threei;mfd0=use2;running();break; case 4: for(i=0;i10;i+)ufdi=fouri;mfd0=use3;running();break; case 5: for(i=0;i10;i+)ufdi=finei;mfd0=use4;running();break; case 6: for(i=0;i10;i+)ufdi=sixi;mfd0=use5;running();break; case 7: for(i=0;i10;i+)ufdi=seveni;mfd0=us
7、e6;running();break; case 8: for(i=0;i10;i+)ufdi=eighti;mfd0=use7;running();break; case 9: for(i=0;i10;i+)ufdi=ninei;mfd0=use8;running();break; case 0: for(i=0;i10;i+)ufdi=teni;mfd0=use9;running();break; default : printf(enter the user name wrong!n); input(); 3.2.3 running()模塊void running() char orde
8、r; int i; printf(n*n); printf(the user all the files below:n); for(i=0;i10;i+) printf(%s,ufd); printf(t); printf(n*n); printf( choose option(input code):n); printf(c-create d-delete o-open s-close r-read w-write b-bye t.exit(re-election user)n); printf(n*n); printf(input command:n); scanf(%s,&
9、order); switch(order) case c : create();break; case d : delet();break; case o : open();break; case s : close();break; case r : read();break; case w : write();break; case b : bye();break; case t : input();break; default : printf(input error!nn); running(); 4.心得體會操作系統(tǒng)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)中的一門重要基礎(chǔ)課,目的是讓我們了解操作系統(tǒng)的
10、基本概念,理解計(jì)算機(jī)系統(tǒng)的資源如何組織,操作系統(tǒng)如何有效地管理這些系統(tǒng)資源,用戶如何通過操作系統(tǒng)與計(jì)算機(jī)系統(tǒng)打交道。通過課程設(shè)計(jì),可以進(jìn)一步理解在計(jì)算機(jī)系統(tǒng)上運(yùn)行的其它各類操作系統(tǒng),并懂得在操作系統(tǒng)的支持下建立自己的應(yīng)用系統(tǒng)。操作系統(tǒng)課程設(shè)計(jì),對于訓(xùn)練我們掌握程序設(shè)計(jì)、熟悉上機(jī)操作和程序調(diào)試技術(shù)都有重要作用。重點(diǎn)培養(yǎng)我們的思維能力、創(chuàng)新能力和排錯能力。通過課程設(shè)計(jì),進(jìn)一步融會貫通教材內(nèi)容,掌握程序各功能模塊的工作原理,相互聯(lián)系和來龍去脈,完整地建立系統(tǒng)的概念。激發(fā)我的學(xué)習(xí)熱情和主動性,培養(yǎng)我的獨(dú)立工作能力,在實(shí)踐活動中,將所學(xué)知識綜合運(yùn)用,增長才干,并積累經(jīng)驗(yàn)。對編程語言又有了更深一層次的認(rèn)識
11、,并對編程能力有所加強(qiáng),但還是很多的不足有待改進(jìn),對于編程來說還需要大量的實(shí)踐,才能在發(fā)現(xiàn)問題和解決問題中前進(jìn)與提高。5.附錄:源代碼#include #include #include #define null 0 int count=0; struct file char name10; int code; int size; char pwrite; ; struct user char name10; struct file *list; ; struct file one10=a1,0,10,0,a2,2,10,0,a3,1,10,0, a4,2,10,0,a5,2,10,0,a6,
12、2,10,0,a7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file two10=b1,0,10,0,b2,2,10,0,b3,1,10,0, b4,2,10,0,b5,2,10,0,b6,2,10,0,b7,2,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file three10=c1,0,10,0,c2,2,10,0,c3,1,10,0, c4,2,10,0,c5,2,10,0,c6,2,10,0,c7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file four10=d1,0,1
13、0,0,d2,2,10,0,d3,1,10,0, d4,2,10,0,d5,2,10,0,d6,2,10,0,d7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file fine10=e1,0,10,0,e2,2,10,0,e3,1,10,0, e4,2,10,0,e5,2,10,0,e6,2,10,0,e7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file six10=f1,0,10,0,f2,2,10,0,f3,1,10,0, f4,2,10,0,f5,2,10,0,f6,2,10,0,f7,1,10,0,0,0,
14、0,0, 0,0,0,0,0,0,0,0; struct file seven10=g1,0,10,0,g2,2,10,0,g3,1,10,0, g4,2,10,0,g5,2,10,0,g6,2,10,0,g7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file eight10=h1,0,10,0,h2,2,10,0,h3,1,10,0, h4,2,10,0,h5,2,10,0,h6,2,10,0,h7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file nine10=j1,0,10,0,j2,2,10,0,j3,1,
15、10,0, j4,2,10,0,j5,2,10,0,j6,2,10,0,j7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file ten10=k1,0,10,0,k2,2,10,0,k3,1,10,0, k4,2,10,0,k5,2,10,0,k6,2,10,0,k7,1,10,0,0,0,0,0, 0,0,0,0,0,0,0,0; struct file ufd10; struct file afd5=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; struct user use10=number1,one,number
16、2,two,number3,three,number4,four, number5,fine,number6,six,number7,seven,number8,eight,number9,nine, number10,ten; struct user mfd1=0,0; void running(); void delet(); void write(); void open(); void close(); void bye(); void read(); void create(); void input(); int main() input(); running(); return
17、0; void running() char order; int i; printf(n*n); printf(the user all the files below:n); for(i=0;i10;i+) printf(%s,ufd); printf(t); printf(n*n); printf( choose option: n); printf(c-create d-delete o-open s-close r-read w-write b-bye t.exit n); printf(n*n); printf(input command:n); scanf(%s,&o
18、rder); switch(order) case c : create();break; case d : delet();break; case o : open();break; case s : close();break; case r : read();break; case w : write();break; case b : bye();break; case t : input();break; default : printf(input error!nn);running(); void delet() char name10; int i,flag; do print
19、f(input file name: nn); scanf(%s,&name); flag=0; for(i=0;i10;i+) if(strcmp(ufd,name) flag=1; else flag=0; strcpy(ufd,0); ufdi.code=0; ufdi.pwrite=0; ufdi.size=0; printf(delete success!n); break; if(flag=1) printf(without this file,please enter again!n); while(flag=1); printf(n); running(
20、); void open() char name10; int i,j,flag; if(count=5) printf(run queue is full!n); running(); else do printf(input file name:n); scanf(%s,&name); flag=0; for(i=0;i10;i+) if(strcmp(ufd,name) flag=1; else flag=0; break; if(flag=1) printf(without this file,please enter again!n); while(flag=1); fo
21、r(j=0;j5;j+) if(strcmp(afd,name) flag=1; else flag=0; break; if(flag=1) for(j=0;j5;j+) if(!strcmp(afd,0) afdj=ufdi; printf(the file has been opend!n); count+; break; else printf(the file has been opended in the queue!nn); running(); void close() char name10; int j,flag; printf(input file
22、 name: n); scanf(%s,&name); flag=0; for(j=0;j5;j+) if(strcmp(afd,name) flag=1; else flag=0; strcpy(afd,0); afdj.code=0; afdj.pwrite=0; afdj.size=0; printf(the file has been closed in the run queue!n); break; if(flag=1) printf(run queue without the open file ,please operate again!nn); run
23、ning(); void bye() int i,j; for(i=0;i5;i+) for(j=0;j10;j+) if(!strcmp(afd,ufd) ufdi=afdi; break; printf(the saved file directory!n); printf(end of the operation!n); exit(0); void read() char name10; int j,flag=0; printf(input file name: n); scanf(%s,&name); for(j=0;j5;j+) if(!strcmp(afdj
24、.name,name) flag=1; break; if(flag=1) if(afdj.code=0|afdj.code=2) afdj.pwrite=r; printf(the state of the files are read!n); else printf(no permission to write this file!n); else printf(run queue without this file,please open the file first!n); printf(n); running(); void write() char name10; int j,fl
25、ag=0; printf(input file name: n); scanf(%s,&name); for(j=0;j5;j+) if(!strcmp(afd,name) flag=1; break; if(flag=1) if(afdj.code=1|afdj.code=2) afdj.pwrite=w; printf(the state of the files are write!n); else printf(no permission to write this file!n); else printf(run queue without this file,pleas
26、e open the file first!n); printf(n); running(); void create() char name10; int i,j=0,flag; for(i=0;i9) printf(the folder is full,please delete!n); running(); else do printf(input file name; n); scanf(%s,&name); flag=0; for(i=0;i10;i+) if(!strcmp(ufd,name) printf(file name duplication,please en
27、ter again!n); flag=1; break; while(flag=1); for(i=0;i10;i+) if(!strcmp(ufd,0) strcpy(ufd,name); do printf(please enter the protected codechoose0-2,0-read 1-write 2-read or write:n); scanf(%d,&ufdi.code); if(ufdi.code!=0&ufdi.code!=1&ufdi.code!=2) printf(input error,input protection code again!n); while(ufdi.code!=0&ufdi.code!=1&ufdi.code!=2); printf(please enter the file sizechoose the digital:n); scanf(%d,&ufdi.size); printf(the file has been established!); printf(%s,ufd); printf(n); break; r
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 松鼠微課程設(shè)計(jì)
- 百貨商品剪輯課程設(shè)計(jì)
- 電廠課程設(shè)計(jì)報(bào)告模板
- 混凝土2課程設(shè)計(jì)
- 2024事業(yè)單位勞動合同制員工福利計(jì)劃與員工持股合同3篇
- 2024年新型集裝箱房屋購銷合同樣本版B版
- 電能質(zhì)量檢測課程設(shè)計(jì)
- 2024年水鉆工程合同履行監(jiān)管協(xié)議
- 畫畫活動送課程設(shè)計(jì)
- 2024年汽車融資租賃合同稅務(wù)處理范本3篇
- 水利工程承包人常用的表格(51個(gè))
- 專題01:基礎(chǔ)知識綜合(解析版)-2022-2023學(xué)年七年級語文下學(xué)期期中專題復(fù)習(xí)(江蘇專用)
- 日結(jié)工協(xié)議書日結(jié)工用工協(xié)議
- 行政管理能力提升培訓(xùn)
- 全新聘用項(xiàng)目經(jīng)理勞務(wù)協(xié)議
- 浙江省金華市東陽市 2024 年初中學(xué)業(yè)水平考試模擬試卷 科學(xué)試題
- 【人教版】九年級化學(xué)上冊期末試卷(匯編)
- 中國歷史地理智慧樹知到期末考試答案章節(jié)答案2024年泰山學(xué)院
- 2023年檢驗(yàn)檢測機(jī)構(gòu)質(zhì)量手冊(依據(jù)2023年版評審準(zhǔn)則編制)
- 2023年玻璃廠年終工作總結(jié)
- 專題06 習(xí)作-2023-2024學(xué)年統(tǒng)部編版語文六年級上冊期末備考真題分類匯編
評論
0/150
提交評論