操作系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第2頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第3頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第4頁(yè)
操作系統(tǒng)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、江蘇大學(xué)京江學(xué)院JlANGSU UNIVERSlTY操作系統(tǒng)課程設(shè)計(jì)文件管理系統(tǒng)學(xué)院名稱:京江學(xué)院專業(yè)班級(jí): J計(jì)算機(jī)1401學(xué)號(hào):4141110020學(xué)生姓名: 潘慶指導(dǎo)教師:林琳2017 年 1月、課設(shè)目的操作系統(tǒng)是計(jì)算機(jī)專業(yè)的一門專業(yè)課, 也是計(jì)算機(jī)專業(yè)考研課程,但操作系統(tǒng)比較抽象, 有的同學(xué)一學(xué)期完了都還很難理解進(jìn)程、 內(nèi)存管理等一些概念和原理,操作系統(tǒng)課程設(shè)計(jì)的 目的就是通過設(shè)計(jì)的實(shí)驗(yàn),讓同學(xué)們真正理解進(jìn)程的實(shí)現(xiàn),內(nèi)存管理的機(jī)制,達(dá)到理解概念, 了解實(shí)現(xiàn)原理。同時(shí)也進(jìn)一步鞏固程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)的實(shí)踐技能, 實(shí)現(xiàn)整個(gè)大學(xué)階段實(shí)踐 技能不斷線的目的。二、課設(shè)題目實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文件管理系統(tǒng)

2、(1)具有文件目錄(一級(jí)或者多級(jí))(2) 對(duì)指定大小的磁盤(設(shè)共 1GB,每個(gè)塊為1MB),建立位示圖進(jìn)行管理(3)文件操作,包括新建、查看屬性、刪除新建文件:給出文件名、大小、建立時(shí)間等信息,系統(tǒng)為其分配硬盤空間,并記錄在文件目錄中 查看屬性:給出文件名,可以輸出該文件的所有屬性, 以及該文件所占用的物理塊號(hào)。 刪除文件:給出文件名,實(shí)現(xiàn)文件的刪除(4) 文件系統(tǒng)操作:顯示文件列表、顯示磁盤空間剩余大小、輸出位示圖。三、系統(tǒng)功能結(jié)構(gòu)四、主要數(shù)據(jù)結(jié)構(gòu)創(chuàng)建文件:Creatfilev 文件名 >,即創(chuàng)建一個(gè)指定名字的新文件,在目錄中增加一項(xiàng),不考慮文件的內(nèi)容,對(duì)于重名文件,給出錯(cuò)誤信息。刪除

3、文件:deltefile< 文件名 >,即刪除一個(gè)指定名字的已創(chuàng)建文件,若文件不存在則給出錯(cuò)誤信息。輸出文件列表:disp(),即顯示指定目錄下的全部文件和第一級(jí)子目錄,若無指定目錄,則顯示當(dāng)前目錄下的相應(yīng)內(nèi)容。輸出文件屬性:disp2(),即給出文件名,可以輸出該文件的所有屬性,以及該文件所占用 的物理塊號(hào)。輸出位示圖:bit_map(),即輸出當(dāng)前狀態(tài)下磁盤盤塊的使用情況。五、系統(tǒng)使用說明文件管理系統(tǒng)主菜單界面(通過輸入對(duì)應(yīng)數(shù)字進(jìn)入相應(yīng)功能子菜單)F C:USERSPANQINGPESKTDPFII EViIPDe4n jgfitp.pp,r- I I X產(chǎn)件標(biāo)作:1新建文件二

4、査 JS 'p. JH除文ft生返回Vn4rA耳9* 命 耳譚書# 36壽 3iA買輸人選擇頂:1H輸人文件名沁買輸人文件玄小耶;1t輸入文件創(chuàng)建吋0:2017,1,6“新建文件”功能(需要輸入文件名、文件大小和創(chuàng)建時(shí)間)E CUSERSPANQINGDESKTOPFILEfileDebugVile.exe,H岸按詐:電 *4cfrI* 乂才 *>!*+傘*沖 *: *3t* *f*s*:*1.新建文件N查看 乩刪除文件出返回主菜單=:=Iaf= 4c sfcatBtC 4cs*st=ICjtCK HCStBfs 4e 3tEHCfCaiC=H0Ic Hc 9cMc "

