軟件工程實(shí)訓(xùn)(java)總結(jié)報告
華東交通大學(xué)軟件學(xué)院軟件工程實(shí)訓(xùn)總結(jié)報告
華東交通大學(xué)軟件學(xué)院201*年6周軟件工程實(shí)訓(xùn)總結(jié)報告
專業(yè)班級:09軟件+電氣4班學(xué)號:201*2110080402學(xué)生姓名:xx指導(dǎo)教師:xx所在項(xiàng)目:遠(yuǎn)程實(shí)驗(yàn)室管理系統(tǒng)項(xiàng)目經(jīng)理:xx實(shí)訓(xùn)公司:江西微軟技術(shù)中心實(shí)訓(xùn)周期:201*年11月5日至201*年12月14日
總結(jié)內(nèi)容一、團(tuán)隊(duì)基本情況團(tuán)隊(duì)名稱:AceTeam團(tuán)隊(duì)成員:陳忱、龍驍、田越、徐佳奇、朱成、翟勝、高楊、賀麗、汪曉玲、周啟榮二、項(xiàng)目基本概況項(xiàng)目名稱:遠(yuǎn)程實(shí)驗(yàn)室管理系統(tǒng)該項(xiàng)目是為學(xué)生提供個人虛擬化計算機(jī),提供隨時隨地的遠(yuǎn)程服務(wù),并且通過其管理系統(tǒng)能夠方便校方相關(guān)管理員對實(shí)驗(yàn)室的監(jiān)控與管理。適用對象:本項(xiàng)目將應(yīng)用于各高校的機(jī)房實(shí)驗(yàn)室,為高校的老師學(xué)生和機(jī)房管理人員提供極大的便利,有很多的潛在用戶;但由于網(wǎng)絡(luò)上的不穩(wěn)定因素,不排除用戶使用時出現(xiàn)延遲等情況;本項(xiàng)目基于Vmware虛擬化技術(shù)將與實(shí)驗(yàn)室監(jiān)控系統(tǒng)同時工作,為學(xué)生提供個人虛擬化計算機(jī),并提供隨時隨地的遠(yuǎn)程服務(wù),保證整個系統(tǒng)的運(yùn)行,通過虛擬化實(shí)驗(yàn)室管理系統(tǒng),方便校方相關(guān)管理員對實(shí)驗(yàn)室的監(jiān)控與管理。三、本人在項(xiàng)目中的主要任務(wù)及完成情況1)主要任務(wù)簡介及完成情況本人主要完成了數(shù)據(jù)庫的設(shè)計,以及項(xiàng)目的核心編碼、項(xiàng)目調(diào)研、人員分工等。項(xiàng)目調(diào)研完成100%;數(shù)據(jù)庫設(shè)計完成100%;人員分工完成100%;項(xiàng)目核心編碼完成60%,主要實(shí)現(xiàn)以下功能:1、虛擬機(jī)的創(chuàng)建2、虛擬機(jī)的啟動3、Web端遠(yuǎn)程桌面連接4、關(guān)閉虛擬機(jī)1/5
華東交通大學(xué)軟件學(xué)院軟件工程實(shí)訓(xùn)總結(jié)報告
5、查看虛擬機(jī)進(jìn)程(殺死指定進(jìn)程正在開發(fā)中……)6、用戶管理7、預(yù)約管理(學(xué)院、班級、年級管理)2)相關(guān)設(shè)計思路及實(shí)現(xiàn)成果數(shù)據(jù)庫設(shè)計思路:主要對后臺數(shù)據(jù)庫的概念模型設(shè)計和物理模型設(shè)計做出了統(tǒng)一的規(guī)定和約束,同時確定了每一個表的數(shù)據(jù)字典結(jié)構(gòu),主鍵和外鍵約束。數(shù)據(jù)庫名稱:remotecontrol數(shù)據(jù)表命名規(guī)則:表前綴(t_)+表名(首字母大寫)概念結(jié)構(gòu)的主要特點(diǎn)是能真實(shí)、充分地反映現(xiàn)實(shí)世界;易于理解;易于更改;易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。邏輯結(jié)構(gòu)設(shè)計:實(shí)現(xiàn)成果如下,表名t_usert_rolet_resourcest_user_rolet_role_resourcest_noticet_contractt_studentClasst_gradet_colleget_virtualMachinet_physicalMachinet_virtualMachineProcesst_fileSystemt_cput_memoryt_peratingSystemt_netinfo四、個人實(shí)訓(xùn)成果特點(diǎn)總結(jié)功能說明用戶表,剝離了角色的所有用戶的基本信息角色表,用戶的角色,權(quán)限控制資源表,用戶擁有角色后可以操作的資源用戶-角色中間表,包括用戶Id,角色I(xiàn)d角色-資源中間表,包括角色I(xiàn)d,資源Id公告表,存放公告信息預(yù)約表,存放老師預(yù)約實(shí)驗(yàn)室信息班級表,存放班級信息年級表,存放年級信息學(xué)院表,存放學(xué)院信息虛擬機(jī)表,虛擬機(jī)硬件信息,關(guān)聯(lián)學(xué)生表(多對一),關(guān)聯(lián)物理機(jī)物理機(jī)表,物理機(jī)硬件信息,關(guān)聯(lián)文件系統(tǒng),CPU,內(nèi)存,操作虛擬機(jī)進(jìn)程表,主要監(jiān)測學(xué)生是否有游戲進(jìn)程文件系統(tǒng)表,存放物理機(jī)虛擬機(jī)文件系統(tǒng)信息CPU表,存放物理機(jī)虛擬機(jī)cpu信息內(nèi)存表,存放物理機(jī)虛擬機(jī)內(nèi)存信息操作系統(tǒng)表,存放物理機(jī)虛擬機(jī)操作系統(tǒng)信息網(wǎng)絡(luò)表,存放物理機(jī)虛擬機(jī)操作網(wǎng)絡(luò)相關(guān)信息t_physicalMachineProcess物力機(jī)進(jìn)程表特點(diǎn)1:一開始老師教學(xué)講解比較細(xì)致。從web開發(fā)最基礎(chǔ)的html,css到SSH框架以及web服務(wù)器介紹。學(xué)習(xí)了成套的知識體系,對java做web開發(fā)有了個初步的了解,隨后通過項(xiàng)目實(shí)戰(zhàn)對SSH框架有了個詳細(xì)的了解,能實(shí)現(xiàn)一些基本的操作和需求的實(shí)現(xiàn)。2/華東交通大學(xué)軟件學(xué)院軟件工程實(shí)訓(xùn)總結(jié)報告
特點(diǎn)2:學(xué)習(xí)寫了許多文檔,對一個項(xiàng)目的大致流程有了深入了解。特點(diǎn)3:對項(xiàng)目的開發(fā)流程有了個基本的了解,從項(xiàng)目需求分析,調(diào)研,進(jìn)度計劃的制定到UI,數(shù)據(jù)庫,架構(gòu)設(shè)計,然后到編碼實(shí)現(xiàn),進(jìn)度跟蹤,每個階段的評審報告,總體比較規(guī)范。特點(diǎn)4:通過對HTML+CSS以及SSH框架學(xué)習(xí),對SSH框架的環(huán)境搭建,開發(fā)流程,項(xiàng)目部署有了基本的了解。特點(diǎn)5:通過這個比較由難度的項(xiàng)目還了解了IE下遠(yuǎn)程桌面連接控件,MINA通信框架,這些都比較由意思,開拓了視野。特點(diǎn)6:對項(xiàng)目管理有了一些切身的體會,例如人員分工,如何調(diào)動每個人的積極性,讓合適的人做適合的事,都是一些需要考慮周全的事。項(xiàng)目計劃的制定,需求實(shí)現(xiàn)的討論例會等看似比較繁瑣的事其實(shí)在項(xiàng)目中起到比較重要的作用。五、個人實(shí)訓(xùn)成果缺陷總結(jié)缺陷1:代碼耦合度比較高產(chǎn)生原因:編碼命名不規(guī)范,與合作小組溝通不夠,代碼沒有注釋,對ssh框架不熟悉。改進(jìn)措施:編碼前多想想后續(xù)是否需要擴(kuò)展改進(jìn),與合作小組要溝通好命名規(guī)范,合理的注釋。缺陷2:只支持IE瀏覽器產(chǎn)生原因:項(xiàng)目中的遠(yuǎn)程桌面插件只支持IE,HTML+CSS對其他瀏覽器的hackcode做的不夠。改進(jìn)措施:改進(jìn)HTML+css在其他瀏覽器下的效果。缺陷3:用戶不能得到友好的錯誤提示產(chǎn)生原因:容錯性的交互做的不好,代碼中對錯誤的捕獲以及給出友好提示沒有做。改進(jìn)措施:在代碼中對可遇見的錯誤給出友好的界面提示。六、心得與體會時間過得很快,為期6周的實(shí)訓(xùn)即將接近尾聲。在這6周中,每天都過得很充實(shí),從項(xiàng)目需求分析,調(diào)研,進(jìn)度計劃的制定到UI,數(shù)據(jù)庫,架構(gòu)設(shè)計,然后到編碼實(shí)現(xiàn),進(jìn)度跟蹤,每個階段的評審報告,通過規(guī)范的軟件開發(fā)流程讓我收益匪淺。3/5
華東交通大學(xué)軟件學(xué)院軟件工程實(shí)訓(xùn)總結(jié)報告
與以前的個人開發(fā),想到什么做什么改變很大,也讓我對軟件工程這門課程有了更深的理解。我們組做的系統(tǒng):遠(yuǎn)程實(shí)驗(yàn)室管理系統(tǒng),由2組合作進(jìn)行。我們主要做B/S端功能的實(shí)現(xiàn),通過對HTML+CSS以及SSH框架學(xué)習(xí),對SSH框架的環(huán)境搭建,開發(fā)流程,項(xiàng)目部署有了基本的了解。而且通過這個比較由難度的項(xiàng)目還了解了IE下遠(yuǎn)程桌面連接控件,MINA通信框架,這些都比較由意思,開拓了視野。本人在小組擔(dān)任項(xiàng)目經(jīng)理,對項(xiàng)目管理有了一些切身的體會,例如人員分工,如何調(diào)動每個人的積極性,讓合適的人做適合的事,都是一些需要考慮周全的事。項(xiàng)目計劃的制定,需求實(shí)現(xiàn)的討論例會等看似比較繁瑣的事其實(shí)在項(xiàng)目中起到比較重要的作用。在項(xiàng)目中必須以身作則,帶動大家一起參與到項(xiàng)目中來,讓項(xiàng)目有條不紊的進(jìn)行,更讓我意識到一個團(tuán)隊(duì)最重要的就是隊(duì)員間的合作。要做一個龐大的項(xiàng)目不能光靠一兩個人,需要每個人都去認(rèn)真對待并完成分配的任務(wù)。就像一臺大型的機(jī)器,發(fā)動機(jī)是核心但也需每個小零部件的配合才能運(yùn)轉(zhuǎn)。更讓我體會到一個完整項(xiàng)目的開發(fā)它所要經(jīng)歷的階段包括:規(guī)劃和用例說明、項(xiàng)目結(jié)構(gòu)和風(fēng)險評估、業(yè)務(wù)功能說明書、詳細(xì)設(shè)計說明書、代碼實(shí)現(xiàn)、測試、操作手冊。一個項(xiàng)目的開發(fā)所需要的財力、人力都是大量的,如果沒有一個好的遠(yuǎn)景規(guī)劃,對以后的開發(fā)進(jìn)度會產(chǎn)生很大的影響,嚴(yán)重時導(dǎo)致在預(yù)定時間內(nèi)不能完成該項(xiàng)目或者完成的項(xiàng)目跟原先劃所要實(shí)現(xiàn)的項(xiàng)目功能不符合。一份好的項(xiàng)目結(jié)構(gòu)、業(yè)務(wù)功能和詳細(xì)設(shè)計說明書對一個項(xiàng)目的開發(fā)有明確的指引作用,它可以使開發(fā)人員對這個項(xiàng)目所要實(shí)現(xiàn)的功能在總體上有具體的認(rèn)識,并能減少在開發(fā)過程中出現(xiàn)不必要的脫節(jié)。代碼的實(shí)現(xiàn)是一個項(xiàng)目開發(fā)成功與否的關(guān)鍵,可以說,前面所做的事情就是為代碼的實(shí)現(xiàn)做鋪墊。JAVA項(xiàng)目開始有很大的難度,由于沒有任何java基礎(chǔ),開始學(xué)習(xí)后也并非是想象中那樣順利,開始的學(xué)習(xí)讓我異常感到學(xué)習(xí)任務(wù)的艱巨,因?yàn)閷W(xué)習(xí)中我們遇到了很多以前未曾遇到的難點(diǎn),有時難免冥思苦想也無濟(jì)于事,通過我們小組的積極努力協(xié)作,同時請教老師和其他同學(xué),我們順利的化解了一道道的障礙。這讓我不斷的對學(xué)習(xí)技術(shù)又有了新的認(rèn)識,學(xué)習(xí)中我們必須邊總結(jié)邊學(xué)習(xí),開始階段對老師交代的任何方法和類都不要放過,不管是否簡單與否都要樂于地接受,因?yàn)槔蠋熆隙ㄓ兴牡览,相信老師走過的路比我們長,那么其經(jīng)驗(yàn)也就肯定比我們豐富。上課時一定要專心聽講,一個關(guān)鍵的知識點(diǎn)聽漏了,可能會使一個人在課下花很多時間去消化,這樣也就會花掉做其他事情的大量時間,同時也使得學(xué)習(xí)不能和老師的講的課程同步,以至出現(xiàn)以后就跟不上老師講課的進(jìn)度而掉隊(duì)。所以學(xué)習(xí)中我們寧可4/5
華東交通大學(xué)軟件學(xué)院軟件工程實(shí)訓(xùn)總結(jié)報告
先勞其筋骨,苦其心志,餓其體膚,也不能掉隊(duì)跟不上學(xué)習(xí)進(jìn)度。我克服了Java學(xué)習(xí)上的一道道難關(guān),課上認(rèn)真聽講,摘好必要的筆記,并通過自己課后的不斷消化學(xué)習(xí),現(xiàn)在自己已經(jīng)基本掌握了一定的java的基礎(chǔ)知識,并且能應(yīng)用到相應(yīng)的項(xiàng)目開發(fā)中對項(xiàng)目開發(fā)的一些相關(guān)文檔也有了一定的了解,能順利實(shí)現(xiàn)項(xiàng)目的需求。還有一點(diǎn)關(guān)于代碼學(xué)習(xí)的體會,通過看人家的代碼能夠加快自己的學(xué)習(xí)。這個方法對有經(jīng)驗(yàn)的人來講是對的,但是對于還在學(xué)習(xí)期間,沒有經(jīng)驗(yàn)的學(xué)員來講,就是一個認(rèn)識的誤區(qū)了。因?yàn)槟阋苍S能看懂代碼的語法,但根本看不懂代碼背后的含義,看不懂代碼的設(shè)計,看不懂為什么要這么實(shí)現(xiàn),看不懂代碼所體現(xiàn)的思想,其實(shí),看了跟沒看沒有多大區(qū)別。
學(xué)生簽名:年月日
5/5
擴(kuò)展閱讀:第四小組《Java項(xiàng)目實(shí)訓(xùn)》軟件工程系實(shí)訓(xùn)總結(jié)報告
課程實(shí)訓(xùn)報告書
技能實(shí)訓(xùn)(課程設(shè)計)
總結(jié)報告
實(shí)訓(xùn)項(xiàng)目Java項(xiàng)目實(shí)訓(xùn)系部軟件工程系指導(dǎo)老師朱堂勛日期201*-1-5
201*180109盧徵
20201*0071李曉輝實(shí)訓(xùn)報告撰寫注意事項(xiàng)
一、報告內(nèi)容至少應(yīng)包括以下項(xiàng)目:
1、具體實(shí)訓(xùn)內(nèi)容;2、本次實(shí)訓(xùn)主要目的;
3、具體日程、實(shí)訓(xùn)地點(diǎn)、同組同學(xué)、指導(dǎo)老師等;
4、實(shí)驗(yàn)操作或技能訓(xùn)練步驟,課程設(shè)計還應(yīng)包括設(shè)計任務(wù)書、原始參數(shù)、計算說明、圖紙圖表、程序清單等;
5、本次實(shí)訓(xùn)的主要收獲與體會。
二、其余如報告的具體格式、篇幅等要求,視實(shí)訓(xùn)課程的區(qū)別由實(shí)訓(xùn)任課老師或課程設(shè)計指導(dǎo)教師按實(shí)訓(xùn)大綱,用《實(shí)訓(xùn)指導(dǎo)書》或《課程設(shè)計指導(dǎo)書》的形式具體規(guī)定。
教務(wù)處實(shí)訓(xùn)中心制
課程實(shí)訓(xùn)報告書
一、實(shí)訓(xùn)名稱
《編寫記事本程序》
二、實(shí)訓(xùn)項(xiàng)目的目的和功能
本次實(shí)訓(xùn)是對前面學(xué)過的所有面向?qū)ο蟮木幊趟枷胍约熬幊谭椒ǖ囊粋總結(jié)、回顧和實(shí)踐,因此,開始設(shè)計前學(xué)生一定要先回顧以前所學(xué)的內(nèi)容,明確本次作業(yè)設(shè)計所要用到的技術(shù)點(diǎn)并到網(wǎng)上搜索以及查閱相關(guān)的書籍來搜集資料。通過編寫一個基于J2SE的應(yīng)用系統(tǒng)綜合實(shí)例,以掌握J(rèn)ava語言編程技巧。
具體要求有以下幾點(diǎn):
1.問題的描述與程序?qū)⒁獙?shí)現(xiàn)的具體功能。
2.程序功能實(shí)現(xiàn)的具體設(shè)計思路或框架,并檢查流程設(shè)計。3.代碼實(shí)現(xiàn)。
4.程序測試(如程序代碼、功能測試、可靠性測試和效率測試等)。5.設(shè)計小結(jié)。
三、實(shí)訓(xùn)項(xiàng)目的開發(fā)環(huán)境和所使用的技術(shù)
使用Java核心API技術(shù),利用Eclipse或NetBeans、JBuilder集成開發(fā)環(huán)境完成實(shí)訓(xùn)項(xiàng)目,界面友好,代碼的可維護(hù)性好,有必要的注釋和相應(yīng)的文檔。
四、實(shí)訓(xùn)地點(diǎn)、日程、分組情況
實(shí)訓(xùn)地點(diǎn):2棟301機(jī)房分組情況:盧徵(組長)、李曉輝日程:
第一階段:
1.班級分組,選定課題,查閱相關(guān)資料半天2.劃分模塊、小組成員分工半天3利用CASE工具進(jìn)行系統(tǒng)設(shè)計和分析,并編制源程序3天第二階段:上機(jī)調(diào)試,修改、調(diào)試、完善系統(tǒng)1天第三階段:撰寫、上交課程設(shè)計報告,上交課程設(shè)計作品源程序(每人一份)1天
五、小組分工李曉輝:負(fù)責(zé)代碼編寫盧徵:負(fù)責(zé)程序的測試與調(diào)試
實(shí)訓(xùn)成績2
評語課程實(shí)訓(xùn)報告書
文本編輯器的設(shè)計和實(shí)現(xiàn)
1實(shí)訓(xùn)目的
1.1實(shí)訓(xùn)目的
本次實(shí)訓(xùn)是對前面學(xué)過的所有面向?qū)ο蟮木幊趟枷胍约熬幊谭椒ǖ囊粋總結(jié)、回顧和實(shí)踐,因此,開始設(shè)計前學(xué)生一定要先回顧以前所學(xué)的內(nèi)容,明確本次作業(yè)設(shè)計所要用到的技術(shù)點(diǎn)并到網(wǎng)上搜索以及查閱相關(guān)的書籍來搜集資料。通過編寫一個基于J2SE的應(yīng)用系統(tǒng)綜合實(shí)例,以掌握J(rèn)ava語言編程技巧。
1.2實(shí)訓(xùn)要求
具體要求有以下幾點(diǎn):
1.問題的描述與程序?qū)⒁獙?shí)現(xiàn)的具體功能。
2.程序功能實(shí)現(xiàn)的具體設(shè)計思路或框架,并檢查流程設(shè)計。3.代碼實(shí)現(xiàn)。
4.程序測試(如程序代碼、功能測試、可靠性測試和效率測試等)。5.
設(shè)計小結(jié)。
2文本編輯器系統(tǒng)的分析與設(shè)計
2.1系統(tǒng)功能描述
通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:
1、可進(jìn)行文件的新建、打開、保存、編輯等基本功能。2、支持復(fù)制、剪切和粘貼操作3、可進(jìn)行查找和替換操作2.2系統(tǒng)模塊設(shè)計
根據(jù)系統(tǒng)自帶的文檔編輯器的特征設(shè)計,包括如下的功能模塊:一、整體結(jié)構(gòu)框架包括:菜單欄和文檔編輯區(qū)
二、每個框架分別包含不同的子框架,各個模塊的具體框架:
菜單欄:文件、編輯、插入、格式、工具、幫助菜單欄中各個子菜單功能
文件:新建、打開、保存、另存、退出
編輯:撤銷、剪切、復(fù)制、粘貼、刪除、全選、查找、替換工具:字體統(tǒng)計幫助:版本
課程實(shí)訓(xùn)報告書
子菜單功能的實(shí)現(xiàn)主要的幾個功能介紹
1)打開與另存為:兩個窗體調(diào)用系統(tǒng)函數(shù)直接利用,注意格式的選擇2)查找:查找內(nèi)容、查找、查找下一個文本編輯區(qū)
監(jiān)視文本內(nèi)容是否改變、監(jiān)聽光標(biāo)所在位置2.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
1.程序E-R圖
文件新建打開保存另存為退出課程實(shí)訓(xùn)報告書
刪除全選查找編輯剪切復(fù)制粘貼工具字?jǐn)?shù)統(tǒng)計幫助版本5
課程實(shí)訓(xùn)報告書
3主要代碼清單
3.1生成菜單欄及菜單項(xiàng)
在窗體初始化時,自動添加菜單及其菜單項(xiàng),用于在文本編輯器中對文本去內(nèi)容進(jìn)行操作,使用for語句循環(huán)生成菜單欄和菜單項(xiàng)。
classCextendsJFrame{//在文本區(qū)域內(nèi)動態(tài)顯示輸入字符數(shù)Stringprefix="下面的文本域里現(xiàn)在共有";//統(tǒng)計窗體字?jǐn)?shù)publicC(){
setTitle(prefix+"個字符。");
finalTextAreata=newTextArea();ta.addTextListener(newTextListener(){
publicvoidtextValueChanged(TextEvente){
setTitle(prefix+ta.getText().length()+"個字符。");}});
getContentPane().add(ta);pack();
setLocation(200,200);//顯示窗體大小
setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);}}
publicclassMyNotepadimplementsActionListener{
privateJFrameframe=newJFrame("我的記事本");privateJTextAreajta=newJTextArea();//文件對話框privateStringresult="";
課程實(shí)訓(xùn)報告書
publicvoidaddString(JTextAreajta,Stringaddstr){
intposition=jta.getCaretPosition();Stringtext=jta.getText();
text=text.substring(0,position)+addstr+text.substring(position,text.length());jta.setText(text);
jta.setCaretPosition(position);}
privatebooleanflag=true;privateFilef;
privateJButtonjb=newJButton("開始");
privateJTextFieldjtf=newJTextField(15);privateJTextFieldjt=newJTextField(15);privateJButtonjbt=newJButton("替換為");privateJButtonjba=newJButton("全部替換");
privateIconic=newImageIcon("D:\\\\java課堂筆記\\\\GUI\\\\11.gif");privateStringvalue;privateintstart=0;
privateJFramejf=newJFrame("查找");privateJFramejfc=newJFrame("替換");@SuppressWarnings("unused")
privateJFramejfc1=newJFrame("文件");@SuppressWarnings("unused")privateJFileChooserfchooser;@SuppressWarnings("unused")privateFilefile;
@SuppressWarnings("unused")
privateJCheckBoxCheckeb_bold,checkb_italic;
3.2監(jiān)聽事件處理
注冊監(jiān)聽事件,當(dāng)進(jìn)行操作時,監(jiān)聽事件活得事件源并選擇相應(yīng)的操作,對不同的事件調(diào)用不同的函數(shù),得到文本操作的不同結(jié)果。
publicvoidactionPerformed(ActionEvente){//單擊事件處理方法,單擊菜單項(xiàng)Stringcomm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新記事本"))){if(!flag){
write();newNew();
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");
intreturnVal=jfc.showDialog(null,"保存為");
7}else{課程實(shí)訓(xùn)報告書
if(returnVal==JFileChooser.APPROVE_OPTION){//顯示打開文
本對話框且單擊“另存為”按鈕f=jfc.getSelectedFile();
}flag=false;
write();
}}elseif(!(jta.getText().isEmpty())){
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");intreturnVal=jfc.showDialog(null,"保存為");
if(returnVal==JFileChooser.APPROVE_OPTION){//顯示打開文本對話框且單
擊“保存為”按鈕f=jfc.getSelectedFile();
flag=false;
write();newNew();
}}else{newNew();}
}elseif("打開".equals(comm)){
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");jfc.setDialogType(JFileChooser.OPEN_DIALOG);intreturnVal=jfc.showOpenDialog(null);
if(returnVal==JFileChooser.APPROVE_OPTION){//顯示打開文本對話框且單擊“打
f=jfc.getSelectedFile();frame.setTitle(f.getName());result=read();flag=false;value=result;
jta.setText(result);
開”按鈕
}JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");if(flag){
intreturnVal=jfc.showDialog(null,"保存為");
if(returnVal==JFileChooser.APPROVE_OPTION){//顯示打開文本對話框且單
}elseif("保存".equals(comm)){
擊“保存為”按鈕f=jfc.getSelectedFile();
flag=false;
write();
}}else{
課程實(shí)訓(xùn)報告書
write();
}}elseif("另存".equals(comm)){
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");intreturnVal=jfc.showDialog(null,"另存");if(returnVal==JFileChooser.APPROVE_OPTION){f=jfc.getSelectedFile();
write();
}}elseif("退出".equals(comm)){System.exit(0);}elseif("撤銷".equals(comm)){jta.setText(value);}elseif("剪切".equals(comm)){value=jta.getText();
jta.cut();
}elseif("復(fù)制".equals(comm)){jta.copy();}elseif("粘貼".equals(comm)){value=jta.getText();
jta.paste();
}elseif("刪除".equals(comm)){value=jta.getText();
jta.replaceSelection(null);}elseif("全選".equals(comm)){jta.selectAll();
}elseif("查找".equals(comm)){
value=jta.getText();
}elseif("替換".equals(comm)){value=jta.getText();
GridLayoutgl=newGridLayout(3,3);JLabeljl1=newJLabel("查找內(nèi)容:");
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");jfc.setDialogType(JFileChooser.OPEN_DIALOG);intreturnVal=jfc.showOpenDialog(null);if(returnVal==JFileChooser.APPROVE_OPTION){}
f=jfc.getSelectedFile();frame.setTitle(f.getName());result=read();flag=false;value=result;
jta.setText(result);
課程實(shí)訓(xùn)報告書
JLabeljl2=newJLabel("替換為:");jfc.setLayout(gl);jfc.add(jl1);jfc.add(jtf);jfc.add(jb);jfc.add(jl2);jfc.add(jt);jfc.add(jbt);
JLabeljl3=newJLabel();JLabeljl4=newJLabel();jfc.add(jl3);jfc.add(jl4);jfc.add(jba);
jfc.setLocation(300,300);jfc.setVisible(true);
JDialogjd=newJDialog(frame,"關(guān)于對話框");jd.setSize(200,200);
JLabell=newJLabel("版本:ISBN-8778746121524571746");jd.add(l,BorderLayout.CENTER);jd.setLocation(100,200);jd.setSize(600,600);jd.setVisible(true);jd.pack();
jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}elseif("版本".equals(comm)){
}elseif("開始".equals(comm)||"下一個".equals(comm)){Stringtemp=jtf.getText();
ints=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){
jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());jta.setSelectedTextColor(Color.GREEN);start=s+1;
jb.setText("下一個");
value=value.substring(s+temp.length());//不能截取字串}else{}
JOptionPane.showMessageDialog(jf,"查找完畢!","提示",0,ic);jf.dispose();
}elseif("替換為".equals(comm)){Stringtemp=jtf.getText();
ints=value.indexOf(temp,start);if(value.indexOf(temp,start)!=-1){
課程實(shí)訓(xùn)報告書
}finalJFrameztsz=newJFrame("字體設(shè)置...");//字體設(shè)置窗口
elseif("字體".equals(comm)){
//字體
ztsz.setLocation(150,200);ztsz.setSize(500,300);
jf.setEnabled(false);//文本編輯窗體不可用!finalJComboBoxjc=newJComboBox(
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());jc.setLocation(30,80);
}elseif("字?jǐn)?shù)統(tǒng)計".equals(comm)){newC();
}}jta.setSelectionStart(s);
jta.setSelectionEnd(s+temp.length());jta.setSelectedTextColor(Color.GREEN);start=s+1;
jta.replaceSelection(jt.getText());
JOptionPane.showMessageDialog(jf,"查找完畢!","提示",0,ic);jf.dispose();
}else{
}elseif("全部替換".equals(comm)){Stringtemp=jta.getText();
temp=temp.replaceAll(jtf.getText(),jt.getText());jta.setText(temp);
}elseif("文件".equals(comm)){jta.requestFocusInWindow();
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");jfc.setDialogType(JFileChooser.OPEN_DIALOG);intreturnVal=jfc.showOpenDialog(null);
if(returnVal==JFileChooser.APPROVE_OPTION){//選擇文件后再執(zhí)行下面的語句f=jfc.getSelectedFile();
frame.setTitle(f.getName());result=read();flag=false;value=result;
jta.setText(result);
課程實(shí)訓(xùn)報告書
//字形
String[]faceString={"正常","粗體","斜體","粗斜體"};
String[]sizeString={"初號","小初","一號","小一","二號","小二","三號","小三","四號","小四","五號","小五","六號","小六","七號",Containerc=ztsz.getContentPane();JPaneljp=newJPanel();jp.add(jc,newFlowLayout());
"八號
","5","8","9","10","11","12","14","16","18","20","22","24",
"26","28","36","48","72"};
finalJComboBoxzx=newJComboBox(faceString);finalJComboBoxdx=newJComboBox(sizeString);finalJButtonsure=newJButton("確定");sure.addActionListener(this);
finalJButtoncancel=newJButton("取消");cancel.addActionListener(this);
jp.add(zx);jp.add(dx);jp.add(sure);jp.add(cancel);c.add(jp);
ztsz.setVisible(true);
if(e.getSource()=="確定"){ztsz.setDefaultCloseOperation(ztsz.EXIT_ON_CLOSE);}
if(e.getSource()=="取消"){ztsz.setDefaultCloseOperation(ztsz.EXIT_ON_CLOSE);}
}}4程序運(yùn)行與測試
4.1文本區(qū)功能測試
a)字體的顯示,開始的時候不做任何操作的時候顯示的默認(rèn)值,通過修改字體的屬性來修改
字體。
b)對文本事件進(jìn)行監(jiān)聽,如果文本編輯窗口中如果有事件觸發(fā),關(guān)閉時能夠有必要的信息提
示。
課程實(shí)訓(xùn)報告書
c)狀態(tài)欄的可以正常顯示文本的狀態(tài)信息。
4.2文件菜單功能測試
課程實(shí)訓(xùn)報告書
文件中的功能測試:
a)通過文件字符流讀取文件,創(chuàng)建緩沖區(qū)存儲文件流。
b)當(dāng)保存文件時,先判斷文件是否未被保存過,如果未被保存過,則創(chuàng)建新文件并通過
輸出流來存儲文件,當(dāng)文件已經(jīng)保存過再對文件進(jìn)行修改時,則會提示保存的消息窗體。
c)另存為是通過不同的方法來創(chuàng)建一個新的文件。
4.3編輯菜單功能測試
復(fù)制前粘貼后
剪切、復(fù)制、粘貼功能的實(shí)現(xiàn)是在注冊監(jiān)聽事件后,對文本去的文字進(jìn)行操作時,系統(tǒng)調(diào)用文本類本身的庫函數(shù)來處理文本去的文字操作,將選中的文本讀入緩沖區(qū)。然后再等待不同的操作方法的調(diào)用。4.4工具菜單功能測試
功能描述:
查找需要先生成對應(yīng)的窗體,使用相應(yīng)的組件類來創(chuàng)建窗體,使用流布局管理器來對窗體中的
課程實(shí)訓(xùn)報告書
各個控件進(jìn)行布局,對查找和查找下一個按鈕注冊監(jiān)聽事件并編寫相應(yīng)的處理方法。文本去的文字使用相應(yīng)的處理方法進(jìn)行比較和處理,并對光標(biāo)位置進(jìn)行判斷是否到文本末尾,使用異常處理語句捕獲異常并處理。
功能描述:
使用相應(yīng)的組件類來創(chuàng)建窗體,使用流布局管理器來對窗體中的各個控件進(jìn)行布局,對替換和清空按鈕注冊監(jiān)聽事件并編寫相應(yīng)的處理方法。
publicStringread(){
}publicvoidwrite(){}
publicvoidnewNew(){
frame.dispose();newMyNotepad();try{}
FileOutputStreamfos=newFileOutputStream(f);//創(chuàng)建字符輸出流對象fos.write(jta.getText().getBytes());//向文本輸入字符串fos.close();
e.printStackTrace();Stringtemp="";try{}
returntemp;
FileInputStreamfis=newFileInputStream(f.getAbsolutePath());byte[]b=newbyte[1024];while(true){}
fis.close();
e1.printStackTrace();
intnum=fis.read(b);if(num==-1)break;
temp=temp+newString(b,0,num);
}catch(Exceptione1){
}catch(Exceptione){
課程實(shí)訓(xùn)報告書
}}publicMyNotepad(){
JMenuBarjmb=newJMenuBar();
String[]menuLab={"文件","編輯","插入","格式","工具","幫助"};String[][]menuItemLab={{"新建","打開","保存","另存","退出"},
{"撤銷","剪切","復(fù)制","粘貼","刪除","全選","查找","替換"},{"文件"},
{"字體"},{"字?jǐn)?shù)統(tǒng)計"},{"版本"}};for(inti=0;i課程實(shí)訓(xùn)報告書
并發(fā)現(xiàn)了自己的不足之處。
在編寫代碼時需要的是我們的細(xì)心,因?yàn)榫帉懘a是一個煩瑣的過程,我們?nèi)绻徊恍⌒,代碼就很容易出現(xiàn)漏詞、錯詞已經(jīng)缺詞,所以我們采用了先完整的思考整個程序的步驟、思想,然后采取分工合作,一個負(fù)責(zé)代碼編寫,而另一個負(fù)責(zé)程序的調(diào)試。這樣既節(jié)省了時間,又提高了效率。同時這樣還便于兩人對遇到問題時能夠加以討論共同修改。
在窗體中需要加入文本編輯區(qū)來存儲文本,這就需要創(chuàng)建文本對象并對其進(jìn)行實(shí)例化,并且在編輯菜單中還需要多個方法來實(shí)現(xiàn)對文本的操作和處理,比如剪切和復(fù)制,用到本身的函數(shù)來操作。對于所有的菜單和菜單項(xiàng)以及控件所做才操作處理都需要注冊其相應(yīng)的監(jiān)聽事件來完成,而在文件菜單中,打開的操作用到了文件的輸入流,保存則用到了文本的輸出流。而在打開事件中所以遇到的錯誤在查閱了很多資料后在得以解決,并在此過程中學(xué)到了很多老師在課程中沒有講到的知識,是自己受益匪淺,在文件菜單中的保存中,需要用if語句進(jìn)行相應(yīng)的判斷,來執(zhí)行不同的代碼實(shí)現(xiàn),并與相應(yīng)的異常處理語句相結(jié)合來完善程序,使代碼具有健壯性和靈活性,減少程序運(yùn)行時錯誤出現(xiàn)。
由于時間倉促,還有許多其他的功能沒有,并在已實(shí)現(xiàn)的功能中也有不足的地方,還需要進(jìn)一步對其進(jìn)行修改。再次過程中不斷加深對java程序設(shè)計的認(rèn)識和理解,豐富自己的知識,了解自己的不足,加強(qiáng)自己的理解能力和學(xué)習(xí)能力,提高自己獨(dú)立解決問題的能力。Java是一門全新的計算機(jī)語言,需要自己對其全新的理解,而java的很多功能都需要在學(xué)習(xí)中去發(fā)現(xiàn)和理解,應(yīng)用到不同的設(shè)計中去,并結(jié)合網(wǎng)絡(luò)這個以有利工具方便自己學(xué)習(xí)java的語言和強(qiáng)大的編碼能力,以及在以后的設(shè)計中把程序不斷完善。
友情提示:本文中關(guān)于《軟件工程實(shí)訓(xùn)(java)總結(jié)報告》給出的范例僅供您參考拓展思維使用,軟件工程實(shí)訓(xùn)(java)總結(jié)報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。