




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、中北大學操作系統(tǒng)課程設計說明書學院、系:軟件學院專 業(yè):軟件工程學生姓名: 戴國鵬 學號: 1121011532設計題目: 基于Linux的模擬文件系統(tǒng)的設計與實現(xiàn)起迄日期:2013年11月22日-2013年12月6日指導教師:李玉蓉2013年12月6日1 .需求分析(1)設計目的:模擬文文件管理是操作系統(tǒng)的重要功能之一。用高級語言編寫和調試一個簡單的文件系統(tǒng), 件管理的工作過程。從而加深學生對文件系統(tǒng)內部功能和內部實現(xiàn)的理解和認識。(2)基本功能:主要包括:改變目錄(CD,創(chuàng)建目錄(MD,顯示目錄(DIR),刪除目錄(RD,打開全部 文件(openall ),打開單個文件(open),建立一
2、個文件(create ),刪除一個文件(delete ), 寫文件(write ),讀文件(read),改文件的保護碼(change),退出(exit )等。(3)設計要求:設計一個10個用戶的文件系統(tǒng)。每個用戶最多可以保存10個文件,一次運行用戶可打開多個文件。程序采用二級文件目錄。(即設置主目錄(MFD和用戶文件目錄(UFD)。另外,可打開文件設置指針。為了方便實現(xiàn),對文件的讀寫作了簡化。在執(zhí)行讀寫命令時,只需改讀寫指針。并不進行實際的讀寫操作。2 .總體設計2.1 數(shù)據(jù)結構struck filechar name10;int code;/保護碼int size;char pwrite;/
3、讀寫指針;struct userchar name10;struct file *list;目錄指針;2.2 主要函數(shù)聲明void running。;void delet();void write();void open();Word資料void close();void bye();void read();void create();void input();2.3模塊結構圖Main函數(shù)0巖鳥.一3 .詳細設計3.1 模塊及功能說明3.1.1 input() 模塊功能:進入文件系統(tǒng)。3.1.2 running。模塊功能:選擇相應的操作。3.1.3 bye()模塊功能:退出文件系統(tǒng)函數(shù) bye
4、()。3.1.4 create()模塊功能:創(chuàng)建文件。3.1.5 open()模塊功能:打開文件。3.1.6 close()模塊功能:關閉文件。3.1.7 write()模塊功能:寫文件(需要先打開文件)。3.1.8 read() 模塊功能:讀文件(需要先打開文件)。3.1.9 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");*(input digita
5、lprintf(" Please choose the following usernamen");printf("1.one 2.two 3.three 4.four 5.fine 6.six 7.seven 8.eigh9.nine 0.ten n");printf(”*nn");printf("Please input username:");scanf("%s",&name); switch(name) case'1':for(i=0;i<10;i+)UFDi=one
6、i;MFD0=use1;running();break; case'2':for(i=0;i<10;i+)UFDi=twoi;MFD0=use1;running();break; case'3':for(i=0;i<10;i+)UFDi=threei;MFD0=use2;running();break; case'4':for(i=0;i<10;i+)UFDi=fouri;MFD0=use3;running();break; case'5':for(i=0;i<10;i+)UFDi=finei;MFD0=u
7、se4;running();break; case'6':for(i=0;i<10;i+)UFDi=sixi;MFD0=use5;running();break; case'7':for(i=0;i<10;i+)UFDi=seveni;MFD0=use6;running();break; case'8':for(i=0;i<10;i+)UFDi=eighti;MFD0=use7;running();break; case'9':for(i=0;i<10;i+)UFDi=ninei;MFD0=use8;run
8、ning();break; case'0':for(i=0;i<10;i+)UFDi=teni;MFD0=use9;running();break; default : printf("Enter the user name wrong!n"); input(); 3.2.3 running。 模塊 void running。 char order;int i;printf("n*n");printf("The user all the files below: n");for(i=0;i<10;i+)pr
9、intf("%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 R Re-election user ) n");printf("n*n");printf("Input commandin');scanf("%s&
10、quot;,&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 : pri
11、ntf("Input error!nn");running。;4 .心得體會操作系統(tǒng)是計算機科學與技術專業(yè)中的一門重要基礎課,目的是讓我們了解操作系統(tǒng)的基本概念,理解計算機系統(tǒng)的資源如何組織,操作系統(tǒng)如何有效地管理這些系統(tǒng)資源,用戶如何通過操作系統(tǒng)與計算機系統(tǒng)打交道。通過課程設計,可以進一步理解在計算機系統(tǒng)上運行的其它各類操作系統(tǒng),并懂得在操作系統(tǒng)的支持下建立自己的應用系統(tǒng)。 操作系統(tǒng)課程設計, 對于訓練我們掌握程序設計、 熟 悉上機操作和程序調試技術都有重要作用。 重點培養(yǎng)我們的思維能力、創(chuàng)新能力和排錯能力。通過課程設計,進一步融會貫通教材內容,掌握程序各功能模塊的工作原
12、理,相互聯(lián)系和來龍去脈,完整地建立系統(tǒng)的概念。激發(fā)我的學習熱情和主動性,培養(yǎng)我的獨立工作能力, 在實踐活動中,將所學知識綜合運用,增長才干,并積累經(jīng)驗。對編程語言又有了更深一層次的認識,并對編程能力有所加強, 但還是很多的不足有待改進, 對于編程來說還需要大量 的實踐,才能在發(fā)現(xiàn)問題和解決問題中前進與提高。5 .附錄:源代碼#include <stdlib.h>#include <stdio.h>#include <string.h>#define NULL 0int count=0;struct filechar name10;int code;int s
13、ize;char pwrite;struct userchar name10;struct file *list;struct file one10="a1",0,10,0,"a2”210,0,"a3”,1,10,0,"a4",2,10,0,"a5”,2,10,0,"a6”,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
14、,0,"b2",2,10,0,"b3",1,10,0,"b4”210,0,"b5”210,0,"b6”210,0,"b7”210,0,"0",0,0,0, "0",0,0,0,"0",0,0,0;struct file three10="c1",0,10,0,"c2”210,0,"c3”,1,10,0, "c4",2,10,0,"c5",2,10,0,"c6"
15、;,2,10,0,"c7",1,10,0,"0",0,0,0, "0",0,0,0,"0",0,0,0;struct file four10="d1",0,10,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"
16、,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"
17、,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,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"210,0"g5"21
18、0,0"g6"210,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,
19、 "0",0,0,0,"0",0,0,0;struct file nine10="j1",0,10,0,"j2",2,10,0,"j3",1,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
20、",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;filestructAFD5="0",0,0,0,"0",0,0,0,"0",0,0,0,
21、"0",0,0,0,"0",0,0,0;userstruct use10="number1",one,"number2",two,"number3",three,"number4",four,"number5",fine,"number6",six,"number7",seven,"number8",eight,"number9",nine,"number10&quo
22、t;,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 0;void running() char order;int i;*n,);printf("The user all the files below:n");for(i=0;i<10;i+)pr
23、intf("%s",UFD);printf("t");printf("n*n");printf(printf("nChoose 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");*n");printf("Input command:n");scanf(&
24、quot;%s",&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;defaul
25、t :printf("Input error!nn");running();void delet() char name10;int i,flag;do printf("Input file name: nn");scanf("%s",&name);flag=0;for(i=0;i<10;i+) if(strcmp(UFD,name)flag=1;else flag=0;strcpy(UFD,"0");UFDi.code=0;UFDi.pwrite=0;UFDi.size=0;
26、printf("Delete success!n");break;Word資料if(flag=1)printf("Without this file,please enter again!n");while(flag=1);printf("n");running。;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&
27、quot;);scanf("%s",&name);flag=0;for(i=0;i<10;i+) if(strcmp(UFD,name)flag=1;else flag=0;break;Word資料if(flag=1)printf("Without this file,please enter again!n");while(flag=1);for(j=0;j<5;j+) if(strcmp(AFD,name)flag=1;else flag=0;break;if(flag=1)for(j=0;j<5;j
28、+) if(!strcmp(AFD,"0") AFDj=UFDi;printf("The file has been opend!n");count+;break;elseprintf("The file has been opended in the queue!nn");running。;void close() char name10;int j,flag;printf("Input file name: n");scanf("%s",&name);flag=0;for
29、(j=0;j<5;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)operateprintf("Runqueue without the open file ,pleaseagain!nn");running。;void
30、 bye() int i,j;for(i=0;i<5;i+) for(j=0;j<10;j+) if(!strcmp(AFD,UFD) UFDi=AFDi;break;printf("The saved file directory!n");printf("End of the operation。");exit(0);void read() char name10;int j,flag=0;printf("Input file name: n");scanf("%s",&
31、;name);for(j=0;j<5;j+)if(!strcmp(AFD,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"); elsefileprintf("Run queue without this file,please op
32、en thefirst!n");printf("n"); running。;void write() char name10;int j,flag=0;printf("Input file name: n");scanf("%s",&name);for(j=0;j<5;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 t
33、he files are write!n");else printf("No permission to write this file!n"); elseprintf("Run queue without this file,please open the filefirst!n");printf("n");running。; void create。 char name10;int i,j=0,flag;for(i=0;i<10;i+) if(!strcmp(UFD,"0") j+;
34、if(j>9) printf("The folder is full,please delete!n"); running。; else do printf("Input file name; n");scanf("%s",&name);flag=0;for(i=0;i<10;i+)Word資料 if(!strcmp(UFD,name) printf("File name duplication,please enter again!n");flag=1;break;while(fl
35、ag=1);for(i=0;i<10;i+) if(!strcmp(UFD,"0") strcpy(UFD,name);doprintf("Please enter the protected codechoose0-2,0-Read1-Write 2-Read or Write:n");scanf("%d”,&UFDi.code);if(UFDi.code!=0&&UFDi.code!=1&&UFDi.code!=2)printf("Inputerror,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!");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)能環(huán)保建筑技術規(guī)范實施研究
- 新能源汽車服務模式創(chuàng)新研究試題及答案
- 全球及中國延伸梯行業(yè)市場發(fā)展分析及前景趨勢與投資發(fā)展研究報告2025-2028版
- 智慧物業(yè)管理體系構建與績效考核標準研究
- 330KV消防工程施工組織設計與方案實施策略探討
- 全球及中國800Gbps收發(fā)器行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展前景研究報告2025-2028版
- 電氣公司銷售部門規(guī)章制度及運作流程優(yōu)化研究
- 智能無人機貨物運輸行業(yè)跨境出海戰(zhàn)略研究報告
- 智能戶外照明行業(yè)跨境出海戰(zhàn)略研究報告
- 智能嬰兒房燈企業(yè)制定與實施新質生產(chǎn)力戰(zhàn)略研究報告
- 第18課《井岡翠竹》課件-2024-2025學年統(tǒng)編版語文七年級下冊
- 第16課《有為有不為》公開課一等獎創(chuàng)新教學設計
- 【MOOC】《思想道德與法治》(東南大學)章節(jié)中國大學慕課答案
- MOOC 中醫(yī)與辨證-暨南大學 中國大學慕課答案
- 四川省地震災區(qū)重大地質災害治理工程資料全套表格
- 自然辯證法概論智慧樹知到答案章節(jié)測試2023年哈爾濱工業(yè)大學
- 中小學實驗室?;钒踩芾硎褂脵z查記錄表
- 零星工程結算審定單
- 幼兒園繪本:《超級細菌王國》
- 自愿放棄繳納住房公積金的承諾書
- 工程概預算定額講義
評論
0/150
提交評論