5、tstc Hc SfSllCaiC=HEaF=tctc Mc錯(cuò)諭入選擇項(xiàng): 請(qǐng)輸入寓曼查看的文件名心文件 l±o-丈fr'文件Xh(MB 所占! 所占鬻缺昌 文fr'J時(shí)間 a1OtC-D2017.1. 8“查看屬性”功能(輸入文件名后,會(huì)顯示其大小,所占盤塊數(shù),所占盤塊號(hào)和創(chuàng) 建時(shí)間)jj ',CUSERSPANQNGDESKTCPFILEfie>cbugfic.ee".文件爲(wèi)址操作: t+=*44=+4+*44= * 才卄 *+* 才卄 *±*4= 4+* 丄顯示文件列表乙顯示磁蠱空間剩余丸"3輸出位視團(tuán)1返回主菜單謂瑞

6、入選擇項(xiàng): 1屮屮科屮*枠*卄中I(I文件 列隸如p+¥1訓(xùn)卄中科屮* *半*卄中科屮* *半*“顯示文件列表”功能BJ T:USERSkPANQINGDE<TCPFILEfieDebgfile×e,'= X"顯示磁盤空間剩余大小"功能DU-U-OUUUOOooo-OUD-OOoooOoooO-U O-O-O- OO-U OUOO-J -JJ -J-O- OO- OOoO-O-O-O- O-O-O-O-O- O-QoO- OO-O-_u O-U OO-O-O- OO- OO-O-OOOoQQUoO-O- OQ-QoOOOoQQUoO-O-

7、OQ-QoOoOo“輸出位示圖”功能QQO-UOO-U O-U-U OOoU -OOo-D-O-UOO-U O-U-U OOoU -OOoD-O-UOO-U O-U-U O-OooOoU -O文HZ揉代;1新建文件二查 Js 呂刪陪文件也:!回王菜里請(qǐng)編入選揑項(xiàng):3謂瑜入爰刪除的文(lu“刪除文件”功能(輸入文件名即可將其刪除)六、課程設(shè)計(jì)中遇到的問題及解決方法岡U開始做這個(gè)實(shí)驗(yàn)時(shí),考慮的因素并沒有很周全,比如創(chuàng)建文件和刪除文件均沒有考慮例外因素,都是在后期檢查時(shí)發(fā)現(xiàn)的疏漏,另外,將文件管理的理論用 C+來實(shí)現(xiàn)也需要自己從鞏固書本概念做起,雖然書上并沒有給出完整的算法,但是通過類比及網(wǎng)上查閱相

8、關(guān)算法,自己也便可以寫出以C+實(shí)現(xiàn)的各個(gè)功能模塊,然后將其整合到文件類和文件庫(kù)類兩個(gè)大類中,使整個(gè)程序的結(jié)構(gòu)更清晰,主函數(shù)用來實(shí)現(xiàn)界面和選擇功能,用簡(jiǎn)單的SWitCh-CaSe 語句便可以實(shí)現(xiàn),值得注意的是, 這邊很容易會(huì)忽視清屏,導(dǎo)致輸出結(jié)果很繁雜,用簡(jiǎn)單的SyStem("cis") 命令即可實(shí)現(xiàn)清屏。這次課程設(shè)計(jì)不僅是對(duì)自己掌握的操作系統(tǒng)知識(shí)的檢驗(yàn),更是對(duì)實(shí)踐能力的檢驗(yàn),在這次課程設(shè)計(jì)過程中,我發(fā)現(xiàn)了許多課堂上或考試中并沒有留意的知識(shí)點(diǎn), 通過翻閱書本,查閱網(wǎng)絡(luò)才將它們重拾,這充分說明了我在學(xué)習(xí)這門課時(shí)還是偏向了課堂上的要點(diǎn),但畢竟課堂上老師不可能強(qiáng)調(diào)所有知識(shí)點(diǎn),自己還

9、是要注意課后的復(fù)習(xí)以及動(dòng)手實(shí)踐,才能更好地鞏固知識(shí)點(diǎn), 而且我也意識(shí)到自己并不能僅僅拘泥于課本上的知識(shí),很多學(xué)科前沿的知識(shí)也要去了解,這樣對(duì)以后的就業(yè)才有幫助。七、帶注釋的代碼#include<iostream>#include<iomanip>#include<string>using namespace std;tt 是文件已占int i=0,j=0,sum=0,tt=0,ii,ss;/i,j 是位視圖行列, sum 是位視圖存儲(chǔ)到的盤塊數(shù), 用塊數(shù), ii 是文件編號(hào) ,ss 是磁盤剩余塊數(shù)int a3232; /*class file / 文件類pr

10、ivate:string name;/ 文件名public:int tag_delete; / 刪除標(biāo)記 1:已刪 0:未刪int length; / 文件大小int blocknum;/ 盤塊數(shù)int blocksum1;/ 所占盤塊號(hào)的起點(diǎn)int blocksum2;/ 所占盤塊號(hào)的終點(diǎn)string time;/ 文件建立時(shí)間file()string getname()return name;/ 獲取文件名int gettag_delete()return tag_delete; / 獲取刪除標(biāo)記return blocksum1;int getblocksum2() / 磁盤塊號(hào)的終點(diǎn)re

11、turn blocksum2;void creat na,int length,string time) / 創(chuàng)建文件tag_delete=0;name=na;this ->time=time;blocknum=length;/ 盤塊數(shù) =文件大小 /盤塊大小位視圖賦值if(j+blocknum)<=32) / 所有盤塊數(shù)只占用一行, 直接賦值 for(;j<(sum+blocknum);j+)aij=1;sum=sum+blocknum; / 再進(jìn)行下面文件的盤塊數(shù)累加 else/ 占用多行,先賦值整行for(;j<32;j+)aij=1;:i=i=i+1;for(j

12、=0;j<(sum+blocknum) -32*i;j+)/ 再進(jìn)行剩余項(xiàng)賦值aij=1;:sum=sum=sum+blocknum;:tt=tt=tt+blocknum;blocksum1=sum-blocknum;blocksum2=sum-1;void disp()cout<<name<<endl;void disp2()/ 輸出文件已占用的盤塊號(hào)/ 輸出文件列表/ 輸出文件屬性cout<<setw(8)<<name<<setw(8)<<blocknum<<setw(18)<<block

