




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、教育資料操作系統(tǒng)大型試驗實驗報告姓名班級學(xué)號XX軟件工程110x201126630xxx一、名稱操作系統(tǒng)大型試驗。二、目的用C+編寫出一個簡單的模擬文件系統(tǒng),實現(xiàn)目錄的添加、刪除、重命名,文件的添加、刪除、重命名、文件和目錄、文件的拷貝。三、要求開發(fā)工具: word, vc win32api1. 設(shè)計和實現(xiàn)一個簡單的文件系統(tǒng),要求包括目錄、普通文件和文件的存儲2. 文件系統(tǒng)的目錄結(jié)構(gòu)采用類似Linux的樹狀結(jié)構(gòu);3. 要求模擬的操作包括:a)目錄的添加、刪除、重命名;b)目錄的顯示(列表)c)文件的添加、刪除、重命名d)文件和目錄的拷貝4. 用戶進(jìn)入時顯示可用命令列表;用戶輸入help時顯示所
2、有命令的幫助文檔;輸入某個命令+?時顯示該條命令的使用說明5. 用戶輸入exit時退出該系統(tǒng)6. 實驗實現(xiàn)基于 windows平臺;7. 實驗開發(fā)語言可以選用 C/C+等四、設(shè)計1. 主要思路說明本模擬系統(tǒng)通過一個大小固定的數(shù)組要代表物理盤塊,假設(shè)共有1024塊,新增目錄占一塊,新增文件占一塊,文件中可輸入內(nèi)容,內(nèi)容假設(shè)定義為5個字符占一塊,超出則應(yīng)新 申請空間。模擬物理盤塊的數(shù)組中,數(shù)組內(nèi)容為-99代表改物理盤塊內(nèi)容為空,可使用,其他數(shù)字均代表該物理盤塊被占用,其中-3代表是占用文件的末結(jié)點(diǎn),其他整數(shù)代表是文件內(nèi)容的下一個尋址下標(biāo),另有一個stri ng 類型的數(shù)組來存儲內(nèi)容,模擬文件寫入了
3、對應(yīng)下標(biāo)的物理盤塊中。設(shè)置了一個全局指針指向根結(jié)點(diǎn),一個全局指針指向當(dāng)前操作目錄。搜索空白物理盤塊時采用順序搜索物理盤塊數(shù)組。存儲形式主要采用類似二叉樹結(jié)構(gòu),如目錄為根,目錄下的第一個文件或目錄存在根的子節(jié)點(diǎn),目錄下的其他文件或目錄存在第一個文件或目錄的兄弟節(jié)點(diǎn),以此類推。本程序僅seperate()函數(shù)使用現(xiàn)成代碼,此函數(shù)功能為將輸入命令串分離,僅僅起到 美觀作用,其余所有代碼均為原創(chuàng)!2. 申優(yōu)功能:1)能實現(xiàn)動態(tài)增長,即當(dāng)輸入文件的內(nèi)容大小大于分配的模擬物理盤塊時系統(tǒng)能夠自動尋找空物理盤塊并分配,將超出的內(nèi)容保存在新的物理盤塊中,若超出模擬磁盤大小, 則超出部分不保存且返回提示。2)能實
4、現(xiàn)級聯(lián)刪除,即當(dāng)刪除目錄(文件夾)時,目錄下的所有內(nèi)容也應(yīng)當(dāng)刪除并正 確釋放物理盤塊空間。3)能實現(xiàn)目錄的復(fù)制, 即復(fù)制目錄時(文件夾)時,該目錄下的所有文件和目錄也應(yīng) 準(zhǔn)確復(fù)制至目標(biāo)目錄中,并正確分配物理盤塊空間。3. 主要函數(shù)和類的定義1)主要函數(shù)定義#defi ne show_b num 20 #define block_size 1024 int blockblock_size; string contentblock_size; int Msize=5;II顯示物理盤塊的塊數(shù)/物理盤塊塊數(shù)II假設(shè)有block_size塊物理盤塊II存放文件內(nèi)容II此處為模擬磁盤大小為輸入5個字符fn
5、ode *root=n ew fnode(WP:,0,0);fnode *curre nt_path=new fnode();fnode *seek_flag=new fnode();fnode *cp_flag=new fnode();void in itialize();int seekTarget(stri ng n ame);int seek_log(stri ng n ame);void delete_ no de(stri ng n ame);int freeblock(fnode *);int seekfreeblock();void show_curre nt_path();v
6、oid add_file(stri ng n ame,i nt t);void show_curpath_all();void ren ame_file(stri ng On ame,stri ng Nn ame); II void seperate();void cd();void add_File();void add_Log();void delete_file();void show_memory();void re_n ame();void help();void show_c onten t();void write_file();void Clear_();void Exit()
7、;void cp();void cp_log(fnode *target,fnode *source);void cp_file(fnode *target,fnode *source);void cp_no de(fnode *target,fnode *source);int fin d_target_log();int calculate_logsizeMa in( fnode *);II 設(shè)置根目錄II當(dāng)前路徑II作為查找標(biāo)志II作為復(fù)制的位置標(biāo)志II初始化II搜索文件或目錄II搜索目錄II刪除節(jié)點(diǎn)II釋放物理盤塊II搜索可用物理盤塊II顯示當(dāng)前路徑II增加目錄、文件II顯示當(dāng)前目錄下
8、的所有文件 重命名II分離命令I(lǐng)I進(jìn)入目錄II增加文件功能入口II增加目錄功能入口II刪除文件或目錄功能入口II顯示物理盤塊占用情況II重命名功能入口II查看幫助II查看文件內(nèi)容II寫文件II清屏II退出II復(fù)制功能入口II復(fù)制目錄II復(fù)制文件II復(fù)制節(jié)點(diǎn)II找到復(fù)制的目標(biāo)目錄II計算目錄大小int calculate_logsize(fnode *);2)文件節(jié)點(diǎn)類的定義:class fnodepublic:stri ng file name;/文件名int type;/文件類型,1為普通文件,0為目錄文件fnode *pare nt;/父節(jié)點(diǎn)fnode *child;/子節(jié)點(diǎn)fnode *
9、brother;/兄弟節(jié)點(diǎn)int block_ num;/表示占用的物理盤塊塊號int isBro;/表示是否是在冋級目錄下,0表示不是,1表示是int isCld;/是否為目錄下第一個節(jié)點(diǎn),1表示是,0表示不是fnode()/初始化type=_1;pare nt=NULL;child=NULL;brother=NULL;block_ num=-1;isBro=0;isCld=0;fnode(string n,int t,int b)/ 根節(jié)點(diǎn)初始化type=t;file name=n;pare nt=NULL;child=NULL;brother=NULL;block_ num=b;bloc
10、kblock_ num =-3;isBro=0;isCld=0;fnode(fnode *p,stri ng n ame,i nt t,i nt b) /文件節(jié)點(diǎn)初始化pare nt=p;file name=n ame;type=t;child=NULL;brother=NULL;block_ num=b;blockblock_ num =-3;isBro=0;isCld=O;/拷貝函數(shù)void copy(fnode *cp)file name=cp-file name; type=cp_type;pare nt=cp_pare nt; child=cp-child; brother=cp-b
11、rother;block_ num=cp-block_ num; ;4. 命令:命令echomddelcdcpdirrentypwrtmem cls exit解釋echo命令可以在當(dāng)前目錄下創(chuàng)建一個文件,具體格式:echo+namemd命令可以在當(dāng)前目錄下創(chuàng)建一個目錄文件,具體格式:md+namedel命令可以在當(dāng)前目錄下刪除一個已存在的文件或目錄(支持級聯(lián) 刪除),具體格式:del+namecd命令可以進(jìn)入下一級目錄或返回上級目錄、根目錄,具體格式:cd+name或 cd+.或 cd+.cp命令可以復(fù)制當(dāng)前目錄下一個指定的文件或目錄至指定的目錄,具體格式:cp+name+roaddir命令可
12、以顯示當(dāng)前目錄下的所有文件和目錄,具體格式:delren命令可以重命名一個存在于當(dāng)前目錄下的文件或目錄,具體格式:ren+n ame +new n ametyp命令可以查看當(dāng)前目錄下一個文件的內(nèi)容,具體格式:typ+namewrt命令可以在當(dāng)前目錄下寫內(nèi)容至一個已存在的文件,具體格式:wrt+name +contentmem命令可以查看模擬物理盤塊的使用情況,具體格式:memcls命令為清屏命令,具體格式:clsexit命令為退出命令,具體格式:exit五、關(guān)鍵技術(shù)流程圖及說明提示:若圖中文字無法看清,可用Micorsoft Visio 打開壓縮包下部分程序流程圖”文件夾的繪圖文件查看。1增加
13、文件或目錄(此功能比較簡單,流程圖寫的較詳細(xì)就不做說明):2. 刪除目錄(實現(xiàn)級聯(lián)刪除):說明:刪除目錄時刪除文件和刪除目錄本身放在同一個函數(shù)中,刪除目錄下的所有文件放在freeblock函數(shù)里,這樣比較好處理。下面給只給出遞歸函數(shù)的流程圖。3. 將內(nèi)容寫入文件(實現(xiàn)動態(tài)增長):說明:圖中Msize為模擬規(guī)定的文件塊字符串大小,比如Msize=5,那么一個物理盤塊只能存5個字符,超出則要申請新的空間。主要采用雙重循環(huán)方法寫入, 外層循環(huán)為需要的 塊數(shù),內(nèi)層循環(huán)為 Msize ,用string累加字符串內(nèi)容,內(nèi)層循環(huán)退出后新申請一個空間并content (為string 類型的數(shù)組,將對應(yīng)下標(biāo)賦
14、給上一個物理盤塊數(shù)組,再將對應(yīng)內(nèi)容存入 模擬存儲內(nèi)容)數(shù)組中,直至退出外層循環(huán)。4. 復(fù)制目錄:說明:這里和刪除目錄一樣, 寫了兩個復(fù)制函數(shù),這樣寫同樣因為遞歸調(diào)用是比較方便, 第一個函數(shù)傳入?yún)?shù)為目標(biāo)目錄指針和被復(fù)制的目錄的指針,第一個函數(shù)里新建了一個階段復(fù)制被復(fù)制的目錄的內(nèi)容, 然后將新建節(jié)點(diǎn)的子節(jié)點(diǎn)和被復(fù)制目錄的子結(jié)點(diǎn)傳入下一個遞歸 調(diào)用函數(shù)(因為目錄的內(nèi)容存于目錄的子節(jié)點(diǎn),與兄弟節(jié)點(diǎn)無關(guān)),第二個函數(shù)就是遞歸調(diào)用函數(shù)cp_node,下面就只給出cp_node的流程圖(復(fù)制之前同樣進(jìn)行了路徑的判誤操作, 內(nèi)存大小的判斷操作, 是否重名的判斷操作, 被復(fù)制目錄是否存在判斷操作,這些操作在遞
15、歸函數(shù)之前完成,所以下面的遞歸函數(shù)不體現(xiàn)這些操作)。六、運(yùn)行結(jié)果1.主界面展示:教育資料圖:主界面展示2.help命令展示:圖:help命令展示3.echo命令展示:圖:echo命令展示4.del命令展示:教育資料E:FiIt 5, -lr 八=Siimilate File Sijsten【扳盡 2014.Gl.09J 版權(quán)所有吳亂棵密陽有相剎。RJP: del a卜目杲下不存存名.為曲文件或冃錄.刪除共購RIP: od newlofrUP; mn叭王為前吋物建錢的實驗情況,代需可用.代表被占用且為末立件塊.斗它數(shù)字 沫下一塊的尋址匚標(biāo)T -3 -99 -99 -99 -99 -99 -9?
16、T9 -99 -S9 -99 T9 -9? -99 -99 -99 -99 -99 -99WP;dir目壬“小叮 二什二:衛(wèi)目 白月竿,1+H衛(wèi)忍盤+*UP? dpl npuloffWPOrtiv核目錄為空目靈目錄下無內(nèi)容!UP? npn鷹辛瞬巒器益輕實驗情況,咖代表可用,T代耒被占用且為末文件塊,其它數(shù)字? -99 -99 -99 -9? -9 -99 -9$ -99 -9* -99 -99 -99 -99 59-99 -99 -99 -99Up亠圖:del命令展示-普通刪除說明:創(chuàng)建了目錄logl,在logl中創(chuàng)建一系列文件和目錄,磁盤使用情況顯示已分 配,實用del刪除命令后查看磁盤分配
17、證明級聯(lián)刪除是可靠的。Klnulate File Systeia 扳本 2BL4.01.0f 版權(quán)所有cnd logfZUP * lc eciic f il&lWP:loglwrt 1ilel abcdeUPsxlcglcd logZUPs Slcgl Lag2cho flle2 yP:McglMog wrt f ileZ SB76SUP Z lc gl kloQ2 nd ogSIwP-McjjjlKluyad.J ci.-壞星岡部或外部命令,也不是町運(yùn)桿茁程序或批必理文鍬UPsxlcl JLog(2cd .WPdir目錄各tool文件類型:目錄占用第:覽物理養(yǎng)塊VP= mpcn貝下丸舸冊卜物
18、理魏的賣驗情況,-汕代表可用-玳桃占用且為未丈件塊苴它數(shù)字 I餐羔卞一塊*持titT-3 -3 -3 -3 -3 -3一空9-9? -99-?空T9-$9一亍9-95一夕夕一9今-?UP:Mel loqlUP=dir該目錄為空日錄目錄下無內(nèi)容UP: ficrai陽八物理曙的實驗徵兄,-胡弋表可用* 7代表祓占詢且為末文件塊其它數(shù)宇 塊的40-9 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -OT -99 -99 -9? -99 -99 -99 -99 -99WP:_圖:del命令展示-級聯(lián)刪除5.md命令展示:教育資料圖:md命令展示6.cd命令展示:說明:
19、圖中展示了 cd+name cd+.、cd+.三種cd命令的使用和判別情況。$ inulAte File Systen Ltk 2614.01.J皈權(quán)所有5、吳勲俁智帝有板札WPi ”無送返回上級目錄,己經(jīng)力恨目錄!WT:cd .己經(jīng)為根目杲!UP;cd a目錄I、不存在名熾的文件或目最.或老X為文件.尢法咗入! WP : i-echo a.WF:cd a目錄1、不徉在名為a的文件或目錄,或老&為文件,尢袪哎人!UP;nd lunWP:cd loffWP: logrnid lof2WP: logcd. luc|2WP: MalDg2cd WP: Xlo grc A logSWF: UaiogZ
20、cd UP: 圖:cd命令展示7.dir命令展示:E 2814.01 陽 1Einulate P i Lt ysltDn ( 蔗霰所有UP奚影.保留所有楓利UP=dlr攻目錄為空目錄目錄F無內(nèi)吝! hp:nd 豪W:ecba hifr = airBi::韓麴:翳教育資料圖:dir命令展示8.typ命令展示:圖:typ命令展示9.ren命令展示:圖:ren命令展示10.wrt命令展示:圖:wrt命令展示說明:此處為了實驗方便,將磁盤大小限定為5,每塊磁盤輸入的字符數(shù)限 2,輸入的內(nèi)容112233445566778899需要9塊磁盤塊,而磁盤塊為 5,根目錄占用一塊,只能輸入 4 塊大小的內(nèi)容,即
21、 11223344,所有文件file 只寫入了 11223344 。圖:wrt動態(tài)增長展示11. mem命令展示:圖:mem命令展示12. cls 命令展示:File gvwtdE C 41? 2Ci4.01.093肪,權(quán)所啟 皿恥 攤總a櫟暫出有取利“U?s iftcR!-*9具它數(shù)宇乳下辿前總宀腮理盤爆的實驗情兄”伸代衣可皿代衷粧占用且為豐文竹抉 二袞一堤田號址下和-3 -9? -99 -9*9 -99 一呼尊 -99 -99-? -9 -99 一騎? -fl9 一護(hù) -? -99 -99 一呼WPz、r工 ho f If:UP 12vjit-t F :丄e= nr? s 5:aye xn
22、pLitlic 1 1ejmjv1IUP= ineil!電羹潯雛舞需的丈驗恃況.胡弋袁可用,7代鳶袍占用且曲末文件塊-3 2 3 4 5 二3 -99 -99-99 一孚孚-? -99 -?-乎9 -? 一辛-9? -#P -99WP:a不是內(nèi)部或外部命專乜不是叫運(yùn)行的健I字或盤遜理文件,VPidf不罡內(nèi)制或外部命令.也不是可運(yùn)行的程序或烈處理文供,hip;cir1 di不杲內(nèi)苗或外評命令.也不杲可運(yùn)行的程序或枇處理丈件*up=drI迅廠不罡內(nèi)韶或外部帑令*也不是可運(yùn)行的程序或擔(dān)處理哀件。lfPd:砒不是內(nèi)部或外部命睜.也不是可運(yùn)行的衽序或擔(dān)處理文件。WP:clo圖:cls命令展示-1圖:cl
23、s命令展示-213. cp命令展示:說明:圖中根目錄( WP)下創(chuàng)建了目錄 a (mda)、目錄b (mdb),在a目錄下創(chuàng)建了 b目錄(md b),在b目錄中創(chuàng)建了文件 a(echo a)、目錄c(md c),文件a中輸入1111122222(wrt a 111112222)內(nèi)容代表占了兩塊物理盤塊 (程序中Msize模擬大小,設(shè)為5個字符了),再進(jìn) 入目錄c(cd c),c中先創(chuàng)建目錄f(md f)再創(chuàng)建文件g (與之前創(chuàng)建順序不同說明程序在不 同情況下能正常運(yùn)行),在g中輸入5個3,5個2,5個1(wrt g 333332222211111) 代表占 用3塊物理盤塊空間,再返回目錄a(c
24、d . cd .),將目錄a下的目錄b復(fù)制給目錄 WF下的目錄c(cp b WP:c),再將目錄a中的目錄b刪除(del b證明的確是復(fù)制而非簡單指針指 向),進(jìn)入WF下的目錄c查看剛復(fù)制的內(nèi)容(dir)。物理盤塊使用情況中第一個-3為根目錄占用,第二個-3是目錄a,第三個-3是目錄c,接下來的8個-99是目錄a中原目錄b占用 的空間(此處證明刪除是可靠的),圖中顯示目錄c中確實成功復(fù)制了目錄b及目錄下的所有內(nèi)容(使用dir命令查看)。continueS lnuilciL 眼權(quán)所荷占月第;塊物理盤塊代表披占用且為未文何決,其它數(shù)字靄霰霹吧黯理盤塊卜也杏自如丫 keyFile Svscen261
25、4,01.051天彭.帰雷琳有權(quán)刑.2814.01.09 1Fcd a a md b acd b XaJbcc;liWTt a 111112222Xa Jbnfd XahCnd f hxc!ecFo aMJbwrt 卻 333332222211111 Xflhnrirt oSbcd xanp h VF;j: adBl b Xacrt cdl ccdli*艮茗;b京件換型.目錄f; r- e.(-5l;tmF r yi:eDeb-yFilc_m.ffxe14.exit 命令展示圖:cp命令展示.Fil鼻-S/stpbtV F IQjSystFE;D?cugFie_Sy5rehcii以衛(wèi)為前汕個物理盤疑乾實驗情況,-艸代表可網(wǎng)T代表被占用目為末文件塊,甚它數(shù)字 代叢下一塊的尋址下樁-3 -99 -3 79 Tq -a -99 T9 T9 -99-9? -99 -即 T9 -99 -99 T9
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境電商建站平臺
- 智能家居 系統(tǒng)
- 市場競爭對手分析數(shù)據(jù)表
- 智能制造技術(shù)生產(chǎn)流水線操作手冊
- 三農(nóng)村公共服務(wù)智能化提升方案
- 交通物流行業(yè)綠色運(yùn)輸策略方案
- 物流行業(yè)無人配送技術(shù)推廣方案
- 附件3醫(yī)院護(hù)類人員年終理論考試500題練習(xí)卷附答案
- 鄉(xiāng)村綠化美化服務(wù)方案
- 三農(nóng)產(chǎn)品電商助力農(nóng)業(yè)新興業(yè)態(tài)培育與發(fā)展方案
- 2024北京海淀區(qū)初三一模物理試題及參考答案
- 裝飾畫教學(xué)課件
- 工余安健環(huán)管理標(biāo)準(zhǔn)
- 附件1:腫瘤防治中心評審實施細(xì)則2024年修訂版
- 2024-2030年中國自動自攻鉚釘行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- DL∕T 868-2014 焊接工藝評定規(guī)程
- 2024年北京中考語文試題及答案
- 幼兒園足球課程實施方案(18篇)
- 【地理】河南省洛陽市強(qiáng)基聯(lián)盟2023-2024學(xué)年高一下學(xué)期3月聯(lián)考試題(解析版)
- 2024屆上海市嘉定區(qū)高三語文一模試卷(含答案與解析)
- 呼吸衰竭課件新課件
評論
0/150
提交評論