JAVA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
JAVA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
JAVA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
JAVA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
JAVA課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

課課程設(shè)計(jì)報(bào)告課程名稱Java語言程序設(shè)計(jì)班級姓名學(xué)號(hào)指導(dǎo)教師報(bào)告提交日期

簡易迷宮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)一、課程設(shè)計(jì)的目的為了培養(yǎng)學(xué)生結(jié)構(gòu)化程序設(shè)計(jì)的思想,加深對JAVA語言基本語言要素和控制結(jié)構(gòu)的理解與運(yùn)用,針對java語言中的重點(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)的簡易迷宮系統(tǒng),通過判斷棋子所走路徑是wall還是road,來實(shí)現(xiàn)從入口到出口的整個(gè)流程,并可任意選擇五種不同的迷宮。2.概要設(shè)計(jì)首先使用maze類實(shí)現(xiàn)整個(gè)迷宮的圖形用戶界面,然后根據(jù)Handlemove和WallorRoad來判斷旗子下一步路徑,并根據(jù)主頁面的兩個(gè)menuitem選項(xiàng)來轉(zhuǎn)換不同風(fēng)格的迷宮。3.總體設(shè)計(jì)簡易迷宮系統(tǒng)主要包括6個(gè)類,它們的功能如下。(1)Maze類和MazeWindow其主要功能為實(shí)現(xiàn)整個(gè)迷宮的圖形用戶界面,根據(jù)函數(shù)來選擇之前準(zhǔn)備好的maze類型的六種不同迷宮。(2)HandleMove類用來控制旗子所走路徑,并添加textfield來限制所用時(shí)間,通過timer定時(shí)器來進(jìn)行控制(3)MazePoint類用來確定旗子的橫縱坐標(biāo),通過isHaveWallOrRoad和setIsWallOrRoad兩個(gè)函數(shù)來實(shí)現(xiàn)坐標(biāo)選擇。(4)personMaze類來對所用旗子進(jìn)行圖形選擇。(5)WallOrRoad類來判斷是Wall還是Road。流程圖:簡易迷宮系統(tǒng)實(shí)現(xiàn)功能圖:否否重新開始開始單擊頭像是路徑選擇移動(dòng)判斷是Wall還是Road結(jié)束方向控制開始判斷開始判斷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ī)定的上限,“走迷宮者”上的圖像變?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("單擊走迷宮者,按鍵盤方向鍵",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){}}注:完整代碼見源代碼文檔運(yùn)行界面:四、運(yùn)行調(diào)試與分析討論由于沒有把所有的類放在一個(gè)java文件中,而是放在了幾個(gè)不同的java文件里,然而每個(gè)文件又要相互使用定義的類,導(dǎo)致不能編譯運(yùn)行。同時(shí),沒有把類之間的關(guān)系處理好,也造成了不能運(yùn)行的原因。在上網(wǎng)查閱資料后,使問題的根源得以解決,使得程序終于能順利運(yùn)行。五、總結(jié)JAVA語言課程設(shè)計(jì)是我們學(xué)完理論課程之后對自己動(dòng)手操作能力的一次鍛煉,也是自己對JAVA學(xué)習(xí)結(jié)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論