![課程設(shè)計(jì)- Linux系統(tǒng)資源管理器_第1頁(yè)](http://file4.renrendoc.com/view11/M03/11/14/wKhkGWWyiF-ASSjiAAFjvc13USA851.jpg)
![課程設(shè)計(jì)- Linux系統(tǒng)資源管理器_第2頁(yè)](http://file4.renrendoc.com/view11/M03/11/14/wKhkGWWyiF-ASSjiAAFjvc13USA8512.jpg)
![課程設(shè)計(jì)- Linux系統(tǒng)資源管理器_第3頁(yè)](http://file4.renrendoc.com/view11/M03/11/14/wKhkGWWyiF-ASSjiAAFjvc13USA8513.jpg)
![課程設(shè)計(jì)- Linux系統(tǒng)資源管理器_第4頁(yè)](http://file4.renrendoc.com/view11/M03/11/14/wKhkGWWyiF-ASSjiAAFjvc13USA8514.jpg)
![課程設(shè)計(jì)- Linux系統(tǒng)資源管理器_第5頁(yè)](http://file4.renrendoc.com/view11/M03/11/14/wKhkGWWyiF-ASSjiAAFjvc13USA8515.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目:Linux系統(tǒng)資源管理器學(xué)院:計(jì)算機(jī)學(xué)院專(zhuān)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)01、02班課程設(shè)計(jì)指導(dǎo)教師評(píng)定成績(jī)表項(xiàng)目分值優(yōu)秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)評(píng)分參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)學(xué)習(xí)態(tài)度15學(xué)習(xí)態(tài)度認(rèn)真,科學(xué)作風(fēng)嚴(yán)謹(jǐn),嚴(yán)格保證設(shè)計(jì)時(shí)間并按任務(wù)書(shū)中規(guī)定的進(jìn)度開(kāi)展各項(xiàng)工作學(xué)習(xí)態(tài)度比較認(rèn)真,科學(xué)作風(fēng)良好,能按期圓滿完成任務(wù)書(shū)規(guī)定的任務(wù)學(xué)習(xí)態(tài)度尚好,遵守組織紀(jì)律,基本保證設(shè)計(jì)時(shí)間,按期完成各項(xiàng)工作學(xué)習(xí)態(tài)度尚可,能遵守組織紀(jì)律,能按期完成任務(wù)學(xué)習(xí)馬虎,紀(jì)律渙散,工作作風(fēng)不嚴(yán)謹(jǐn),不能保證設(shè)計(jì)時(shí)間和進(jìn)度技術(shù)水平與實(shí)際能力25設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確,有很強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)查閱能力強(qiáng)、引用合理、調(diào)查調(diào)研非常合理、可信設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有較強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)引用、調(diào)查調(diào)研比較合理、可信設(shè)計(jì)合理,理論分析與計(jì)算基本正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有一定的實(shí)際動(dòng)手能力,主要文獻(xiàn)引用、調(diào)查調(diào)研比較可信設(shè)計(jì)基本合理,理論分析與計(jì)算無(wú)大錯(cuò),實(shí)驗(yàn)數(shù)據(jù)無(wú)大錯(cuò)設(shè)計(jì)不合理,理論分析與計(jì)算有原則錯(cuò)誤,實(shí)驗(yàn)數(shù)據(jù)不可靠,實(shí)際動(dòng)手能力差,文獻(xiàn)引用、調(diào)查調(diào)研有較大的問(wèn)題創(chuàng)新10有重大改進(jìn)或獨(dú)特見(jiàn)解,有一定實(shí)用價(jià)值有較大改進(jìn)或新穎的見(jiàn)解,實(shí)用性尚可有一定改進(jìn)或新的見(jiàn)解有一定見(jiàn)解觀念陳舊論文(計(jì)算書(shū)、圖紙)撰寫(xiě)質(zhì)量50結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),層次清晰,語(yǔ)言準(zhǔn)確,文字流暢,完全符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙非常工整、清晰結(jié)構(gòu)合理,符合邏輯,文章層次分明,語(yǔ)言準(zhǔn)確,文字流暢,符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙工整、清晰結(jié)構(gòu)合理,層次較為分明,文理通順,基本達(dá)到規(guī)范化要求,書(shū)寫(xiě)比較工整;圖紙比較工整、清晰結(jié)構(gòu)基本合理,邏輯基本清楚,文字尚通順,勉強(qiáng)達(dá)到規(guī)范化要求;圖紙比較工整內(nèi)容空泛,結(jié)構(gòu)混亂,文字表達(dá)不清,錯(cuò)別字較多,達(dá)不到規(guī)范化要求;圖紙不工整或不清晰課程設(shè)計(jì)指導(dǎo)教師評(píng)定成績(jī)表學(xué)號(hào): 20124978姓名:王元斗 班級(jí):2012級(jí)計(jì)算機(jī)科學(xué)與技術(shù)02班項(xiàng)目分值優(yōu)秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)評(píng)分參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)學(xué)習(xí)態(tài)度15學(xué)習(xí)態(tài)度認(rèn)真,科學(xué)作風(fēng)嚴(yán)謹(jǐn),嚴(yán)格保證設(shè)計(jì)時(shí)間并按任務(wù)書(shū)中規(guī)定的進(jìn)度開(kāi)展各項(xiàng)工作學(xué)習(xí)態(tài)度比較認(rèn)真,科學(xué)作風(fēng)良好,能按期圓滿完成任務(wù)書(shū)規(guī)定的任務(wù)學(xué)習(xí)態(tài)度尚好,遵守組織紀(jì)律,基本保證設(shè)計(jì)時(shí)間,按期完成各項(xiàng)工作學(xué)習(xí)態(tài)度尚可,能遵守組織紀(jì)律,能按期完成任務(wù)學(xué)習(xí)馬虎,紀(jì)律渙散,工作作風(fēng)不嚴(yán)謹(jǐn),不能保證設(shè)計(jì)時(shí)間和進(jìn)度技術(shù)水平與實(shí)際能力25設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確,有很強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)查閱能力強(qiáng)、引用合理、調(diào)查調(diào)研非常合理、可信設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有較強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)引用、調(diào)查調(diào)研比較合理、可信設(shè)計(jì)合理,理論分析與計(jì)算基本正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有一定的實(shí)際動(dòng)手能力,主要文獻(xiàn)引用、調(diào)查調(diào)研比較可信設(shè)計(jì)基本合理,理論分析與計(jì)算無(wú)大錯(cuò),實(shí)驗(yàn)數(shù)據(jù)無(wú)大錯(cuò)設(shè)計(jì)不合理,理論分析與計(jì)算有原則錯(cuò)誤,實(shí)驗(yàn)數(shù)據(jù)不可靠,實(shí)際動(dòng)手能力差,文獻(xiàn)引用、調(diào)查調(diào)研有較大的問(wèn)題創(chuàng)新10有重大改進(jìn)或獨(dú)特見(jiàn)解,有一定實(shí)用價(jià)值有較大改進(jìn)或新穎的見(jiàn)解,實(shí)用性尚可有一定改進(jìn)或新的見(jiàn)解有一定見(jiàn)解觀念陳舊論文(計(jì)算書(shū)、圖紙)撰寫(xiě)質(zhì)量50結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),層次清晰,語(yǔ)言準(zhǔn)確,文字流暢,完全符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙非常工整、清晰結(jié)構(gòu)合理,符合邏輯,文章層次分明,語(yǔ)言準(zhǔn)確,文字流暢,符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙工整、清晰結(jié)構(gòu)合理,層次較為分明,文理通順,基本達(dá)到規(guī)范化要求,書(shū)寫(xiě)比較工整;圖紙比較工整、清晰結(jié)構(gòu)基本合理,邏輯基本清楚,文字尚通順,勉強(qiáng)達(dá)到規(guī)范化要求;圖紙比較工整內(nèi)容空泛,結(jié)構(gòu)混亂,文字表達(dá)不清,錯(cuò)別字較多,達(dá)不到規(guī)范化要求;圖紙不工整或不清晰課程設(shè)計(jì)指導(dǎo)教師評(píng)定成績(jī)表學(xué)號(hào): 20124924 姓名:徐軍 班級(jí):2012級(jí)計(jì)算機(jī)科學(xué)與技術(shù)01班項(xiàng)目分值優(yōu)秀(100>x≥90)良好(90>x≥80)中等(80>x≥70)及格(70>x≥60)不及格(x<60)評(píng)分參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)參考標(biāo)準(zhǔn)學(xué)習(xí)態(tài)度15學(xué)習(xí)態(tài)度認(rèn)真,科學(xué)作風(fēng)嚴(yán)謹(jǐn),嚴(yán)格保證設(shè)計(jì)時(shí)間并按任務(wù)書(shū)中規(guī)定的進(jìn)度開(kāi)展各項(xiàng)工作學(xué)習(xí)態(tài)度比較認(rèn)真,科學(xué)作風(fēng)良好,能按期圓滿完成任務(wù)書(shū)規(guī)定的任務(wù)學(xué)習(xí)態(tài)度尚好,遵守組織紀(jì)律,基本保證設(shè)計(jì)時(shí)間,按期完成各項(xiàng)工作學(xué)習(xí)態(tài)度尚可,能遵守組織紀(jì)律,能按期完成任務(wù)學(xué)習(xí)馬虎,紀(jì)律渙散,工作作風(fēng)不嚴(yán)謹(jǐn),不能保證設(shè)計(jì)時(shí)間和進(jìn)度技術(shù)水平與實(shí)際能力25設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)準(zhǔn)確,有很強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)查閱能力強(qiáng)、引用合理、調(diào)查調(diào)研非常合理、可信設(shè)計(jì)合理、理論分析與計(jì)算正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有較強(qiáng)的實(shí)際動(dòng)手能力、經(jīng)濟(jì)分析能力和計(jì)算機(jī)應(yīng)用能力,文獻(xiàn)引用、調(diào)查調(diào)研比較合理、可信設(shè)計(jì)合理,理論分析與計(jì)算基本正確,實(shí)驗(yàn)數(shù)據(jù)比較準(zhǔn)確,有一定的實(shí)際動(dòng)手能力,主要文獻(xiàn)引用、調(diào)查調(diào)研比較可信設(shè)計(jì)基本合理,理論分析與計(jì)算無(wú)大錯(cuò),實(shí)驗(yàn)數(shù)據(jù)無(wú)大錯(cuò)設(shè)計(jì)不合理,理論分析與計(jì)算有原則錯(cuò)誤,實(shí)驗(yàn)數(shù)據(jù)不可靠,實(shí)際動(dòng)手能力差,文獻(xiàn)引用、調(diào)查調(diào)研有較大的問(wèn)題創(chuàng)新10有重大改進(jìn)或獨(dú)特見(jiàn)解,有一定實(shí)用價(jià)值有較大改進(jìn)或新穎的見(jiàn)解,實(shí)用性尚可有一定改進(jìn)或新的見(jiàn)解有一定見(jiàn)解觀念陳舊論文(計(jì)算書(shū)、圖紙)撰寫(xiě)質(zhì)量50結(jié)構(gòu)嚴(yán)謹(jǐn),邏輯性強(qiáng),層次清晰,語(yǔ)言準(zhǔn)確,文字流暢,完全符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙非常工整、清晰結(jié)構(gòu)合理,符合邏輯,文章層次分明,語(yǔ)言準(zhǔn)確,文字流暢,符合規(guī)范化要求,書(shū)寫(xiě)工整或用計(jì)算機(jī)打印成文;圖紙工整、清晰結(jié)構(gòu)合理,層次較為分明,文理通順,基本達(dá)到規(guī)范化要求,書(shū)寫(xiě)比較工整;圖紙比較工整、清晰結(jié)構(gòu)基本合理,邏輯基本清楚,文字尚通順,勉強(qiáng)達(dá)到規(guī)范化要求;圖紙比較工整內(nèi)容空泛,結(jié)構(gòu)混亂,文字表達(dá)不清,錯(cuò)別字較多,達(dá)不到規(guī)范化要求;圖紙不工整或不清晰指導(dǎo)教師評(píng)定成績(jī):指導(dǎo)教師簽名:年月日重慶大學(xué)本科學(xué)生課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)題目 Linux資源管理器學(xué)院 計(jì)算機(jī)學(xué)院專(zhuān)業(yè)計(jì)算機(jī)科學(xué)與技術(shù)年級(jí)2012級(jí)已知參數(shù)和設(shè)計(jì)要求:開(kāi)發(fā)環(huán)境:Linux操作系統(tǒng)課程設(shè)計(jì)不限制使用工具,推薦用java。附件是課程設(shè)計(jì)所使用的eclipse版本及其安裝配置步驟,可以作為參考。 設(shè)計(jì)實(shí)現(xiàn)Linux操作系統(tǒng)資源管理器的功能:菜單顯示、圖標(biāo)顯示、右鍵菜單,實(shí)現(xiàn)軟件資源和數(shù)據(jù)資源的管理。學(xué)生應(yīng)完成的工作: 1.資源管理器樹(shù)形結(jié)構(gòu)的顯示。 2.菜單的顯示和操作。 3.文件夾的操作,新建、刪除、拷貝、移動(dòng)等。 4.文件的操作,新建、刪除、拷貝、移動(dòng)等。 5.參考Linux下的資源管理器。目前資料收集情況(含指定參考資料): 界面代碼設(shè)計(jì)參考資料:SwingHacks.課程設(shè)計(jì)的工作計(jì)劃: 3人自由組隊(duì),小組分工完成項(xiàng)目任務(wù)下達(dá)日期2014年12月22日完成日期2014年12月25日說(shuō)明:學(xué)院、專(zhuān)業(yè)、年級(jí)均填全稱,如:計(jì)算機(jī)學(xué)院、計(jì)算機(jī)科學(xué)與技術(shù)、2010。目錄TOC\o"2-3"\f\h\z\t"標(biāo)題,1"目錄 6引言 61需求分析 71.1功能需求分析 71.1.1平臺(tái)要求 71.1.2系統(tǒng)用例圖 71.1.3應(yīng)用程序?qū)哟螆D 82代碼設(shè)計(jì)與實(shí)現(xiàn) 92.1應(yīng)用程序設(shè)計(jì)概要 102.1.1接口設(shè)計(jì) 102.1.2后臺(tái)代碼設(shè)計(jì)及其實(shí)現(xiàn) 112.1.3數(shù)據(jù)字典 213代碼測(cè)試與調(diào)試 233.1用例測(cè)試 233.1.1后臺(tái)代碼測(cè)試及其解決 243.1.2界面代碼測(cè)試及調(diào)試結(jié)果 243.2應(yīng)用程序整體效果截圖 253.2.1應(yīng)用程序在Linux操作系統(tǒng)(ubuntu)下的運(yùn)行效果 253.2.2 應(yīng)用程序在win操作系統(tǒng)(windows7專(zhuān)業(yè)版)下的運(yùn)行效果 264課程設(shè)計(jì)總結(jié) 264.1小組成員分工及實(shí)際實(shí)現(xiàn)情況 264.2課程設(shè)計(jì)過(guò)程控制 274.3說(shuō)明 274.4小組總結(jié) 27 引言Linux是一種自由和開(kāi)放源代碼的類(lèi)UNIX操作系統(tǒng)。該操作系統(tǒng)的內(nèi)核由LinusTorvalds在1991年10月5日首次發(fā)布。Linux的基本思想有兩點(diǎn):第一,一切都是文件;第二,每個(gè)軟件都有確定的用途。其中第一條詳細(xì)來(lái)講就是系統(tǒng)中的所有都?xì)w結(jié)為一個(gè)文件,包括命令、硬件和軟件設(shè)備、操作系統(tǒng)、進(jìn)程等等對(duì)于操作系統(tǒng)內(nèi)核而言,都被視為擁有各自特性或類(lèi)型的文件。本次課程設(shè)計(jì)我們是基于eclipseIDE在Linux環(huán)境下實(shí)現(xiàn)一個(gè)形如“Linux資源管理器”的可視化應(yīng)用程序。本文參照軟件開(kāi)發(fā)過(guò)程中的“瀑布模型”——線形順序模型,按工序?qū)?wèn)題化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開(kāi),采取分工協(xié)作,即結(jié)構(gòu)化的分析與設(shè)計(jì)的方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。對(duì)于本次課程設(shè)計(jì),我們小組主要分兩階段完成,包括定義階段、開(kāi)發(fā)階段。為便于組織和管理,我們建立了甘特圖明確記錄小組成員的任務(wù)分配及各成員執(zhí)行任務(wù)的進(jìn)度情況。1需求分析參照2012級(jí)操作系統(tǒng)課程設(shè)計(jì)任務(wù)書(shū)的要求,我們小組選擇“Linux操作系統(tǒng)資源管理器”作為本次課程設(shè)計(jì)的任務(wù)。課程設(shè)計(jì)的最終結(jié)果包括“Linux操作系統(tǒng)資源管理器”應(yīng)用程序及操作課程設(shè)計(jì)報(bào)告。1.1功能需求分析在課程設(shè)計(jì)實(shí)驗(yàn)正式開(kāi)始之前,我們小組在詳細(xì)閱讀課程設(shè)計(jì)任務(wù)書(shū)之后,經(jīng)過(guò)小組成員地討論,最終確定了應(yīng)用程序的功能及實(shí)現(xiàn)目標(biāo)。以下是我們小組的設(shè)計(jì)概要及規(guī)格說(shuō)明。1.1.1平臺(tái)要求盡管基于Java語(yǔ)言開(kāi)發(fā)的應(yīng)用程序是跨平臺(tái)的,但是應(yīng)課程設(shè)計(jì)實(shí)驗(yàn)要求,我們的應(yīng)用程序的開(kāi)發(fā)環(huán)境還是首選的Linux系統(tǒng)(ubuntu)。 開(kāi)發(fā)環(huán)境:Linux系統(tǒng)開(kāi)發(fā)平臺(tái)、Windows系統(tǒng)開(kāi)發(fā)平臺(tái)。 適用范圍:WindowsAll、Linux(ubuntu)操作系統(tǒng)。1.1.2系統(tǒng)用例圖下圖形象化地描述了系統(tǒng)(應(yīng)用程序)需要實(shí)現(xiàn)的功能,及各功能之間的聯(lián)系。1.1.3應(yīng)用程序?qū)哟螆D我們對(duì)“Linux資源管理器”的目標(biāo)是完成上述所有的系統(tǒng)用例。為使提升應(yīng)用程序的完成效率,我們將應(yīng)用程序的實(shí)現(xiàn)劃分了層次:用戶界面層主要由做界面的人員負(fù)責(zé),主要完成“樹(shù)形結(jié)構(gòu)的顯示”、“右鍵菜單顯示”和“菜單功能”的實(shí)現(xiàn);應(yīng)用邏輯層和訪問(wèn)操作系統(tǒng)主要交由做后臺(tái)的人員完成;界面和后臺(tái)之間的參數(shù)傳遞主要由“公共接口”的調(diào)用實(shí)現(xiàn),如下圖所示。 2代碼設(shè)計(jì)與實(shí)現(xiàn)在完成詳盡的需求分析之后,我們開(kāi)始代碼的設(shè)計(jì)工作。首先,我們小組成員共同討論了應(yīng)用程序需要的接口;其次,負(fù)責(zé)寫(xiě)后臺(tái)的成員完成接口的實(shí)現(xiàn);負(fù)責(zé)界面的成員查找資料并負(fù)責(zé)將其實(shí)現(xiàn)。其中,小組中負(fù)責(zé)撰寫(xiě)文檔的成員應(yīng)時(shí)刻與程序員保持良好的溝通,使正確完成UML設(shè)計(jì)圖。2.1應(yīng)用程序設(shè)計(jì)概要在本階段,編寫(xiě)代碼的成員將實(shí)現(xiàn)接口的設(shè)計(jì)和各用例的邏輯實(shí)現(xiàn)。2.1.1接口設(shè)計(jì)下圖形象化的給出了接口的設(shè)計(jì)概況,明確了相關(guān)參量和返回值。說(shuō)明:“@para”表示接口的傳入?yún)?shù),包括參數(shù)名和參數(shù)類(lèi)型;“@return”表示接口的返回值類(lèi)型。2.1.2后臺(tái)代碼設(shè)計(jì)及其實(shí)現(xiàn)通過(guò)公共接口實(shí)現(xiàn)前端(界面)與后臺(tái)(應(yīng)用邏輯層)的交互 publicclassBackgroundRunnerimplementsCommInterface{ @Override publicbooleancreateFile(StringfileName){ Filefile=newFile(fileName); try{ returnfile.createNewFile(); }catch(IOExceptione){ e.printStackTrace(); } returnfalse; } @Override publicbooleandeleteFile(StringfileName){ Filefile=newFile(fileName); returnfile.delete(); } @Override publicbooleanrenameFile(StringfileName,StringnewName){ Filefile=newFile(fileName); returnfile.renameTo(newFile(newName)); } @Override publicbooleancopyFile(StringsrcName,StringdesName){ InputStreamin; OutputStreamout; //echo("copyfile:"+src+"->"+des+"."); try{ in=newFileInputStream(srcName); out=newFileOutputStream(desName); }catch(FileNotFoundExceptione1){ e1.printStackTrace(); returnfalse; } byteb[]=newbyte[1024*1024*5]; intlen; try{ len=in.read(b); while(len!=-1){ out.write(b,0,len); len=in.read(b); } }catch(IOExceptione){ e.printStackTrace(); returnfalse; } try{ in.close(); out.close(); }catch(IOExceptione){ e.printStackTrace(); returnfalse; } returntrue; } @Override publicbooleanmoveFile(StringsrcName,StringdesName){ Filefile=newFile(srcName); returnfile.renameTo(newFile(desName)); } @Override publicList<String>listFiles(StringdirName){ Filedir=newFile(dirName); Stringfiles[]=dir.list(); List<String>result=newArrayList<String>(); for(inti=0;i<files.length;i++){ Filefile=newFile(dir,files[i]); if(file.isFile()) result.add(files[i]); } returnresult; } @Override publicbooleancreateDir(StringdirName){ Filedir=newFile(dirName); returndir.mkdir(); } privateboolean_deleteDir(Filedir){ if(dir.isDirectory()){ String[]children=dir.list(); for(inti=0;i<children.length;i++){ booleansuccess=_deleteDir(newFile(dir,children[i])); if(!success){ returnfalse; } } } returndir.delete(); } @Override publicbooleandeleteDir(StringdirName){ return_deleteDir(newFile(dirName)); } @Override publicbooleanrenameDir(StringdirName,StringnewPathName){ Filedir=newFile(dirName); returndir.renameTo(newFile(newPathName)); } privateboolean_copyDir(FilesrcDir,StringdesDir){ if(srcDir.isDirectory()){ StringnewDir=desDir; Filef=newFile(newDir); if(!f.exists()||f.exists()&&!f.isDirectory()) if(!f.mkdirs()) returnfalse; String[]children=srcDir.list(); for(inti=0;i<children.length;i++){ booleansuccess=_copyDir(newFile(srcDir,children[i]), newDir+"/"+children[i]); if(!success){ returnfalse; } } returntrue; }elseif(srcDir.isFile()){ try{ returncopyFile(srcDir.getCanonicalPath(),desDir); }catch(IOExceptione){ e.printStackTrace(); returnfalse; } }else returnfalse; } @Override publicbooleancopyDir(StringsrcPathName,StringdesPathName){ return_copyDir(newFile(srcPathName),desPathName); } @Override publicbooleanmoveDir(StringsrcPathName,StringdesPathName){ Filedir=newFile(srcPathName); returndir.renameTo(newFile(desPathName)); } @Override publicList<String>listDirs(StringdirName){ Filedir=newFile(dirName); Stringfiles[]=dir.list(); List<String>result=newArrayList<String>(); for(inti=0;i<files.length;i++){ Filefile=newFile(dir,files[i]); if(file.isDirectory()) result.add(files[i]); } returnresult; }2.1.3界面代碼設(shè)計(jì)及其實(shí)現(xiàn)a.文件夾的“樹(shù)形結(jié)構(gòu)”顯示的關(guān)鍵代碼classFolderNodeimplementsDIY_FileSystem{ privatestaticFileSystemViewfsView; privatestaticbooleanshowHiden=true; privateFiletheFile; privateArrayList<File>both=newArrayList<File>(); privateArrayList<File>folder=newArrayList<File>(); publicvoidsetShowHiden(booleanifshow){ showHiden=ifshow; } publicStringtoString(){ returnfsView.getSystemDisplayName(theFile); } publicFolderNode(){ super(); fsView=FileSystemView.getFileSystemView(); theFile=fsView.getHomeDirectory(); prepareChildren(); } privatevoidprepareChildren(){ //TODOAuto-generatedmethodstub File[]files=fsView.getFiles(theFile,showHiden); for(inti=0;i<files.length;i++){ both.add(files[i]); if(files[i].isDirectory()&&!files[i].toString().toLowerCase().endsWith(".link")){ folder.add(files[i]); } } } publicFolderNode(FiletheFile){ super(); this.theFile=theFile; prepareChildren(); } @Override publicIcongetIcon(){ //TODOAuto-generatedmethodstub returnfsView.getSystemIcon(theFile); } @Override publicDIY_FileSystemgetChild(charfileType,intindex){ //TODOAuto-generatedmethodstub if(DIY_FileSystem.DIRECTORY==fileType){ returnnewFolderNode(folder.get(index)); }elseif(DIY_FileSystem.FILE==fileType){ returnnull; }elseif(DIY_FileSystem.BOTH==fileType){ returnnewFolderNode(both.get(index)); }else{ returnnull; } } @Override publicintgetChildCount(charfileType){ //TODOAuto-generatedmethodstub if(DIY_FileSystem.DIRECTORY==fileType){ returnfolder.size(); }elseif(DIY_FileSystem.FILE==fileType){ return-1; }elseif(DIY_FileSystem.BOTH==fileType){ returnboth.size(); }else{ return-1; } } @Override publicbooleanisLeaf(charfileType){ //TODOAuto-generatedmethodstub if(DIY_FileSystem.DIRECTORY==fileType){ returnfolder.size()==0; }elseif(DIY_FileSystem.FILE==fileType){ returntrue; }elseif(DIY_FileSystem.BOTH==fileType){ returnboth.size()==0; }else{ returntrue; } } @Override publicintgetIndexOfChild(charfileType,Objectchild){ //TODOAuto-generatedmethodstub if(childinstanceofFolderNode){ if(DIY_FileSystem.DIRECTORY==fileType){ returnfolder.indexOf(((FolderNode)child).theFile); }elseif(DIY_FileSystem.FILE==fileType){ return-1; }elseif(DIY_FileSystem.BOTH==fileType){ returnboth.indexOf(((FolderNode)child).theFile); }else{ return-1; } }else{ return-1; } } @Override publicStringgetPath(){ //TODOAuto-generatedmethodstub returntheFile.getAbsolutePath(); } @Override publicvoidfreshDir(){ //TODOAuto-generatedmethodstub both.clear(); folder.clear(); prepareChildren(); }} publicFileTree(){ super(); } privateFileListtheList; publicFileTree(FileListtheList){ super(); this.theList=theList; setModel(newFileSystemModel(newFolderNode())); this.setCellRenderer(newFolderRenderer()); addTreeSelectionListener(newTreeSelectionListener(){ @Override publicvoidvalueChanged(TreeSelectionEvente){ //TODOAuto-generatedmethodstub } }); this.setSelectionRow(0); } publicvoidfireValueChanged(TreeSelectionEventtse){ TreePathtmp=tse.getNewLeadSelectionPath(); Objecto=tmp.getLastPathComponent(); theList.fireTreeSelectionChanged((FolderNode)o); } publicvoidfireTreeCollapsed(TreePathpath){ super.fireTreeCollapsed(path); TreePathcurrentpath=getSelectionPath(); if(path.isDescendant(currentpath)){ setSelectionPath(path); } }b.單擊右鍵使彈出“右鍵菜單”的關(guān)鍵代碼publicclassRight_Click_MenuextendsJComponentimplementsMouseListener,MouseMotionListener{ /** *@authorjudiths00 *@referenceSwingHacks */ privatestaticfinallongserialVersionUID=1L; protectedJPopupMenupopup; protectedContainercontentPane; publicRight_Click_Menu(JPopupMenupopup,ContainercontentPane){ super(); addMouseListener(this); addMouseMotionListener(this); this.popup=popup; this.contentPane=contentPane; } publicvoidmouseMoved(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmouseDragged(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmouseClicked(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmouseEntered(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmouseExited(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmousePressed(MouseEvente){ redispatchMouseEvent(e,false); } publicvoidmouseReleased(MouseEvente){ redispatchMouseEvent(e,false); } protectedvoidredispatchMouseEvent(MouseEvente,booleanb){ //TODOAuto-generatedmethodstub if(e.isPopupTrigger()){ showPopup(e.getComponent(),e.getX(),e.getY()); }else{ doDispatch(e); } } protectedvoiddoDispatch(MouseEvente){ //TODOAuto-generatedmethodstub Componentcomponent=getRealComponent(e.getPoint()); if(component==null){ return; } PointcomponentPoint=SwingUtilities.convertPoint(this, e.getPoint(),component); component.dispatchEvent(newMouseEvent(component,e.getID(),e.getWhen(), e.getModifiers(),componentPoint.x,componentPoint.y, e.getClickCount(),e.isPopupTrigger())); } protectedComponentgetRealComponent(Pointpoint){ //TODOAuto-generatedmethodstub PointcontainerPoint=SwingUtilities.convertPoint(this,point,contentPane); Componentcomponent=SwingUtilities.getDeepestComponentAt(contentPane, containerPoint.x,containerPoint.y); returncomponent; } publicvoidshowPopup(Componentcomponent,intx,inty){ //TODOAuto-generatedmethodstub popup.show(component,x,y); }publicstaticvoidp(Stringstr){System.out.println(str); }}2.1.3數(shù)據(jù)字典0000用例名稱 功能描述輸入輸出createFile實(shí)現(xiàn)文件的創(chuàng)建。若文件路徑下存在同名文件,則不會(huì)重復(fù)創(chuàng)建文件文件絕對(duì)路徑1(文件創(chuàng)建成功)0(文件創(chuàng)建失?。?001用例名稱功能描述輸入輸出deleteFile實(shí)現(xiàn)指定文件的刪除文件絕對(duì)路徑1(文件刪除成功)0(文件刪除失敗)0010用例名稱功能描述輸入輸出moveFile實(shí)現(xiàn)文件的移動(dòng)。本質(zhì)是文件的復(fù)制源文件絕對(duì)路徑,目的文件絕對(duì)路徑1(文件移動(dòng)成功)0(文件移動(dòng)失敗)0011用例名稱功能描述輸入輸出renameFile實(shí)現(xiàn)文件的重命名。若路徑下文件不存在,則重命名失敗源文件絕對(duì)路徑,目的文件絕對(duì)路徑1(重命名成功)0(重命名失敗)0100用例名稱功能描述輸入輸出copyFile實(shí)現(xiàn)文件的拷貝源文件絕對(duì)路徑,目的文件絕對(duì)路徑1(文件拷貝成功)0(文件拷貝失敗)0101用例名稱功能描述輸入輸出listFiles僅羅列出當(dāng)前目錄(路徑下)所有的文件文件絕對(duì)路徑當(dāng)前路徑下的所有文件0110用例名稱功能描述輸入輸出createDir實(shí)現(xiàn)文件夾的創(chuàng)建(文件夾)絕對(duì)路徑1(文件夾創(chuàng)建成功)0(文件夾創(chuàng)建失?。?111用例名稱功能描述輸入輸出deleteDir實(shí)現(xiàn)文件夾根目錄的刪除(文件夾)絕對(duì)路徑1(文件夾刪除成功)0(文件夾刪除失敗)1000用例名稱功能描述輸入輸出renameDir實(shí)現(xiàn)文件夾重命名源文件夾的絕對(duì)路徑,目的文件夾的絕對(duì)路徑1(文件刪除成功)0(文件刪除失?。?001用例名稱功能描述輸入輸出copyDir實(shí)現(xiàn)將根目錄下所有文件或文件夾進(jìn)行拷貝源文件夾的絕對(duì)路徑,目的文件夾的絕對(duì)路徑1(文件夾拷貝成功)0(文件夾拷貝失敗)1010用例名稱功能描述輸入輸出moveDir實(shí)現(xiàn)文件夾的移動(dòng)源文件夾的絕對(duì)路徑,目的文件夾的絕對(duì)路徑1(文件夾移動(dòng)成功)0(文件夾移動(dòng)失敗)1011用例名稱功能描述輸入輸出listDir羅列出當(dāng)前路徑下的所有文件夾源文件夾的絕對(duì)路徑,目的文件夾的絕對(duì)路徑當(dāng)前路徑下的所有文件夾J000用例名稱功能描述屬性FileTree實(shí)現(xiàn)文件的樹(shù)形結(jié)構(gòu)的顯示OJ001用例名稱功能描述屬性FileList實(shí)現(xiàn)對(duì)文件的樹(shù)形結(jié)構(gòu)的響應(yīng)OJ010用例名稱功能描述屬性RightClickMenu實(shí)現(xiàn)在應(yīng)用程序窗口下任意位置點(diǎn)擊“右鍵”使創(chuàng)建功能菜單OJ011用例名稱功能描述屬性UIHelper實(shí)現(xiàn)界面的布局、事件響應(yīng)等功能O3代碼測(cè)試與調(diào)試應(yīng)用程序的后臺(tái)和界面代碼編寫(xiě)完畢之后,撰寫(xiě)文檔的成員負(fù)責(zé)代碼的測(cè)試。與此同時(shí),對(duì)于實(shí)驗(yàn)中遇到的問(wèn)題(比如“程序bug”),小組成員在合理的分析并交流相互的觀點(diǎn)之后,都給予了良好的解決方案。3.1用例測(cè)試下面的表格表示的是我們小組的應(yīng)用程序在開(kāi)發(fā)過(guò)程中的每個(gè)模塊完成的實(shí)際情況和測(cè)試、調(diào)試的結(jié)果。若需查看應(yīng)用程序的實(shí)際實(shí)現(xiàn)情況請(qǐng)運(yùn)行附錄里面的OS00.jar包。3.1.1后臺(tái)代碼測(cè)試及其解決 表1后臺(tái)代碼測(cè)試及調(diào)試情況表用例編號(hào)用例名稱實(shí)現(xiàn)情況調(diào)試與分析0000createFileT[1]O[2]0001deleteFileTO0010moveFileTO0011renameFileTO0100copyFileTO0101listFilesTO0110createDirTO0111deleteDirTO1000moveDirTO1001renameDi
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程施工合同合同風(fēng)險(xiǎn)預(yù)警與防范措施協(xié)議
- 2025年中國(guó)兩性霉素B行業(yè)市場(chǎng)全景監(jiān)測(cè)及投資策略研究報(bào)告
- 上海bim合同范本
- 農(nóng)場(chǎng)自建旅館合同范本
- 代理退稅合同范本
- 2025年度高新技術(shù)產(chǎn)業(yè)公司總經(jīng)理專(zhuān)項(xiàng)聘用合同
- 養(yǎng)殖競(jìng)標(biāo)合同范本
- 駕校教練車(chē)承包合同范本
- 2025年陶瓷化工填料項(xiàng)目可行性研究報(bào)告
- 第一章:公共政策理論模型
- 中藥審核處方的內(nèi)容(二)
- (完整)金正昆商務(wù)禮儀答案
- RB/T 101-2013能源管理體系電子信息企業(yè)認(rèn)證要求
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財(cái)務(wù)制度及流程
- 高支模專(zhuān)項(xiàng)施工方案(專(zhuān)家論證)
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- 房地產(chǎn)標(biāo)準(zhǔn)踩盤(pán)表格模板
- 物聯(lián)網(wǎng)項(xiàng)目實(shí)施進(jìn)度計(jì)劃表
- MDD指令附錄一 基本要求檢查表2013版
評(píng)論
0/150
提交評(píng)論