版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、操作系統(tǒng)課程設(shè)計(jì)報(bào)告操作系統(tǒng)課程設(shè)計(jì)報(bào)告任務(wù)名稱(chēng): 文件操作與管理 指導(dǎo)教師: 專(zhuān) 業(yè): 班 級(jí): 學(xué)生姓名: 學(xué) 號(hào): 完成日期: 一、操作系統(tǒng)課程設(shè)計(jì)的目的與要求1、目的隨著社會(huì)信息量的不斷增長(zhǎng),要求計(jì)算機(jī)處理的信息與日俱增,涉及到社會(huì)生活的各個(gè)方面。因此,文件管理是操作系統(tǒng)的一個(gè)極為重要的組成部分。學(xué)生應(yīng)獨(dú)立地用C語(yǔ)言(或其它程序設(shè)計(jì)語(yǔ)言)編寫(xiě)和調(diào)試一個(gè)簡(jiǎn)單的文件系統(tǒng),模擬文件管理的工作過(guò)程。從而對(duì)各種文件操作命令的實(shí)質(zhì)內(nèi)容和執(zhí)行過(guò)程有比較深入的了解,掌握它們的實(shí)施方法,加深理解課堂上講授過(guò)的知識(shí)。2、要求(1) 設(shè)計(jì)一個(gè)有n個(gè)用戶(hù)的文件系統(tǒng),每個(gè)用戶(hù)最多可保存m個(gè)文件。(2) 限制用戶(hù)
2、在一次運(yùn)行中只能打開(kāi)l個(gè)文件。(3) 系統(tǒng)應(yīng)能檢查輸入命令的正確性,出錯(cuò)要顯示出錯(cuò)原因。(4) 對(duì)文件必須設(shè)置保護(hù)措施,如只能執(zhí)行,允許讀、允許寫(xiě)等。在每次打開(kāi)文件時(shí),根據(jù)本次打開(kāi)的要求,再次設(shè)置保護(hù)級(jí)別,即可有二級(jí)保護(hù)。(5) 對(duì)文件的操作至少應(yīng)有下述幾條命令:creat 建立文件。delete 刪除文件。open 打開(kāi)文件。close 關(guān)閉文件。read 讀文件。write 寫(xiě)文件。二、簡(jiǎn)述課程設(shè)計(jì)內(nèi)容、主要功能和實(shí)現(xiàn)環(huán)境(1) 本任務(wù)設(shè)計(jì)一個(gè)10個(gè)用戶(hù)的文件系統(tǒng),每個(gè)用戶(hù)最多可保存10個(gè)文件,一次運(yùn)行中用戶(hù)可打開(kāi)5個(gè)文件。(2) 程序采用二級(jí)文件目錄,即設(shè)置主文件目錄(MFD)和用戶(hù)文件
3、目錄(UFD)。前者應(yīng)包含文件主(即用戶(hù))及他們的目錄區(qū)指針;后者應(yīng)給出每個(gè)文件主占有的文件目錄,即文件名,保護(hù)碼,文件長(zhǎng)度以及他們存放的位置等。另外為打開(kāi)文件設(shè)置運(yùn)行文件目錄(AFD),在文件打開(kāi)時(shí)應(yīng)填入打開(kāi)文件號(hào),本次打開(kāi)保護(hù)碼和讀寫(xiě)指針等。(3) 為了便于實(shí)現(xiàn),簡(jiǎn)化對(duì)文件的讀寫(xiě)操作,在執(zhí)行讀寫(xiě)命令時(shí),只修改讀寫(xiě)指針,并不進(jìn)行實(shí)際文件的讀寫(xiě)操作。環(huán)境:vc+6.0三、任務(wù)的分析、設(shè)計(jì)、實(shí)現(xiàn)和討論1、任務(wù)的分析(1) 因系統(tǒng)小,文件目錄的檢索使用了簡(jiǎn)單的線性搜索,而沒(méi)有采用Hash等有效算法。(2) 文件保護(hù)簡(jiǎn)單實(shí)用了三位保護(hù)碼,對(duì)應(yīng)于允許讀、允許寫(xiě)和運(yùn)行執(zhí)行,如下所示:1 1 1 允許寫(xiě)允
4、許讀允許執(zhí)行如對(duì)應(yīng)位為0,則不允許。(3) 程序中使用的主要數(shù)據(jù)結(jié)構(gòu)如下:UFDMFD用戶(hù)名文件目錄指針用戶(hù)名文件目錄指針用戶(hù)名文件目錄指針文件名保護(hù)碼文件長(zhǎng)度文件名文件名保護(hù)碼文件長(zhǎng)度文件名主文件目錄和用戶(hù)文件目錄打開(kāi)文件號(hào)打開(kāi)保護(hù)碼讀寫(xiě)指針打開(kāi)文件目錄(4) 程序框圖如圖所示。2、任務(wù)的設(shè)計(jì)與實(shí)現(xiàn)(分別給出系統(tǒng)總控和本人負(fù)責(zé)實(shí)現(xiàn)的算法流程圖與說(shuō)明)1. 整個(gè)程序運(yùn)行過(guò)程如下:輸入用戶(hù)名在MFD中查找顯示UFD文件鏈表初始化AFD運(yùn)行文件表輸入操作命令執(zhí)行操作命令保存文件目錄打印文件目錄結(jié)束2. void Create ( ) 創(chuàng)建一個(gè)文件選擇CREATE命令后,查看該用戶(hù)的UFD鏈表內(nèi)是否
5、還有空閑結(jié)點(diǎn):(1) 若有則設(shè)置該結(jié)點(diǎn)的內(nèi)容,然后打開(kāi)、修改AFD;(2) 若無(wú)則報(bào)錯(cuò)并退出。(3)3. void Read( ) 讀一個(gè)文件讀文件的關(guān)鍵是保護(hù)碼的判斷。選擇了READ命令后,輸入需要讀的文件名,在UFD中搜索是否有該文件名:(1) 若有,但該文件沒(méi)被打開(kāi),則報(bào)錯(cuò);(2) 若有,且已被打開(kāi),此處要分兩種情況:l 如果保護(hù)碼的讀位為“0”,則不能對(duì)該文件進(jìn)行讀操作。l 否則,就通過(guò)文件號(hào)來(lái)讀文件,即通過(guò)AFD中的point指針來(lái)查找該文件。(3)4. Void Nowshow( )顯示當(dāng)前用戶(hù)目錄程序運(yùn)行結(jié)果3操作過(guò)程和結(jié)果分析用戶(hù)驗(yàn)證創(chuàng)建文件寫(xiě)文件讀文件顯示當(dāng)前用戶(hù)目錄關(guān)閉與刪
6、除更改用戶(hù)結(jié)束四、操作系統(tǒng)課程設(shè)計(jì)小結(jié)(收獲、不足與建議)這次實(shí)驗(yàn)是寫(xiě)一個(gè)控制用戶(hù)和用戶(hù)目錄下的文件的管理的程序,要求雖然很簡(jiǎn)單,但實(shí)際上要寫(xiě)出來(lái)其實(shí)需要很多知識(shí),對(duì)于一個(gè)剛?cè)腴T(mén)的人來(lái)說(shuō)還是很有難度的,雖然項(xiàng)目是小組完成,但實(shí)際上還是很有難度,每個(gè)人對(duì)項(xiàng)目的理解不同,所以要整合程序也是一個(gè)難題,每個(gè)人只負(fù)責(zé)一小塊內(nèi)容,但是為了默契配合,必須在小組中進(jìn)行大量的交流,但是難度也意味著收獲,本次項(xiàng)目的過(guò)程讓我對(duì)C類(lèi)語(yǔ)言進(jìn)一步理解,也讓我自己了解到自己還需要學(xué)習(xí)很多很多,對(duì)于這次的項(xiàng)目,我們小組做的程序很好的滿足了要求,但是容錯(cuò)能力比較差,輸入的參數(shù)需要正確,保存的內(nèi)容也極其有限,在我看來(lái),我們小組還
7、是很出色的,畢竟在那么短時(shí)間內(nèi)基本完成了項(xiàng)目要求。5、 附錄(主要源程序和運(yùn)行結(jié)果的清單)#include#include#include #include #include #include#include using namespace std;string a10=a,b,c,d,e,f,g,h,i,j;string command9=CREATE,DELETE,OPEN,CLOSE,READ,WRITE,CHANGE,NOWSHOW,BYE;struct UFDstring filename;int pro3;int codel;UFD *next;struct MFDstring u
8、sername;UFD *file;MFD *next;struct AFDint filenum;char filepro3;UFD *point;AFD *next;AFD *openfile=NULL;MFD *user=NULL;MFD *thisuser; /當(dāng)前用戶(hù)void init() /初始化函數(shù)int x=0;for(int i=0;iusername=ax;UFD *fhead=NULL;for(int j=0;jfilename=*;for(int a=0;aproa=0;q-codel=0; q-next=fhead;fhead=q;p-file=fhead;if(j=
9、9) /變成循環(huán)鏈表UFD *r=fhead;while(r-next!=NULL)r=r-next;r-next=fhead;p-next=user;user=p;x+;/AFD的初始化for(int k=0;kfilenum=5-k;for(int j=0;jfileproj=0;f-point=NULL;f-next=openfile;openfile=f;if(i=4) /打開(kāi)文件鏈表設(shè)為循環(huán)鏈表AFD *p=openfile;while(p-next!=NULL)p=p-next;p-next=openfile;int checkUser(string username)MFD *p
10、;for(p=user;p!=NULL;p=p-next)if(p-username=username)break;if(p!=NULL)thisuser=p;return 1; elsereturn 0;void show()coutYOUR FILE DIRECTORYendl;coutsetw(20)setiosflags(ios:left)setfill( )FILE NAME;coutsetw(20)setiosflags(ios:left)setfill( )PROTECTION;coutsetw(20)setiosflags(ios:left)setfill( )CODE LEN
11、GTHfile;for(int i=0;i10;i+)coutsetw(20)setiosflags(ios:left)setfill( )filename;coutpro0pro1pro2;coutsetw(20)setiosflags(ios:left)setfill( ) ;coutsetw(20)setiosflags(ios:left)setfill( )codelnext;void OpenMode(UFD *p,string name)AFD *f=openfile;int i;for(i=0;ipoint!=NULL&f-point-filename=name)coutTHIS
12、 FILE IS ALREADY OPENED!next;f=openfile;for(i=0;ipoint=NULL)break;f=f-next;if(i=5)coutERROR!YOU CANT OPEN THIS FILE,NUMBER MUST =5!;elsecoutprotect;int j;for(j=0;jproj!=protectj-48)break;if(j!=3)coutERROR,OPEN MODE IS WRONG!endl;return;elsecoutTHIS FILE IS OPENED,ITS OPEN NUMBER IS ;coutfilenumpoint
13、=p;for(int j=0;jfileproj=p-proj; return;void Create()coutname;coutprotect;UFD *p=thisuser-file;UFD *q=p;int n;for(n=0;nfilename=*)break;q=q-next;if(n=10)coutCREAT FAILED!THERE IS NO SPACE,FILE NUMBER MUST=10!filename=name;for(int i=0;iproi=protecti-48; coutTHE NEW FILE IS CREATED.endl;OpenMode(q,nam
14、e);return ;void Open()coutname;UFD *p=thisuser-file;UFD *q=p;int n;for(n=0;nfilename=name)break;q=q-next;if(n=10)coutERROR!THIS FILE IS NOT EXISTS!point=NULL;for(int i=0;ifileproi=0;coutSUCCESS!THIS FILE IS CLOSED!endl;return;void Close()coutname;UFD *p=thisuser-file;UFD *q=p;int n;for(n=0;nfilename
15、=name)break;q=q-next;if(n=10)coutERROR!CANT FIND THIS FILE!endl;return;elseAFD *f=openfile; int i; for(i=0;ipoint=q)break;f=f-next;if(n=5)coutERROR!THIS FILE IS NOT OPENED!endl;return;elseClose1(f);return;void Delete()coutname;UFD *p=thisuser-file;UFD *q=p;int n;for(n=0;nfilename=name)break;q=q-next
16、;if(n=10)coutERROR!CANT FIND THIS FILE!endl;return;elseAFD *f=openfile;int i; for(i=0;ipoint=q)coutERROR!THIS FILE IS OPENED! CLOSED IT?(Y/N)y;if(y=Y)Close1(f);break;else return;f=f-next;q-filename=*;q-codel=0;for(int x=0;xprox=0;coutSUCCESS!THIS FILE IS BE DELETED! endl;return;void Read()coutnum;AF
17、D *f=openfile;int i;for(i=0;ifilenum=num&f-point!=NULL)break;f=f-next;if(i=5)coutERROR!THIS FILE IS NOT OPENED!filepro0=1)coutSUCCESS!READING!endl;elsecoutERROR!THIS FILE CANT READ WITH READING RIGHT LIMITED!endl;return;void Write()coutnum;AFD *f=openfile;int i;for(i=0;ifilenum=num&f-point!=NULL)bre
18、ak;f=f-next;if(i=5)coutERROR!THIS FILE IS NOT OPENED!filepro1=1)coutcode;f-point-codel=code;elsecoutERROR!THIS FILE CANT WRITE WITH WRITING RIGHT LIMITED!endl;return;void Change()int x=0;while(x=0)coutYOUR NAME?username;x=checkUser(username);if(x=0)coutYOUR NAME IS NOT IN THE USER NAME TABLE,TRY AGAIN.endl;show();return;void Nowshow(int b)int a=1;int c;c=a-b;if(c!=0)show(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北醫(yī)藥學(xué)院藥護(hù)學(xué)院《工業(yè)社會(huì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北體育職業(yè)學(xué)院《外科護(hù)理學(xué)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 鹽城江蘇鹽城市大豐區(qū)住房和城鄉(xiāng)建設(shè)局招聘勞務(wù)派遣工作人員4人筆試歷年參考題庫(kù)附帶答案詳解
- 湛江2024年廣東湛江市市直公立醫(yī)院高層次人才招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2025年文具租賃服務(wù)與采購(gòu)合同范本3篇
- 江蘇2025年江蘇省中醫(yī)藥研究院博士專(zhuān)項(xiàng)招聘18人筆試歷年參考題庫(kù)附帶答案詳解
- 德陽(yáng)2024年四川德陽(yáng)市人民醫(yī)院招聘事業(yè)單位工作人員100人筆試歷年參考題庫(kù)附帶答案詳解
- 文山2025年云南文山市公安局第一批警務(wù)輔助人員招聘47人筆試歷年參考題庫(kù)附帶答案詳解
- 廣州廣東廣州市白云區(qū)鶴龍街道市政服務(wù)所招聘環(huán)衛(wèi)工作人員筆試歷年參考題庫(kù)附帶答案詳解
- 山東2025年山東管理學(xué)院高層次人才招聘筆試歷年參考題庫(kù)附帶答案詳解
- 藝術(shù)課程標(biāo)準(zhǔn)(2022年版)
- 一年級(jí)語(yǔ)文雨點(diǎn)兒-教學(xué)課件【希沃白板初階培訓(xùn)結(jié)營(yíng)大作業(yè)】
- 替格瑞洛藥物作用機(jī)制、不良反應(yīng)機(jī)制、與氯吡格雷區(qū)別和合理使用
- 河北省大學(xué)生調(diào)研河北社會(huì)調(diào)查活動(dòng)項(xiàng)目申請(qǐng)書(shū)
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領(lǐng)導(dǎo)力
- 企業(yè)人員組織結(jié)構(gòu)圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 實(shí)習(xí)證明模板免費(fèi)下載【8篇】
- 復(fù)旦大學(xué)用經(jīng)濟(jì)學(xué)智慧解讀中國(guó)課件03用大歷史觀看中國(guó)社會(huì)轉(zhuǎn)型
- 案件受理登記表模版
評(píng)論
0/150
提交評(píng)論