13、num<<setw(10)<<blocksum1<<""<<blocksum2<<setw(15)<<time<<endl;to;囁*class fdatabase/ 文件庫(kù)類private:file f50;public:fdatabase()/ 構(gòu)造函數(shù)int search(string fname)/ 按文件名查找判斷是否存在for (int i=0;i<50;i+)if (fi.getname()=fname) && (fi.tag_delete=0)/ 文件名

14、一樣而且未刪return 0;return 1;int creat na,int length,string time)int p;p=search(na);/ 創(chuàng)建文件時(shí)先查找是否存在if (p=1)fii.creat);/ 創(chuàng)建文件:ii+;return 1;elsecout<<"n! 該文件已存在 ,不能創(chuàng)建 !nn"return 0;int delte na)/ 刪除文件int x=0,n1,n2,q1,q2,k;for(int i=0;i<50;i+)if(getname(i)=na)/ 進(jìn)行刪除文件賦值/ 位視圖中刪除文件從第一盤fi.tag_

15、delete=1;tt=tt -fi.blocknum;if(i=0)塊開始for(k=0;k<fi.blocknum;k+)axk=0;/ 位視圖中刪除文件從其它else盤快開始n1=(fi -1.blocksum2+1)/32;/ 被查找的文件之前文件所占用的盤塊數(shù) /32 ,/n1 表示位視圖開始操作的行/ 大于 0 表示跨行n2=(fi.blocksum2+1)/32;/n2 表示位視圖結(jié)束操作的行/ 所有文件所占用的盤塊數(shù) /32,/ 位視圖開始的列/ 位視圖結(jié)束的列/ 若 n2 與 n1 相等,表明當(dāng)q1=fi.blocksum1%32;q2=fi.blocksum2%32;

