歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

操作系統(tǒng)課程設(shè)計(jì)報(bào)告二級文件系統(tǒng)java.doc

  • 資源ID:8898903       資源大?。?span id="qdvt6e6" class="font-tahoma">104KB        全文頁數(shù):13頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

操作系統(tǒng)課程設(shè)計(jì)報(bào)告二級文件系統(tǒng)java.doc

操作系統(tǒng)課程設(shè)計(jì)報(bào)告題目: 為Linux系統(tǒng)設(shè)計(jì)一個(gè)簡單的二級文件系統(tǒng) 指導(dǎo)老師:翟一鳴 時(shí)間:2012.8.30一 課程設(shè)計(jì)的目的課程設(shè)計(jì)目的使學(xué)生熟悉文件管理系統(tǒng)的設(shè)計(jì)方法;加深對所學(xué)各種文件操作的了解及其操作方法的特點(diǎn)。通過模擬文件系統(tǒng)的實(shí)現(xiàn),深入理解操作系統(tǒng)中文件系統(tǒng)的理論知識(shí), 加深對教材中的重要算法的理解。同時(shí)通過編程實(shí)現(xiàn)這些算法,更好地掌握操作系統(tǒng)的原理及實(shí)現(xiàn)方法,提高綜合運(yùn)用各專業(yè)課知識(shí)的能力。二 課程設(shè)計(jì)的要求 1.可以實(shí)現(xiàn)下列幾條命令:login 用戶登錄dir 列目錄create 創(chuàng)建文件delete 刪除文件open 打開文件close 關(guān)閉文件read 讀文件write 寫文件2列目錄時(shí)要列出文件名,物理地址,保護(hù)碼和文件長度3源文件可以進(jìn)行讀寫保護(hù)三 算法設(shè)計(jì)本次二級文件系統(tǒng)主要分為五大模塊,分別是用戶登錄模塊、新建目錄模塊、新建文件模塊、刪除文件模塊和讀取文件模塊。用戶登錄成功后才可以進(jìn)行其他模塊的操作。1 用戶登錄模塊 用戶登錄模塊要求用戶輸入用戶,當(dāng)輸入正確后才能進(jìn)行其他模塊操作,否則提示用戶名不存在并詢問用戶是否用此名進(jìn)行注冊。若用戶名未滿,則提示注冊成功,否則提示用現(xiàn)有注冊用戶,進(jìn)行登錄,并返回到登錄界面。用戶登錄模塊流程圖如圖1所示。開始 輸入login命令 否輸入用戶名是否注冊用戶是否存在 是 否 是進(jìn)行其他模塊圖1 用戶登錄模塊流程圖2新建文件模塊新建文件模塊是在用戶出入create指令后進(jìn)行的,進(jìn)入后會(huì)要求用戶輸入文件名,并判斷文件名是否存在,若沒有則在要求用戶輸入文件讀寫權(quán)限,否則重新輸入新的文件名。新建文件模塊流程圖如圖2所示。開始 輸入create命令 輸入文件名文件名是否存在 是 否輸入權(quán)限圖2 新建文件流程圖3 刪除文件模塊開始刪除文件模塊是根據(jù)用戶鼠標(biāo)右擊時(shí)選擇到的節(jié)點(diǎn)來確定要?jiǎng)h除節(jié)點(diǎn)的名字與路徑,然后判斷該節(jié)點(diǎn)是目錄還是文件。若是文件則直接刪除文件,若是目錄則進(jìn)入該目錄再刪除其全部文件。刪除文件模塊流程圖如圖4所示。 輸如open 文件名 提示無此文件文件名是否存在 否 輸入權(quán)限 是圖4 刪除文件模塊流程圖4讀取文件模塊開始讀取文件模塊,要求用戶要在文件打開的前提下,將磁盤中的內(nèi)容讀取到內(nèi)存中。讀取文件流程圖如圖5所示。 Open 文件 輸如read 文件名 文件是否存在 是 提示文件未打開文件是否已打開 否顯示文件內(nèi)容圖5 讀取文件模塊流程圖5 寫入文件模塊 寫入文件模塊,思路與讀取文件模塊將本相同,只是添加了對讀寫權(quán)限的判斷。6 遍歷文件遍歷文件,根據(jù)在用戶登陸時(shí),記錄的值,在二維數(shù)組中,找到用戶的所有文件對象,將相應(yīng)的必須屬性全部打印出來。四 程序源代碼1. 文件對象相關(guān)代碼 package com.file;import java.io.Serializable;public class FilePro implements SerializableString filename;String content;String username;int flag;int protect;public FilePro(String filename,String username,String content,int flag,int protect)this.filename = filename;this.username = username;this.content = content;this.flag = flag;this.protect = protect;2. 文件讀寫操作 package com.file;import java.io.*;import java.util.*;public class FileCon Object data = new Object7100;ObjectInputStream in = null;ObjectOutputStream out = null;String path = "D:file"public FileCon()for(int i = 0;i<7;i+)for(int j = 0;j<100;j+)dataij = new FilePro("",null,"",1,0);public Object readData()try in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path);data = (Object) in.readObject(); catch(EOFException e) catch (Exception e) return data;public void writeData(Object data)try out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path);out.writeObject(data);out.flush(); catch (Exception e) e.printStackTrace(); 3.用戶名操作public class UserCon List<String> list = new ArrayList<String>();ObjectInputStream in = null;ObjectOutputStream out = null;String path = "D:user"public List<String> readUser()try in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path);list = (List<String>) in.readObject(); catch(EOFException e) catch (Exception e) return list;public void writeUser(List<String> list)try out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path);out.writeObject(list);out.flush(); catch (Exception e) e.printStackTrace(); 4.主程序package com.file;import java.util.*;public class FileSystem Object data = new Object7100;FileCon fc = new FileCon();List<String> user = new ArrayList<String>();UserCon uc = new UserCon();String cmd = new String2;int currentuser = 0;public FileSystem() data = fc.readData();user = uc.readUser();public static void main(String args) FileSystem fs = new FileSystem();fs.help();public void help() System.out.println("歡迎使用該文件系統(tǒng)");System.out.print("create ");System.out.println("創(chuàng)建文件");System.out.print("dir ");System.out.println("列目錄文件");System.out.println("exit 退出系統(tǒng)");System.out.println("以下命令需加文件名");System.out.println("eg:open *");System.out.print("open ");System.out.println("打開文件");System.out.print("close ");System.out.println("關(guān)閉文件");System.out.print("read ");System.out.println("讀文件");System.out.print("write ");System.out.println("寫文件");System.out.print("delete ");System.out.println("刪除文件");command();public void command() System.out.print("root:>");String comd = null;Scanner input = input = new Scanner(System.in);comd = input.nextLine();String cmd = new String2;cmd = comd.split(" ");if (cmd0.equals("login")login();else if (cmd0.equals("create")create();else if (cmd0.equals("dir")dir();else if (cmd0.equals("delete")delete(cmd1);else if (cmd0.equals("open")open(cmd1);else if (cmd0.equals("close")close(cmd1);else if (cmd0.equals("read")read(cmd1);else if (cmd0.equals("write")write(cmd1);else if (cmd0.equals("exit")System.out.println("退出系統(tǒng)!"); System.exit(0);else System.out.println("指令錯(cuò)誤!");command();public void login() boolean f = false;System.out.println("請輸入用戶名:");Scanner input = input = new Scanner(System.in);String username = input.next();for (int i = 0; i < user.size(); i+) if (user.get(i).equals(username) System.out.println("登陸成功!");currentuser = i;f = true;break;if (!f) System.out.println("該用戶不存在,是否以此用戶名注冊?y注冊,其他返回");String cho = input.next();if (cho.equals("y") if (user.size() = 7)System.out.println("對不起用戶已滿,請利用其他已注冊賬戶登錄");else user.add(username);uc.writeUser(user);System.out.println("注冊成功!請重新登錄");login();command();/ 目錄public void dir() System.out.println("文件名t" + "用戶名t" + "物理地址t" + "保護(hù)碼t" + "文件長度");for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (!fp1.filename.equals("")System.out.println(fp1.filename + "t" + fp1.username + "t"+ currentuser + i + "t" + fp1.protect + "t"+ fp1.content.length();command();/ 創(chuàng)建文件public void create() Scanner input = input = new Scanner(System.in);boolean f = true;boolean fl = false;String filename = null;dofl = false; System.out.print("請輸入文加名:"); filename = input.next();for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(filename) System.out.println("文件已存在!");fl = true;break;while(fl);System.out.print("請輸入權(quán)限:");int protect = input.nextInt();FilePro fp = new FilePro(filename, user.get(currentuser), "", 1,protect);for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals("") datacurrentuseri = fp;fc.writeData(data);System.out.println("創(chuàng)建成功!");f = false;break;if (f) System.out.println("磁盤已滿");command();/ 刪除文件public void delete(String file) boolean f = true;for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(file) fp1.filename = ""fp1.content = null;fp1.flag = 1;fp1.username = null;fc.writeData(data);System.out.println("刪除成功!");f = false;break;if (f) System.out.println("無此文件");command();/ 打開文件public void open(String file) boolean f = true;for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(file) if (fp1.flag = 0)System.out.println("文件已打開!");else fp1.flag = 0;System.out.println("文件打開成功!");f = false;break;if (f) System.out.println("無此文件");command();/ 關(guān)閉文件public void close(String file) boolean f = true;for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(file) if (fp1.flag = 1)System.out.println("文件未打開!");else fp1.flag = 1;System.out.println("文件關(guān)閉成功!");f = false;break;if (f) System.out.println("無此文件");command();/ 讀文件public void read(String file) boolean f = true;for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(file) if (fp1.flag = 1)System.out.println("文件未打開!請先將文件打開!");else System.out.println(fp1.content);f = false;break;if (f) System.out.println("無此文件");command();/ 寫文件public void write(String file) Scanner input = input = new Scanner(System.in);boolean f = true;for (int i = 0; i < 100; i+) FilePro fp1 = (FilePro) datacurrentuseri;if (fp1.filename.equals(file) if (fp1.flag = 1)System.out.println("文件未打開!請先將文件打開!");else if (fp1.protect != 0)System.out.println("對不起,您沒有寫入的權(quán)限!");else System.out.println("請輸入要寫入的內(nèi)容:");String ss = input.next();fp1.content = fp1.content + ss;fc.writeData(data);System.out.println("寫入成功");f = false;break;if (f) System.out.println("無此文件");command();五 程序運(yùn)行截圖六 心得體會(huì) 對于本次操作系統(tǒng)課程設(shè),由于對二級文件的內(nèi)容比較陌生,剛起步階段花了很大時(shí)間去思考,但是仍然還是比較模糊。當(dāng)完成設(shè)計(jì)時(shí),感覺還是不是太了解,總感覺得到的和要求的有些差別,不過對二級文件系統(tǒng)也有了進(jìn)一步的了解,并且還對操作系統(tǒng)應(yīng)用有了更深入的認(rèn)識(shí)。總體來說,這次課程下來,發(fā)現(xiàn)自己的,語言基礎(chǔ)掌握的一點(diǎn)也不好,讓我遇到了許多的問題。

注意事項(xiàng)

本文(操作系統(tǒng)課程設(shè)計(jì)報(bào)告二級文件系統(tǒng)java.doc)為本站會(huì)員(jian****018)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!