軟件工程實訓(java)總結(jié)報告
華東交通大學軟件學院軟件工程實訓總結(jié)報告
華東交通大學軟件學院201*年6周軟件工程實訓總結(jié)報告
專業(yè)班級:09軟件+電氣4班學號:201*2110080402學生姓名:xx指導教師:xx所在項目:遠程實驗室管理系統(tǒng)項目經(jīng)理:xx實訓公司:江西微軟技術中心實訓周期:201*年11月5日至201*年12月14日
總結(jié)內(nèi)容一、團隊基本情況團隊名稱:AceTeam團隊成員:陳忱、龍驍、田越、徐佳奇、朱成、翟勝、高楊、賀麗、汪曉玲、周啟榮二、項目基本概況項目名稱:遠程實驗室管理系統(tǒng)該項目是為學生提供個人虛擬化計算機,提供隨時隨地的遠程服務,并且通過其管理系統(tǒng)能夠方便校方相關管理員對實驗室的監(jiān)控與管理。適用對象:本項目將應用于各高校的機房實驗室,為高校的老師學生和機房管理人員提供極大的便利,有很多的潛在用戶;但由于網(wǎng)絡上的不穩(wěn)定因素,不排除用戶使用時出現(xiàn)延遲等情況;本項目基于Vmware虛擬化技術將與實驗室監(jiān)控系統(tǒng)同時工作,為學生提供個人虛擬化計算機,并提供隨時隨地的遠程服務,保證整個系統(tǒng)的運行,通過虛擬化實驗室管理系統(tǒng),方便校方相關管理員對實驗室的監(jiān)控與管理。三、本人在項目中的主要任務及完成情況1)主要任務簡介及完成情況本人主要完成了數(shù)據(jù)庫的設計,以及項目的核心編碼、項目調(diào)研、人員分工等。項目調(diào)研完成100%;數(shù)據(jù)庫設計完成100%;人員分工完成100%;項目核心編碼完成60%,主要實現(xiàn)以下功能:1、虛擬機的創(chuàng)建2、虛擬機的啟動3、Web端遠程桌面連接4、關閉虛擬機1/5
華東交通大學軟件學院軟件工程實訓總結(jié)報告
5、查看虛擬機進程(殺死指定進程正在開發(fā)中……)6、用戶管理7、預約管理(學院、班級、年級管理)2)相關設計思路及實現(xiàn)成果數(shù)據(jù)庫設計思路:主要對后臺數(shù)據(jù)庫的概念模型設計和物理模型設計做出了統(tǒng)一的規(guī)定和約束,同時確定了每一個表的數(shù)據(jù)字典結(jié)構(gòu),主鍵和外鍵約束。數(shù)據(jù)庫名稱:remotecontrol數(shù)據(jù)表命名規(guī)則:表前綴(t_)+表名(首字母大寫)概念結(jié)構(gòu)的主要特點是能真實、充分地反映現(xiàn)實世界;易于理解;易于更改;易于向關系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。邏輯結(jié)構(gòu)設計:實現(xiàn)成果如下,表名t_usert_rolet_resourcest_user_rolet_role_resourcest_noticet_contractt_studentClasst_gradet_colleget_virtualMachinet_physicalMachinet_virtualMachineProcesst_fileSystemt_cput_memoryt_peratingSystemt_netinfo四、個人實訓成果特點總結(jié)功能說明用戶表,剝離了角色的所有用戶的基本信息角色表,用戶的角色,權(quán)限控制資源表,用戶擁有角色后可以操作的資源用戶-角色中間表,包括用戶Id,角色Id角色-資源中間表,包括角色Id,資源Id公告表,存放公告信息預約表,存放老師預約實驗室信息班級表,存放班級信息年級表,存放年級信息學院表,存放學院信息虛擬機表,虛擬機硬件信息,關聯(lián)學生表(多對一),關聯(lián)物理機物理機表,物理機硬件信息,關聯(lián)文件系統(tǒng),CPU,內(nèi)存,操作虛擬機進程表,主要監(jiān)測學生是否有游戲進程文件系統(tǒng)表,存放物理機虛擬機文件系統(tǒng)信息CPU表,存放物理機虛擬機cpu信息內(nèi)存表,存放物理機虛擬機內(nèi)存信息操作系統(tǒng)表,存放物理機虛擬機操作系統(tǒng)信息網(wǎng)絡表,存放物理機虛擬機操作網(wǎng)絡相關信息t_physicalMachineProcess物力機進程表特點1:一開始老師教學講解比較細致。從web開發(fā)最基礎的html,css到SSH框架以及web服務器介紹。學習了成套的知識體系,對java做web開發(fā)有了個初步的了解,隨后通過項目實戰(zhàn)對SSH框架有了個詳細的了解,能實現(xiàn)一些基本的操作和需求的實現(xiàn)。2/華東交通大學軟件學院軟件工程實訓總結(jié)報告
特點2:學習寫了許多文檔,對一個項目的大致流程有了深入了解。特點3:對項目的開發(fā)流程有了個基本的了解,從項目需求分析,調(diào)研,進度計劃的制定到UI,數(shù)據(jù)庫,架構(gòu)設計,然后到編碼實現(xiàn),進度跟蹤,每個階段的評審報告,總體比較規(guī)范。特點4:通過對HTML+CSS以及SSH框架學習,對SSH框架的環(huán)境搭建,開發(fā)流程,項目部署有了基本的了解。特點5:通過這個比較由難度的項目還了解了IE下遠程桌面連接控件,MINA通信框架,這些都比較由意思,開拓了視野。特點6:對項目管理有了一些切身的體會,例如人員分工,如何調(diào)動每個人的積極性,讓合適的人做適合的事,都是一些需要考慮周全的事。項目計劃的制定,需求實現(xiàn)的討論例會等看似比較繁瑣的事其實在項目中起到比較重要的作用。五、個人實訓成果缺陷總結(jié)缺陷1:代碼耦合度比較高產(chǎn)生原因:編碼命名不規(guī)范,與合作小組溝通不夠,代碼沒有注釋,對ssh框架不熟悉。改進措施:編碼前多想想后續(xù)是否需要擴展改進,與合作小組要溝通好命名規(guī)范,合理的注釋。缺陷2:只支持IE瀏覽器產(chǎn)生原因:項目中的遠程桌面插件只支持IE,HTML+CSS對其他瀏覽器的hackcode做的不夠。改進措施:改進HTML+css在其他瀏覽器下的效果。缺陷3:用戶不能得到友好的錯誤提示產(chǎn)生原因:容錯性的交互做的不好,代碼中對錯誤的捕獲以及給出友好提示沒有做。改進措施:在代碼中對可遇見的錯誤給出友好的界面提示。六、心得與體會時間過得很快,為期6周的實訓即將接近尾聲。在這6周中,每天都過得很充實,從項目需求分析,調(diào)研,進度計劃的制定到UI,數(shù)據(jù)庫,架構(gòu)設計,然后到編碼實現(xiàn),進度跟蹤,每個階段的評審報告,通過規(guī)范的軟件開發(fā)流程讓我收益匪淺。3/5
華東交通大學軟件學院軟件工程實訓總結(jié)報告
與以前的個人開發(fā),想到什么做什么改變很大,也讓我對軟件工程這門課程有了更深的理解。我們組做的系統(tǒng):遠程實驗室管理系統(tǒng),由2組合作進行。我們主要做B/S端功能的實現(xiàn),通過對HTML+CSS以及SSH框架學習,對SSH框架的環(huán)境搭建,開發(fā)流程,項目部署有了基本的了解。而且通過這個比較由難度的項目還了解了IE下遠程桌面連接控件,MINA通信框架,這些都比較由意思,開拓了視野。本人在小組擔任項目經(jīng)理,對項目管理有了一些切身的體會,例如人員分工,如何調(diào)動每個人的積極性,讓合適的人做適合的事,都是一些需要考慮周全的事。項目計劃的制定,需求實現(xiàn)的討論例會等看似比較繁瑣的事其實在項目中起到比較重要的作用。在項目中必須以身作則,帶動大家一起參與到項目中來,讓項目有條不紊的進行,更讓我意識到一個團隊最重要的就是隊員間的合作。要做一個龐大的項目不能光靠一兩個人,需要每個人都去認真對待并完成分配的任務。就像一臺大型的機器,發(fā)動機是核心但也需每個小零部件的配合才能運轉(zhuǎn)。更讓我體會到一個完整項目的開發(fā)它所要經(jīng)歷的階段包括:規(guī)劃和用例說明、項目結(jié)構(gòu)和風險評估、業(yè)務功能說明書、詳細設計說明書、代碼實現(xiàn)、測試、操作手冊。一個項目的開發(fā)所需要的財力、人力都是大量的,如果沒有一個好的遠景規(guī)劃,對以后的開發(fā)進度會產(chǎn)生很大的影響,嚴重時導致在預定時間內(nèi)不能完成該項目或者完成的項目跟原先劃所要實現(xiàn)的項目功能不符合。一份好的項目結(jié)構(gòu)、業(yè)務功能和詳細設計說明書對一個項目的開發(fā)有明確的指引作用,它可以使開發(fā)人員對這個項目所要實現(xiàn)的功能在總體上有具體的認識,并能減少在開發(fā)過程中出現(xiàn)不必要的脫節(jié)。代碼的實現(xiàn)是一個項目開發(fā)成功與否的關鍵,可以說,前面所做的事情就是為代碼的實現(xiàn)做鋪墊。JAVA項目開始有很大的難度,由于沒有任何java基礎,開始學習后也并非是想象中那樣順利,開始的學習讓我異常感到學習任務的艱巨,因為學習中我們遇到了很多以前未曾遇到的難點,有時難免冥思苦想也無濟于事,通過我們小組的積極努力協(xié)作,同時請教老師和其他同學,我們順利的化解了一道道的障礙。這讓我不斷的對學習技術又有了新的認識,學習中我們必須邊總結(jié)邊學習,開始階段對老師交代的任何方法和類都不要放過,不管是否簡單與否都要樂于地接受,因為老師肯定有他的道理,相信老師走過的路比我們長,那么其經(jīng)驗也就肯定比我們豐富。上課時一定要專心聽講,一個關鍵的知識點聽漏了,可能會使一個人在課下花很多時間去消化,這樣也就會花掉做其他事情的大量時間,同時也使得學習不能和老師的講的課程同步,以至出現(xiàn)以后就跟不上老師講課的進度而掉隊。所以學習中我們寧可4/5
華東交通大學軟件學院軟件工程實訓總結(jié)報告
先勞其筋骨,苦其心志,餓其體膚,也不能掉隊跟不上學習進度。我克服了Java學習上的一道道難關,課上認真聽講,摘好必要的筆記,并通過自己課后的不斷消化學習,現(xiàn)在自己已經(jīng)基本掌握了一定的java的基礎知識,并且能應用到相應的項目開發(fā)中對項目開發(fā)的一些相關文檔也有了一定的了解,能順利實現(xiàn)項目的需求。還有一點關于代碼學習的體會,通過看人家的代碼能夠加快自己的學習。這個方法對有經(jīng)驗的人來講是對的,但是對于還在學習期間,沒有經(jīng)驗的學員來講,就是一個認識的誤區(qū)了。因為你也許能看懂代碼的語法,但根本看不懂代碼背后的含義,看不懂代碼的設計,看不懂為什么要這么實現(xiàn),看不懂代碼所體現(xiàn)的思想,其實,看了跟沒看沒有多大區(qū)別。
學生簽名:年月日
5/5
擴展閱讀:第四小組《Java項目實訓》軟件工程系實訓總結(jié)報告
課程實訓報告書
技能實訓(課程設計)
總結(jié)報告
實訓項目Java項目實訓系部軟件工程系指導老師朱堂勛日期201*-1-5
201*180109盧徵
20201*0071李曉輝實訓報告撰寫注意事項
一、報告內(nèi)容至少應包括以下項目:
1、具體實訓內(nèi)容;2、本次實訓主要目的;
3、具體日程、實訓地點、同組同學、指導老師等;
4、實驗操作或技能訓練步驟,課程設計還應包括設計任務書、原始參數(shù)、計算說明、圖紙圖表、程序清單等;
5、本次實訓的主要收獲與體會。
二、其余如報告的具體格式、篇幅等要求,視實訓課程的區(qū)別由實訓任課老師或課程設計指導教師按實訓大綱,用《實訓指導書》或《課程設計指導書》的形式具體規(guī)定。
教務處實訓中心制
課程實訓報告書
一、實訓名稱
《編寫記事本程序》
二、實訓項目的目的和功能
本次實訓是對前面學過的所有面向?qū)ο蟮木幊趟枷胍约熬幊谭椒ǖ囊粋總結(jié)、回顧和實踐,因此,開始設計前學生一定要先回顧以前所學的內(nèi)容,明確本次作業(yè)設計所要用到的技術點并到網(wǎng)上搜索以及查閱相關的書籍來搜集資料。通過編寫一個基于J2SE的應用系統(tǒng)綜合實例,以掌握Java語言編程技巧。
具體要求有以下幾點:
1.問題的描述與程序?qū)⒁獙崿F(xiàn)的具體功能。
2.程序功能實現(xiàn)的具體設計思路或框架,并檢查流程設計。3.代碼實現(xiàn)。
4.程序測試(如程序代碼、功能測試、可靠性測試和效率測試等)。5.設計小結(jié)。
三、實訓項目的開發(fā)環(huán)境和所使用的技術
使用Java核心API技術,利用Eclipse或NetBeans、JBuilder集成開發(fā)環(huán)境完成實訓項目,界面友好,代碼的可維護性好,有必要的注釋和相應的文檔。
四、實訓地點、日程、分組情況
實訓地點:2棟301機房分組情況:盧徵(組長)、李曉輝日程:
第一階段:
1.班級分組,選定課題,查閱相關資料半天2.劃分模塊、小組成員分工半天3利用CASE工具進行系統(tǒng)設計和分析,并編制源程序3天第二階段:上機調(diào)試,修改、調(diào)試、完善系統(tǒng)1天第三階段:撰寫、上交課程設計報告,上交課程設計作品源程序(每人一份)1天
五、小組分工李曉輝:負責代碼編寫盧徵:負責程序的測試與調(diào)試
實訓成績2
評語課程實訓報告書
文本編輯器的設計和實現(xiàn)
1實訓目的
1.1實訓目的
本次實訓是對前面學過的所有面向?qū)ο蟮木幊趟枷胍约熬幊谭椒ǖ囊粋總結(jié)、回顧和實踐,因此,開始設計前學生一定要先回顧以前所學的內(nèi)容,明確本次作業(yè)設計所要用到的技術點并到網(wǎng)上搜索以及查閱相關的書籍來搜集資料。通過編寫一個基于J2SE的應用系統(tǒng)綜合實例,以掌握Java語言編程技巧。
1.2實訓要求
具體要求有以下幾點:
1.問題的描述與程序?qū)⒁獙崿F(xiàn)的具體功能。
2.程序功能實現(xiàn)的具體設計思路或框架,并檢查流程設計。3.代碼實現(xiàn)。
4.程序測試(如程序代碼、功能測試、可靠性測試和效率測試等)。5.
設計小結(jié)。
2文本編輯器系統(tǒng)的分析與設計
2.1系統(tǒng)功能描述
通過此系統(tǒng)可以實現(xiàn)如下功能:
1、可進行文件的新建、打開、保存、編輯等基本功能。2、支持復制、剪切和粘貼操作3、可進行查找和替換操作2.2系統(tǒng)模塊設計
根據(jù)系統(tǒng)自帶的文檔編輯器的特征設計,包括如下的功能模塊:一、整體結(jié)構(gòu)框架包括:菜單欄和文檔編輯區(qū)
二、每個框架分別包含不同的子框架,各個模塊的具體框架:
菜單欄:文件、編輯、插入、格式、工具、幫助菜單欄中各個子菜單功能
文件:新建、打開、保存、另存、退出
編輯:撤銷、剪切、復制、粘貼、刪除、全選、查找、替換工具:字體統(tǒng)計幫助:版本
課程實訓報告書
子菜單功能的實現(xiàn)主要的幾個功能介紹
1)打開與另存為:兩個窗體調(diào)用系統(tǒng)函數(shù)直接利用,注意格式的選擇2)查找:查找內(nèi)容、查找、查找下一個文本編輯區(qū)
監(jiān)視文本內(nèi)容是否改變、監(jiān)聽光標所在位置2.3數(shù)據(jù)庫結(jié)構(gòu)設計
1.程序E-R圖
文件新建打開保存另存為退出課程實訓報告書
刪除全選查找編輯剪切復制粘貼工具字數(shù)統(tǒng)計幫助版本5
課程實訓報告書
3主要代碼清單
3.1生成菜單欄及菜單項
在窗體初始化時,自動添加菜單及其菜單項,用于在文本編輯器中對文本去內(nèi)容進行操作,使用for語句循環(huán)生成菜單欄和菜單項。
classCextendsJFrame{//在文本區(qū)域內(nèi)動態(tài)顯示輸入字符數(shù)Stringprefix="下面的文本域里現(xiàn)在共有";//統(tǒng)計窗體字數(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="";
課程實訓報告書
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)聽事件,當進行操作時,監(jiān)聽事件活得事件源并選擇相應的操作,對不同的事件調(diào)用不同的函數(shù),得到文本操作的不同結(jié)果。
publicvoidactionPerformed(ActionEvente){//單擊事件處理方法,單擊菜單項Stringcomm=e.getActionCommand();
if("新建".equals(comm)){
if(!(frame.getTitle().equals("新記事本"))){if(!flag){
write();newNew();
JFileChooserjfc=newJFileChooser("D:\\\\java課堂筆記");
intreturnVal=jfc.showDialog(null,"保存為");
7}else{課程實訓報告書
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{
課程實訓報告書
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("復制".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);
課程實訓報告書
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,"關于對話框");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){
課程實訓報告書
}finalJFrameztsz=newJFrame("字體設置...");//字體設置窗口
elseif("字體".equals(comm)){
//字體
ztsz.setLocation(150,200);ztsz.setSize(500,300);
jf.setEnabled(false);//文本編輯窗體不可用!finalJComboBoxjc=newJComboBox(
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());jc.setLocation(30,80);
}elseif("字數(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);
課程實訓報告書
//字形
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程序運行與測試
4.1文本區(qū)功能測試
a)字體的顯示,開始的時候不做任何操作的時候顯示的默認值,通過修改字體的屬性來修改
字體。
b)對文本事件進行監(jiān)聽,如果文本編輯窗口中如果有事件觸發(fā),關閉時能夠有必要的信息提
示。
課程實訓報告書
c)狀態(tài)欄的可以正常顯示文本的狀態(tài)信息。
4.2文件菜單功能測試
課程實訓報告書
文件中的功能測試:
a)通過文件字符流讀取文件,創(chuàng)建緩沖區(qū)存儲文件流。
b)當保存文件時,先判斷文件是否未被保存過,如果未被保存過,則創(chuàng)建新文件并通過
輸出流來存儲文件,當文件已經(jīng)保存過再對文件進行修改時,則會提示保存的消息窗體。
c)另存為是通過不同的方法來創(chuàng)建一個新的文件。
4.3編輯菜單功能測試
復制前粘貼后
剪切、復制、粘貼功能的實現(xiàn)是在注冊監(jiān)聽事件后,對文本去的文字進行操作時,系統(tǒng)調(diào)用文本類本身的庫函數(shù)來處理文本去的文字操作,將選中的文本讀入緩沖區(qū)。然后再等待不同的操作方法的調(diào)用。4.4工具菜單功能測試
功能描述:
查找需要先生成對應的窗體,使用相應的組件類來創(chuàng)建窗體,使用流布局管理器來對窗體中的
課程實訓報告書
各個控件進行布局,對查找和查找下一個按鈕注冊監(jiān)聽事件并編寫相應的處理方法。文本去的文字使用相應的處理方法進行比較和處理,并對光標位置進行判斷是否到文本末尾,使用異常處理語句捕獲異常并處理。
功能描述:
使用相應的組件類來創(chuàng)建窗體,使用流布局管理器來對窗體中的各個控件進行布局,對替換和清空按鈕注冊監(jiān)聽事件并編寫相應的處理方法。
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){
課程實訓報告書
}}publicMyNotepad(){
JMenuBarjmb=newJMenuBar();
String[]menuLab={"文件","編輯","插入","格式","工具","幫助"};String[][]menuItemLab={{"新建","打開","保存","另存","退出"},
{"撤銷","剪切","復制","粘貼","刪除","全選","查找","替換"},{"文件"},
{"字體"},{"字數(shù)統(tǒng)計"},{"版本"}};for(inti=0;i課程實訓報告書
并發(fā)現(xiàn)了自己的不足之處。
在編寫代碼時需要的是我們的細心,因為編寫代碼是一個煩瑣的過程,我們?nèi)绻徊恍⌒,代碼就很容易出現(xiàn)漏詞、錯詞已經(jīng)缺詞,所以我們采用了先完整的思考整個程序的步驟、思想,然后采取分工合作,一個負責代碼編寫,而另一個負責程序的調(diào)試。這樣既節(jié)省了時間,又提高了效率。同時這樣還便于兩人對遇到問題時能夠加以討論共同修改。
在窗體中需要加入文本編輯區(qū)來存儲文本,這就需要創(chuàng)建文本對象并對其進行實例化,并且在編輯菜單中還需要多個方法來實現(xiàn)對文本的操作和處理,比如剪切和復制,用到本身的函數(shù)來操作。對于所有的菜單和菜單項以及控件所做才操作處理都需要注冊其相應的監(jiān)聽事件來完成,而在文件菜單中,打開的操作用到了文件的輸入流,保存則用到了文本的輸出流。而在打開事件中所以遇到的錯誤在查閱了很多資料后在得以解決,并在此過程中學到了很多老師在課程中沒有講到的知識,是自己受益匪淺,在文件菜單中的保存中,需要用if語句進行相應的判斷,來執(zhí)行不同的代碼實現(xiàn),并與相應的異常處理語句相結(jié)合來完善程序,使代碼具有健壯性和靈活性,減少程序運行時錯誤出現(xiàn)。
由于時間倉促,還有許多其他的功能沒有,并在已實現(xiàn)的功能中也有不足的地方,還需要進一步對其進行修改。再次過程中不斷加深對java程序設計的認識和理解,豐富自己的知識,了解自己的不足,加強自己的理解能力和學習能力,提高自己獨立解決問題的能力。Java是一門全新的計算機語言,需要自己對其全新的理解,而java的很多功能都需要在學習中去發(fā)現(xiàn)和理解,應用到不同的設計中去,并結(jié)合網(wǎng)絡這個以有利工具方便自己學習java的語言和強大的編碼能力,以及在以后的設計中把程序不斷完善。
友情提示:本文中關于《軟件工程實訓(java)總結(jié)報告》給出的范例僅供您參考拓展思維使用,軟件工程實訓(java)總結(jié)報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。