16、 if(n1=n2) 前所有被占用盤塊在同一行for(k=q1;k<q2+1;k+)an1k=0;elsefor(;n1<n2 -1;n1+)for(int l=0;l<32;l+)/ 循環(huán)進(jìn)行整行賦值an1l=0;/ 對(duì)剩余項(xiàng)賦值for(k=0;k<q2+1;k+)an2k=0;return 1;return 0;void disp() / 輸出所有文件列表for (int i=0;i<=ii;i+)if(fi.tag_delete=0)fi.disp();void disp2(file f) / 輸出文件屬性f.disp2();string getname(i

17、nt n)return fn.getname();(int n)return fn;/*void bit_map() / 位視圖int s=0;cout<<" "<<endl;for(int p=0;p<32;p+)for(int q=0;q<32;q+)cout<<apq<<" "cout<<endl;cout<<" "<<endl;for(int p1=0;p1<32;p1+)for(int q1=0;q1<32;q1+)i

18、f(ap1q1=1)s=s+1;/*void main()int I,l,sum=0;string time;string fname;fdatabase p;I=1024/32;for(int i=0;i<I;i+)for(int j=0;j<32;j+)aij=0;char choice;char choice2;char choice3;while(choice!='0')choice='1'choice2='1'choice3='1'cout <<" 文 件 管 理 系 統(tǒng)cout <

19、;<H*n"“cout<<"1.文 件 操 作nn"cout<<"2.文件系統(tǒng)操作nn"cout<<"3. 退出文件管理系統(tǒng) nn"cout <<"*cout<<endl<<" 請(qǐng)輸入選擇項(xiàng) :" cin >> choice;system("cls");switch(choice)case '1':while(choice2!='0')cout<&l

20、t;"文件操作:n"cout<<"*cout<<"1. 新 建cout<<"2. 查 看cout<<"3. 刪 除cout<<"4. 返 回 文 件 nn" 屬 性 nn"文 件 nn"主菜單nn"cout<<"*cout<<endl<<" 請(qǐng)輸入選擇項(xiàng)cin >> choice2;cout<<endl;switch (choice2)case &

21、#39;1':cout <<"請(qǐng)輸入文件名 :"cin>>fname;cout<<endl;cout <<"請(qǐng)輸入文件大小 MB:"cin>>l;cout<<endl;cout<<"請(qǐng)輸入文件創(chuàng)建時(shí)間:":cin>>time;p.creat);break;case '2':cout<<" 請(qǐng)輸入需要查看的文件名 :"cin>>fname;cout<<endl;i

22、nt q;q=p.search(fname);if (!q=0)cout<<" ! 該文件不存在,無法查看 !nn "break;cout <<" 文件屬性如下 :n"for(int n=0;n<50;n+)if(p.getname(n)=fname)cout<<setw(8)<<" 文件名 "<<setw(15)<<" 文件大 小 (MB)"<<setw(15)<<" 所 占 盤 塊 數(shù) "&

23、lt;<setw(15)<<" 所 占 盤 塊 號(hào) "<<setw(15)<<" 文 件 創(chuàng) 建 時(shí) 間 "<<endl;p.disp2(p.File(n);break;cout<<endl;break;case '3':cout <<" 請(qǐng)輸入要?jiǎng)h除的文件名 :"cin>>fname;cout<<endl;int q;q=p.search(fname);if (!q=0)!nn "cout<<" ! 該文件不存在,無法刪除break;p.delte);break;case '4':choice2='0'break;default:cout<<" 輸入錯(cuò)誤,請(qǐng)重新輸入: nn"*case '2':cin.get();system("cls");break;while(choice3!='0')cout<<"文件系統(tǒng)操作:n&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論