版權(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)告課程名稱Java語(yǔ)言程序設(shè)計(jì)班級(jí)姓名學(xué)號(hào)指導(dǎo)教師報(bào)告提交日期
簡(jiǎn)易迷宮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)一、課程設(shè)計(jì)的目的為了培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對(duì)JAVA語(yǔ)言基本語(yǔ)言要素和控制結(jié)構(gòu)的理解與運(yùn)用,針對(duì)java語(yǔ)言中的重點(diǎn)和難點(diǎn)內(nèi)容進(jìn)行訓(xùn)練,獨(dú)立完成程序設(shè)計(jì)任務(wù),鍛煉學(xué)生動(dòng)手操作能力。二、系統(tǒng)分析與設(shè)計(jì)1.需求分析基于java實(shí)現(xiàn)的簡(jiǎn)易迷宮系統(tǒng),通過(guò)判斷棋子所走路徑是wall還是road,來(lái)實(shí)現(xiàn)從入口到出口的整個(gè)流程,并可任意選擇五種不同的迷宮。2.概要設(shè)計(jì)首先使用maze類實(shí)現(xiàn)整個(gè)迷宮的圖形用戶界面,然后根據(jù)Handlemove和WallorRoad來(lái)判斷旗子下一步路徑,并根據(jù)主頁(yè)面的兩個(gè)menuitem選項(xiàng)來(lái)轉(zhuǎn)換不同風(fēng)格的迷宮。3.總體設(shè)計(jì)簡(jiǎn)易迷宮系統(tǒng)主要包括6個(gè)類,它們的功能如下。(1)Maze類和MazeWindow其主要功能為實(shí)現(xiàn)整個(gè)迷宮的圖形用戶界面,根據(jù)函數(shù)來(lái)選擇之前準(zhǔn)備好的maze類型的六種不同迷宮。(2)HandleMove類用來(lái)控制旗子所走路徑,并添加textfield來(lái)限制所用時(shí)間,通過(guò)timer定時(shí)器來(lái)進(jìn)行控制(3)MazePoint類用來(lái)確定旗子的橫縱坐標(biāo),通過(guò)isHaveWallOrRoad和setIsWallOrRoad兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)坐標(biāo)選擇。(4)personMaze類來(lái)對(duì)所用旗子進(jìn)行圖形選擇。(5)WallOrRoad類來(lái)判斷是Wall還是Road。流程圖:簡(jiǎn)易迷宮系統(tǒng)實(shí)現(xiàn)功能圖:否否重新開(kāi)始開(kāi)始單擊頭像是路徑選擇移動(dòng)判斷是Wall還是Road結(jié)束方向控制開(kāi)始判斷開(kāi)始判斷MazeMazeWindowwwHandleMoveMazePointpersonMazeWallOrRoadstopService()sendStopToAll()portConf.show()startService()listenThread.start()Run()recvThread.start()Run()stopService()sendStopToAll()helpDialog.show()sendSystemMessage()sendSsgToAll()三、補(bǔ)充功能1.添加、查看英雄榜記錄每次用時(shí)并將用時(shí)最少的前三名放入英雄排行榜,用戶可以隨時(shí)查看英雄榜的記錄。結(jié)構(gòu)圖:英雄榜:當(dāng)完成任務(wù)時(shí),發(fā)出慶祝的聲音!本程序允許用戶更改迷宮中的“墻”和“路”上的圖像!規(guī)定一個(gè)時(shí)間上限,如果用時(shí)超過(guò)所規(guī)定的上限,“走迷宮者”上的圖像變?yōu)閜ig.jpg!四、部分代碼實(shí)現(xiàn)HandleMove()throwsMalformedURLException{musicFile=newFile("hello.wav");uri=musicFile.toURI();url=uri.toURL();clip=Applet.newAudioClip(url);recordTime=newjavax.swing.Timer(1000,this);showTime=newJTextField(16);tool=getToolkit();showTime.setEditable(false);showTime.setHorizontalAlignment(JTextField.CENTER);showTime.setFont(newFont("楷體_GB2312",Font.BOLD,16));JLabelhitMess=newJLabel("單擊走迷宮者,按鍵盤(pán)方向鍵",JLabel.CENTER);hitMess.setFont(newFont("楷體_GB2312",Font.BOLD,18));add(hitMess);add(showTime);setBackground(Color.cyan);}publicvoidsetMazePoint(MazePoint[][]point){p=point;}publicvoidinitSpendTime(){recordTime.stop();spendTime=0;showTime.setText(null);}publicvoidkeyPressed(KeyEvente){recordTime.start();PersonInMazeperson=null;person=(PersonInMaze)e.getSource();intm=-1,n=-1;MazePointstartPoint=person.getAtMazePoint();for(inti=0;i<p.length;i++){for(intj=0;j<p[i].length;j++){if(startPoint.equals(p[i][j])){m=i;n=j;break;}}}if(e.getKeyCode()==KeyEvent.VK_UP){intk=Math.max(m-1,0);if(p[k][n].getWallOrRoad().getIsRoad()){tool.beep();//發(fā)出嘟的一聲person.setAtMazePoint(p[k][n]);person.setLocation(p[k][n].getX(),p[k][n].getY());}}elseif(e.getKeyCode()==KeyEvent.VK_DOWN){intk=Math.min(m+1,p.length-1);if(p[k][n].getWallOrRoad().getIsRoad()){tool.beep();person.setAtMazePoint(p[k][n]);person.setLocation(p[k][n].getX(),p[k][n].getY());}}elseif(e.getKeyCode()==KeyEvent.VK_LEFT){intk=Math.max(n-1,0);if(p[m][k].getWallOrRoad().getIsRoad()){tool.beep();person.setAtMazePoint(p[m][k]);person.setLocation(p[m][k].getX(),p[m][k].getY());}}elseif(e.getKeyCode()==KeyEvent.VK_RIGHT){intk=Math.min(n+1,p[0].length-1);if(p[m][k].getWallOrRoad().getIsRoad()){tool.beep();person.setAtMazePoint(p[m][k]);person.setLocation(p[m][k].getX(),p[m][k].getY());}}}publicvoidactionPerformed(ActionEvente){spendTime++;showTime.setText("您的用時(shí):"+spendTime+"秒");}publicvoidkeyReleased(KeyEvente){PersonInMazeperson=(PersonInMaze)e.getSource();intm=-1,n=-1;MazePointendPoint=person.getAtMazePoint();if(endPoint.getWallOrRoad().getIsOut()){clip.loop();recordTime.stop();JOptionPane.showMessageDialog(this,"您成功了!","消息框",JOptionPane.INFORMATION_MESSAGE);}}publicvoidkeyTyped(KeyEvente){}}注:完整代碼見(jiàn)源代碼文檔運(yùn)行界面:四、運(yùn)行調(diào)試與分析討論由于沒(méi)有把所有的類放在一個(gè)java文件中,而是放在了幾個(gè)不同的java文件里,然而每個(gè)文件又要相互使用定義的類,導(dǎo)致不能編譯運(yùn)行。同時(shí),沒(méi)有把類之間的關(guān)系處理好,也造成了不能運(yùn)行的原因。在上網(wǎng)查閱資料后,使問(wèn)題的根源得以解決,使得程序終于能順利運(yùn)行。五、總結(jié)JAVA語(yǔ)言課程設(shè)計(jì)是我們學(xué)完理論課程之后對(duì)自己動(dòng)手操作能力的一次鍛煉,也是自己對(duì)JAVA學(xué)習(xí)結(jié)
溫馨提示
- 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年湖北電力建設(shè)第一工程公司招聘筆試參考題庫(kù)含答案解析
- 2025年度個(gè)人信用擔(dān)保裝修借款合同范本3篇
- 2025年個(gè)人金融理財(cái)產(chǎn)品投資合同4篇
- 2025年度油氣輸送鋼管租賃合作合同2篇
- 2025年度個(gè)人農(nóng)田科技種植項(xiàng)目合作協(xié)議4篇
- 2025版二手房免稅托管與租賃一體化服務(wù)合同
- 2025版協(xié)議離婚全程法律服務(wù)及婚姻財(cái)產(chǎn)分割合同3篇
- 2025年度二零二五年度鋼廠廢鋼再生產(chǎn)品銷售合同2篇
- 2025版新能源電池生產(chǎn)承包經(jīng)營(yíng)合同示范文本3篇
- 2025-2030全球叉車機(jī)器人行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(kù)(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計(jì)算機(jī)組成原理-電子科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年部編版八年級(jí)語(yǔ)文上冊(cè)電子課本(高清版)
- 2024年上海健康醫(yī)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 2024年湖北省武漢市中考語(yǔ)文適應(yīng)性試卷
- 2024-2025學(xué)年廣東省大灣區(qū)40校高二上學(xué)期聯(lián)考英語(yǔ)試題(含解析)
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- 2024-2030年電炒鍋?lái)?xiàng)目融資商業(yè)計(jì)劃書(shū)
- EDIFIER漫步者S880使用說(shuō)明書(shū)
評(píng)論
0/150
提交評(píng)論