




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE操作系統(tǒng)課程設(shè)計(jì)
模擬文件管理系統(tǒng)一、實(shí)驗(yàn)內(nèi)容基本要求:編寫一程序,模擬一個簡單的文件管理系統(tǒng)。樹型結(jié)構(gòu),目錄下可以是目錄,也可以是文件。在此文件管理系統(tǒng),可實(shí)現(xiàn)的操作有:改變目錄:格式:cd<目錄名>顯示目錄:格式:dir[<目錄名>]創(chuàng)建目錄:格式:md<目錄名>刪除目錄:格式:rd<目錄名>新建文件:格式:edit<文件名>刪除文件:格式:del<文件名>退出文件系統(tǒng):exit目錄名和文件名支持全路徑名和相對路徑名,路徑名各分量間用“/”隔開功能具體描述:改變目錄:改變當(dāng)前工作目錄,目錄不存在是給出出錯信息顯示目錄:顯示指定目錄下或當(dāng)前目錄下所有文件和一級目錄(選做:帶/s參數(shù)的dir命令,顯示所有子目錄)創(chuàng)建目錄:在指定路徑或當(dāng)前路徑下創(chuàng)建指定目錄。重名時給出出錯信息。刪除目錄:刪除指定目錄下所有文件和子目錄。要刪目錄不空時,要給出提示是否要刪除。創(chuàng)建文件:創(chuàng)建指定名字的文件,只要創(chuàng)建表示文件的節(jié)點(diǎn)即可,內(nèi)容及大小不考慮。刪除文件:刪除指定文件,不存在時給出出錯信息。退出文件系統(tǒng):exit總體流程:初始化文件目錄輸出提示符,等待接受命令,分析鍵入的命令;對合法的命令,執(zhí)行相應(yīng)的處理程序,否則輸出錯誤信息,繼續(xù)等待新命令。直到鍵入exit退出為止。二、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)StructFileNode{Charfilename[FILENAME_LEN];//文件名/目錄名Intisdir;//目錄、文件的識別標(biāo)志Inti_nlink;//文件鏈接數(shù)Intadr;//文件的地址StructFileNode*parent,*child;//指向父親的指針和左孩子的指針StructFileNode*sibling_prev,*sibling_next;//指向前一個兄弟的指針和后一個兄弟的指針。}三、算法設(shè)計(jì)3.1功能模塊圖3.2算法思路3.2.1boolspile(char*str,char*cmdstr,char*filestr);//切割字符串boolshell(char*str); //用來解釋命令boolerrorp(intid); //打印錯誤提示boolboot(); //啟動初始化filenode*find(char*str,filenode*_root); //遞歸對目錄樹進(jìn)行查找boolcdexc(char*str); //執(zhí)行cd命令booldirexc(char*str); //執(zhí)行dir命令boolmdexc(char*str); //執(zhí)行md命令booleditexc(char*str); //執(zhí)行edit命令booldelexc(char*str,filenode*fcur,boolmode,booldir); //執(zhí)行del命令boolexitexc(); //退出filenode*createnode(char*str,bool_isdir,int_adr,filenode*_par);//新建對象節(jié)點(diǎn) 函數(shù)調(diào)用圖3.2.2設(shè)計(jì)思想建立一刻目錄樹,根據(jù)輸入的命令字符串,對該目錄樹進(jìn)行增刪等操作。(1)定義全局變量filenode*cur=NULL; //指向當(dāng)前目錄節(jié)點(diǎn)filenode*root=NULL; //指向根節(jié)點(diǎn)目錄節(jié)點(diǎn)char*shellstr[7]={"cd","dir","md","rd","edit","del","exit"};//命令字符串intshelllen=7; //命令的字符串的長度(2)主函數(shù)模塊調(diào)用boot模塊初始化,然后使用while循環(huán),每次循環(huán)中用戶可以輸入命令字符串,調(diào)用shell模塊進(jìn)行解釋并執(zhí)行操作,執(zhí)行完成后再次進(jìn)入循環(huán),直到用戶使用exit退出。(3)其他模塊說明(用文字描述,不要代碼) 刪除模塊:調(diào)用find函數(shù)查找到目錄節(jié)點(diǎn),然后進(jìn)行刪除節(jié)點(diǎn)操作,并注意特殊情況。新建目錄/文件模塊:通過調(diào)用find查找是否重復(fù),若不重復(fù)就進(jìn)行增加節(jié)點(diǎn)。切換目錄模塊:通過find函數(shù)找到節(jié)點(diǎn),然后將cur指針指向該節(jié)點(diǎn)。顯示目錄模塊:通過find函數(shù)找到節(jié)點(diǎn),循環(huán)遍歷該節(jié)點(diǎn)顯示。退出模塊:執(zhí)行exit函數(shù)。
四、測試數(shù)據(jù)及程序運(yùn)行情況
五、實(shí)驗(yàn)過程中出現(xiàn)的問題及解決方法判斷路徑需要識別全路徑與相對路徑,解決方法,通過對符號“/”的查找,分四種情況。刪除當(dāng)前目錄或其父目錄會造成cur亂指,解決方法,刪除前先判斷,如果出現(xiàn)這種情況就重新設(shè)置cur。遞歸刪除子目錄,若子目錄非空,會彈出警告,解決方法,設(shè)置安靜模式,用于遞歸刪除。六、自我評析與總結(jié)通過本次課程設(shè)計(jì),我認(rèn)真了解了系統(tǒng)中目錄的工作原理,以及他所采用的數(shù)據(jù)結(jié)構(gòu)原理,讓我對操作系統(tǒng)有了更深的體會。七、參考
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分紅股合作合同范本
- 公司建材購銷合同范本
- 車輛運(yùn)輸肉類合同范本
- 供貨合同范本范文
- 養(yǎng)殖股東協(xié)議合同范本
- 華為購車合同范本
- 區(qū)代理商合同范本
- 儲料倉合同范本
- 制作標(biāo)識標(biāo)牌合同范本
- 合理借款合同范例
- 移動商務(wù)基礎(chǔ)(吳洪貴)課件 第二章 探秘移動技術(shù)
- 動畫劇本創(chuàng)作課件
- 【企業(yè)會計(jì)信息化存在的問題及解決對策開題報告】
- 痘痘肌膚的各種類型
- (完整版)設(shè)計(jì)管理
- 中國嚴(yán)重膿毒癥膿毒性休克治療指南2023年
- 材料性能學(xué)(第2版)付華課件0-緒論-材料性能學(xué)
- GB/T 3403.2-2013塑料粉狀脲-甲醛和脲/三聚氰胺-甲醛模塑料(UF-和UF/MF-PMCs)第2部分:試樣制備和性能測定
- GB/T 21835-2008焊接鋼管尺寸及單位長度重量
- 2023年湖南省普通高中學(xué)業(yè)水平考試數(shù)學(xué)版含答案
- 積極情緒的力量
評論
0/150
提交評論