版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《軟件工程》實(shí)訓(xùn)報(bào)告題目掃雷小游戲?qū)嵙?xí)起止時(shí)間:12月02日至年12月12日
目錄TOC\o"1-1"\h\z\u一、實(shí)習(xí)時(shí)間 1二、實(shí)習(xí)地點(diǎn) 1三、實(shí)習(xí)目的 1四、實(shí)習(xí)內(nèi)容 1五、實(shí)習(xí)小結(jié)或體會(huì) 8六、參考文獻(xiàn) 9七、指導(dǎo)教師評(píng)閱 10一、實(shí)習(xí)時(shí)間從12月02日至年12月12日。二、實(shí)習(xí)地點(diǎn)。三、實(shí)習(xí)目的
通過本實(shí)訓(xùn)的實(shí)踐及其前后的準(zhǔn)備與總結(jié),復(fù)習(xí)、領(lǐng)略、鞏固和運(yùn)用軟件工程課堂上所學(xué)的軟件開發(fā)辦法和知識(shí),例如,軟件項(xiàng)目的完整設(shè)計(jì)與開發(fā)過程、構(gòu)造化技術(shù)、快速原型法和面對(duì)對(duì)象辦法等。特別是構(gòu)造化分析、構(gòu)造化設(shè)計(jì)、快速原型開發(fā)、面對(duì)對(duì)象分析與面對(duì)對(duì)象設(shè)計(jì)。使每個(gè)學(xué)生理解軟件工具與環(huán)境對(duì)于項(xiàng)目開發(fā)的重要性,并且重點(diǎn)進(jìn)一步掌握好一、兩種較新或較流行的軟件工具或計(jì)算機(jī)應(yīng)用技術(shù)、技能(例如,網(wǎng)頁設(shè)計(jì)技術(shù)與常見工具;基于Java(ASP、PHP等)技術(shù)的Web編程;軟件開發(fā)文檔編制工具Office、Visio、Rose等;商用數(shù)據(jù)庫Access(或SQLServer、Oracle、MySql等)設(shè)計(jì)與實(shí)現(xiàn);客戶機(jī)/服務(wù)器構(gòu)造)。使學(xué)生通過參加小組團(tuán)體的開發(fā)實(shí)踐,理解項(xiàng)目管理、團(tuán)體合作、文檔編寫、口頭與書面體現(xiàn)的重要性。通過“稍大的”富有挑戰(zhàn)性的軟件實(shí)驗(yàn)項(xiàng)目開發(fā)實(shí)踐,為學(xué)生提供主動(dòng)學(xué)習(xí)(例如,對(duì)Web網(wǎng)頁設(shè)計(jì)、ASP或ASP交互網(wǎng)頁技術(shù)、Java開發(fā)環(huán)境、商用數(shù)據(jù)庫應(yīng)用、電子商務(wù)、客戶機(jī)/服務(wù)器技術(shù)、Visio與Rose軟件工具等內(nèi)容的學(xué)習(xí))、進(jìn)一步實(shí)踐的機(jī)會(huì),并且通過實(shí)訓(xùn)實(shí)踐中,提高學(xué)生的自學(xué)能力、書面與口頭體現(xiàn)能力、發(fā)明能力和與團(tuán)體其它組員交往和協(xié)作開發(fā)軟件的能力,提高學(xué)生此后參加開發(fā)稍大規(guī)模實(shí)際軟件項(xiàng)目和探索未知領(lǐng)域的能力和自信心。四、實(shí)習(xí)內(nèi)容1.可行性分析隨著現(xiàn)在生活節(jié)奏的加緊,人們?cè)诠ぷ髦嘈枰环N輕松娛樂的放松環(huán)境。因此編寫一種掃雷小游戲,首先能夠鍛煉我的Java開發(fā)能力,另首先開發(fā)此軟件能夠使顧客能在娛樂休閑的同時(shí)拓展思維能力,同時(shí)進(jìn)一步拓展研究掃雷的游戲構(gòu)造。2.系統(tǒng)分析業(yè)務(wù)流程圖數(shù)據(jù)流程圖數(shù)據(jù)字典名稱:總塊數(shù)描述:窗口上的方塊總和。數(shù)據(jù)流來源:游戲開始前,顧客輸入方塊數(shù)。數(shù)據(jù)流去向:初始化后窗口上的方塊數(shù)。數(shù)據(jù)流構(gòu)成:行數(shù)+列數(shù)+總數(shù)。名稱:雷數(shù)描述:窗口上雷的數(shù)量數(shù)據(jù)流來源:總塊數(shù)/10數(shù)據(jù)流去向:初始化后窗口上的雷數(shù)數(shù)據(jù)流構(gòu)成:行號(hào)+列號(hào)+總數(shù)。數(shù)據(jù)加工解決顧客輸入總塊數(shù)后,系統(tǒng)初始化,開始生成窗口,并隨機(jī)分布雷的位置,雷數(shù)為總塊數(shù)除以10,最后在全部的塊上覆蓋上按鈕,游戲開始。3.系統(tǒng)設(shè)計(jì)編碼規(guī)范大括號(hào)的使用商定。如果是大括號(hào)內(nèi)為空,則簡潔地寫成{}即可,不需要換行;如果是非空代碼塊則:左大括號(hào)前不換行。左大括號(hào)后換行。右大括號(hào)前換行。右大括號(hào)后尚有else等代碼則不換行;表達(dá)終止的右大括號(hào)后必須換行。左小括號(hào)和字符之間不出現(xiàn)空格;同樣,右小括號(hào)和字符之間也不出現(xiàn)空格。代碼中的命名均不能下列劃線或美元符號(hào)開始,也不能下列劃線或美元符號(hào)結(jié)束。代碼中的命名嚴(yán)禁使用拼音與英文混合的方式,更不允許直接使用中文的方式。類名使用UpperCamelCase風(fēng)格,必須遵從駝峰形式,辦法名、參數(shù)名、組員變量、局部變量都統(tǒng)一使用lowerCamelCase風(fēng)格,必須遵從駝峰形式。抽象類命名使用Abstract或Base開頭;異常類命名使用Exception結(jié)尾;測(cè)試類命名以它要測(cè)試的類的名稱開始,以Test結(jié)尾。包名統(tǒng)一使用小寫,點(diǎn)分隔符之間有且僅有一種自然語義的英語單詞。包名統(tǒng)一使用單數(shù)形式,但是類名如果有復(fù)數(shù)含義,類名能夠使用復(fù)數(shù)形式。4.系統(tǒng)實(shí)施源代碼importjava.awt.Container;importjavax.swing.JFrame;publicclassstarter{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstubJFrameclearing=newJFrame();GamePanelgamePanel=newGamePanel(20,20);int[]i=gamePanel.returnSize();clearing.setSize(i[0]+20,i[1]+40);clearing.setTitle("掃雷");clearing.setLocation(500,200);Containerc=clearing.getContentPane();c.add(gamePanel);clearing.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);clearing.setVisible(true); }}importjava.awt.Color;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjavax.swing.BorderFactory;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JOptionPane;publicclassGamePanelextendsJPanelimplementsMouseListener{ privateintrow;//行 privateintcol;//列 privateintboomCount; privatefinalintwidth=20; privatefinalintheight=20; privateJLabel[][]block; privateMybutton[][]buttons; privatefinalint[][]offset={{-1,-1},{0,-1},{1,-1},{1,0},{1,1},{0,1},{-1,1},{-1,0}}; publicGamePanel(introw,intcol){ this.row=row; this.col=col; this.boomCount=row*col/10+10; this.block=newJLabel[row][col]; this.buttons=newMybutton[row][col]; this.setLayout(null); this.initbutton(); this.initblock(); }privatevoidinitblock(){ for(inti=0;i<this.row;i++){ for(intj=0;j<this.col;j++){ JLabell=newJLabel("",JLabel.CENTER); l.setBounds(j*width,i*height,width,height); l.setBorder(BorderFactory.createLineBorder(Color.black)); l.setOpaque(true); l.setBackground(Color.getHSBColor(255,0,104)); this.add(l); block[i][j]=l; } } randomboom(); writeNumber(); } publicint[]returnSize(){ int[]a={this.col*width,this.row*height}; returna; } privatevoidrandomboom(){ for(inti=0;i<this.boomCount;i++){ intboomrow=(int)(Math.random()*this.row); intboomcol=(int)(Math.random()*this.col); this.block[boomrow][boomcol].setText("*"); this.block[boomrow][boomcol].setBackground(Color.gray); this.block[boomrow][boomcol].setForeground(Color.red); } } privatevoidinitbutton(){ for(inti=0;i<this.row;i++){ for(intj=0;j<this.col;j++){ Mybuttonbutton=newMybutton(); button.setBounds(j*width,i*height,width,height); this.add(button); buttons[i][j]=button; button.rows=i; button.cols=j; button.addMouseListener(this); } } }privatevoidwriteNumber(){ for(inti=0;i<this.row;i++){ for(intj=0;j<this.col;j++){ if(block[i][j].getText().equals("*")){ continue; } intboomCount=0; for(int[]off:offset){ introw=i+off[1]; intcol=j+off[0]; if(verify(row,col)&&block[row][col].getText().equals("*")){ boomCount++; } } if(boomCount>0){ block[i][j].setText(String.valueOf(boomCount)); } } } } privatevoidopen(Mybuttonbtn){ btn.setVisible(false); switch(block[btn.rows][btn.cols].getText()){ case"*":for(inti=0;i<row;i++){ for(intj=0;j<col;j++){ buttons[i][j].setVisible(false); } } JOptionPane.showMessageDialog(null,"你踩到雷了,游戲結(jié)束。"); break; case"":for(int[]off:offset){ intnewRow=btn.rows+off[0]; intnewCol=btn.cols+off[1]; if(verify(newRow,newCol)){ MybuttonsButton=buttons[newRow][newCol]; if(sButton.isVisible()){ open(sButton); } } } default: } } privatebooleanverify(introws,intcols){ returnrows>=0&&rows<this.row&&cols>=0&&cols<this.col; } @Override publicvoidmouseClicked(MouseEvente){ //TODOAuto-generatedmethodstub if(e.getButton()==MouseEvent.BUTTON1){ open((Mybutton)e.getSource()); } }游戲運(yùn)行界面五、實(shí)習(xí)小結(jié)或體會(huì)這次軟件工程課程中,我學(xué)到了諸多東西,第一次深刻的體會(huì)到了什么叫做用工程化的思想來編寫軟件,以前自己也寫過某些小東西,沒有做過大型的項(xiàng)目,直到這次課堂我需要完畢“掃雷”這個(gè)項(xiàng)目,才發(fā)現(xiàn)運(yùn)用工程化的思想來做是如此的有必要。從這里,我才真正的意識(shí)到實(shí)施一種軟件工程并不是說簡樸的會(huì)編碼就能夠解決問題的,我們更多的精力不是放在編碼上,編碼只是一種很小的模塊,只占到那么小的一種部分。這個(gè)事實(shí)在很大程度上顛覆了我以前的思想,在我以前的認(rèn)識(shí)中,似乎整個(gè)軟件就是編碼,除此無它,還好有老師的指導(dǎo),否則真的會(huì)出現(xiàn)老師所說的,撞得頭破血流之后才想起來用軟件工程的思想來完畢這個(gè)工作。剛真正開始工作之前,我費(fèi)了諸多的時(shí)間來完畢某些前端工作,如需求分析和可行性分析,這塊工作在別人看來可能是相對(duì)無關(guān)緊要,甚至是多于的,其實(shí),換做在以前,我也會(huì)這樣認(rèn)為??墒牵椰F(xiàn)在算是深深地明白了磨刀不誤砍柴工的道理,這些工作的完畢太有必要了,太重要了,要想你的軟件有用有市場,能被別人接受和承認(rèn),在進(jìn)行過程中不會(huì)出現(xiàn)崩潰性的問題,這些工作缺一不可。尚有就是接下來的某些設(shè)計(jì)模塊,此模塊與軟件編碼涉及比較緊密,重要是解決某些參數(shù)傳遞和接口通訊的問題,此模塊對(duì)我的觸動(dòng)遠(yuǎn)沒有上兩個(gè)模塊對(duì)我的影響大,因此再次也不做過多的介紹。碰到問題先自己思考,無從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著,看多了自己也會(huì)了,否則你一輩子都停留在那種水平,從人
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024展廳展示合同范本:創(chuàng)意市集臨時(shí)展廳設(shè)計(jì)與搭建正規(guī)范本3篇
- 管理課程培訓(xùn)課程設(shè)計(jì)
- 2024年只分紅不占股的文化產(chǎn)業(yè)合作協(xié)議3篇
- 2024年意外醫(yī)療進(jìn)口器材技術(shù)交流與合作合同2篇
- 2024年版協(xié)議履行與擔(dān)保權(quán)益明確協(xié)議版B版
- 2024年糧食物流運(yùn)輸服務(wù)協(xié)議規(guī)范版版B版
- 工程圖學(xué)c課程設(shè)計(jì)
- 2024年度國際貨物安全運(yùn)輸合同-第二節(jié)安全防護(hù)措施與應(yīng)急預(yù)案3篇
- 2024年法定離婚合同指導(dǎo)版B版
- 2024年標(biāo)準(zhǔn)抵押房產(chǎn)買賣合同范本3篇
- 幼兒園后勤管理總結(jié)匯報(bào)
- 2024年研究生考試考研思想政治理論(101)試卷及解答參考
- 2023-2024學(xué)年浙江省寧波市江北區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 年終獎(jiǎng)發(fā)放通知范文
- 農(nóng)產(chǎn)品物流集散中心建設(shè)方案及發(fā)展思路
- 自動(dòng)化生產(chǎn)線安裝與調(diào)試課件
- 2023-2024學(xué)年廣東省廣州市天河區(qū)七年級(jí)(上)期末英語試卷
- 《臨床檢驗(yàn)儀器與技術(shù)》考試復(fù)習(xí)題庫(含答案)
- 04S519小型排水構(gòu)筑物(含隔油池)圖集
- 北京海淀區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末數(shù)學(xué)數(shù)學(xué)試卷
- 三年級(jí)上冊(cè)《勞動(dòng)》期末試卷及答案
評(píng)論
0/150
提交評(píng)論