資源描述:
《操作系統(tǒng)課程設(shè)計報告二級文件系統(tǒng) java》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、操作系統(tǒng)課程設(shè)計報告題目:為Linux系統(tǒng)設(shè)計一個簡單的二級文件系統(tǒng)指導(dǎo)老師:翟一鳴時間:2012.8.30一課程設(shè)計的目的課程設(shè)計目的使學(xué)生熟悉文件管理系統(tǒng)的設(shè)計方法;加深對所學(xué)各種文件操作的了解及其操作方法的特點。通過模擬文件系統(tǒng)的實現(xiàn),深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識,加深對教材中的重要算法的理解。同時通過編程實現(xiàn)這些算法,更好地掌握操作系統(tǒng)的原理及實現(xiàn)方法,提高綜合運用各專業(yè)課知識的能力。二課程設(shè)計的要求1.可以實現(xiàn)下列幾條命令:login用戶登錄dir列目錄create創(chuàng)建文件delete刪除文件open打開
2、文件close關(guān)閉文件read讀文件write寫文件2.列目錄時要列出文件名,物理地址,保護碼和文件長度3.源文件可以進行讀寫保護三算法設(shè)計本次二級文件系統(tǒng)主要分為五大模塊,分別是用戶登錄模塊、新建目錄模塊、新建文件模塊、刪除文件模塊和讀取文件模塊。用戶登錄成功后才可以進行其他模塊的操作。1用戶登錄模塊用戶登錄模塊要求用戶輸入用戶,當(dāng)輸入正確后才能進行其他模塊操作,否則提示用戶名不存在并詢問用戶是否用此名進行注冊。若用戶名未滿,則提示注冊成功,否則提示用現(xiàn)有注冊用戶,進行登錄,并返回到登錄界面。用戶登錄模塊流程圖如圖1所示
3、。開始輸入login命令否輸入用戶名是否注冊用戶是否存在是否是進行其他模塊圖1用戶登錄模塊流程圖2新建文件模塊新建文件模塊是在用戶出入create指令后進行的,進入后會要求用戶輸入文件名,并判斷文件名是否存在,若沒有則在要求用戶輸入文件讀寫權(quán)限,否則重新輸入新的文件名。新建文件模塊流程圖如圖2所示。開始輸入create命令輸入文件名文件名是否存在是否輸入權(quán)限圖2新建文件流程圖3刪除文件模塊開始刪除文件模塊是根據(jù)用戶鼠標(biāo)右擊時選擇到的節(jié)點來確定要刪除節(jié)點的名字與路徑,然后判斷該節(jié)點是目錄還是文件。若是文件則直接刪除文件,若是
4、目錄則進入該目錄再刪除其全部文件。刪除文件模塊流程圖如圖4所示。輸如open文件名提示無此文件文件名是否存在否輸入權(quán)限是圖4刪除文件模塊流程圖4讀取文件模塊開始讀取文件模塊,要求用戶要在文件打開的前提下,將磁盤中的內(nèi)容讀取到內(nèi)存中。讀取文件流程圖如圖5所示。Open文件輸如read文件名文件是否存在是提示文件未打開文件是否已打開否顯示文件內(nèi)容圖5讀取文件模塊流程圖5寫入文件模塊寫入文件模塊,思路與讀取文件模塊將本相同,只是添加了對讀寫權(quán)限的判斷。6遍歷文件遍歷文件,根據(jù)在用戶登陸時,記錄的值,在二維數(shù)組中,找到用戶的所有文
5、件對象,將相應(yīng)的必須屬性全部打印出來。四程序源代碼1.文件對象相關(guān)代碼packagecom.file;importjava.io.Serializable;publicclassFileProimplementsSerializable{Stringfilename;Stringcontent;Stringusername;intflag;intprotect;publicFilePro(Stringfilename,Stringusername,Stringcontent,intflag,intprotect){this
6、.filename=filename;this.username=username;this.content=content;this.flag=flag;this.protect=protect;}}2.文件讀寫操作packagecom.file;importjava.io.*;importjava.util.*;publicclassFileCon{Object[][]data=newObject[7][100];ObjectInputStreamin=null;ObjectOutputStreamout=null;S
7、tringpath="D:\file";publicFileCon(){for(inti=0;i<7;i++)for(intj=0;j<100;j++){data[i][j]=newFilePro("",null,"",1,0);}}publicObject[][]readData(){try{in=newObjectInputStream(newBufferedInputStream(newFileInputStream(path)));data=(Object[][])in.readObject();}catch(E
8、OFExceptione){}catch(Exceptione){}returndata;}publicvoidwriteData(Object[][]data){try{out=newObjectOutputStream(newBufferedOutputStream(newFileOutputStr