




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
陜西國(guó)際商貿(mào)學(xué)院JAVA實(shí)訓(xùn)報(bào)告專(zhuān)業(yè):信息管理與信息系統(tǒng)班級(jí):信管B1201姓名:楊?lèi)倢W(xué)號(hào):125787指導(dǎo)老師:程瑤提交日期:2014年6月5日前言JAVA語(yǔ)言是當(dāng)今最為流行的程序設(shè)計(jì)語(yǔ)言之一,作為一門(mén)非常優(yōu)秀和極為健壯的編程語(yǔ)言,它同時(shí)具有的面向?qū)ο?,與平臺(tái)無(wú)關(guān),分布式應(yīng)用,安全,穩(wěn)定和多線程等優(yōu)良的特征,使用JAVA語(yǔ)言,不僅可以開(kāi)發(fā)出功能強(qiáng)大的大型應(yīng)用程序,而且JAVA語(yǔ)言本身突出的跨平臺(tái)的特性也使得它特別適合于Internet上的應(yīng)用開(kāi)發(fā),可以這樣說(shuō),JAVA的出現(xiàn)使得所開(kāi)發(fā)的應(yīng)用程序“一次編寫(xiě),處處可用”的實(shí)現(xiàn)成為了可能。JAVA是一門(mén)說(shuō)簡(jiǎn)單也不簡(jiǎn)單,說(shuō)難也不難的課程。所以,我們?cè)趯W(xué)習(xí)的過(guò)程中要根據(jù)自己的具體情況,合理安排編程訓(xùn)練時(shí)間,相信編程能力在不知不覺(jué)中得到提高。本次課程設(shè)計(jì)是配合JAVA程序設(shè)計(jì)課程,幫助我們深入學(xué)習(xí)掌握J(rèn)AVA語(yǔ)言,熟練運(yùn)用這個(gè)工具來(lái)編寫(xiě)的。通過(guò)課程設(shè)計(jì)各個(gè)項(xiàng)目的綜合訓(xùn)練,不僅培養(yǎng)學(xué)生實(shí)際分析問(wèn)題、編程和動(dòng)手能力,而且還提高了學(xué)生的綜合素質(zhì)。本課程設(shè)計(jì)嘗試使用一些較生動(dòng)的示例和設(shè)計(jì)項(xiàng)目,激發(fā)學(xué)生學(xué)習(xí)興趣,引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)以及正確理解、接受需要重點(diǎn)掌握的知識(shí)點(diǎn),為參加項(xiàng)目開(kāi)發(fā)及更深入學(xué)習(xí)做好準(zhǔn)備。本次課程設(shè)計(jì)主要是用JAVA語(yǔ)言編寫(xiě)圍棋對(duì)弈系統(tǒng)。目錄一、實(shí)訓(xùn)目的 3二、JAVA概述 3三、系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境 4四、功能分析 5五、系統(tǒng)設(shè)計(jì) 5六、測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果 7七、總結(jié) 10一、實(shí)訓(xùn)目的目前很多圍棋游戲正在運(yùn)行,但是使用JAVA平臺(tái)開(kāi)發(fā)的游戲少之又少,這就使得圍棋客戶(hù)端的運(yùn)行平臺(tái)十分有限,不能滿(mǎn)足今后發(fā)展的需求,如移動(dòng)客戶(hù)端,就基本上沒(méi)有。因此開(kāi)發(fā)一套基于JAVA的圍棋系統(tǒng)十分必要?jiǎng)?chuàng)建一個(gè)圍棋對(duì)弈平臺(tái)。通過(guò)對(duì)圍棋程序的編寫(xiě),掌握這個(gè)綜合實(shí)例是如何全面的闡述和編寫(xiě)GUI程序,使自己對(duì)JAVA語(yǔ)言有了更深的了解,并能綜合運(yùn)用所學(xué)課程進(jìn)行設(shè)計(jì),掌握算法設(shè)計(jì)即實(shí)現(xiàn)的理論和方法,為畢業(yè)設(shè)計(jì)和今后的工作打下良好的基礎(chǔ)。二、JAVA概述JAVA語(yǔ)言是一個(gè)支持網(wǎng)絡(luò)計(jì)算的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。JAVA語(yǔ)言吸收了Smalltalk語(yǔ)言和C++語(yǔ)言的優(yōu)點(diǎn),并增加了其它特性,如支持并發(fā)程序設(shè)計(jì)、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。主要特性如下:1.JAVA語(yǔ)言是簡(jiǎn)單的。JAVA語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用JAVA。另一方面,JAVA丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類(lèi)型轉(zhuǎn)換。特別地,JAVA語(yǔ)言不使用指針,并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂(yōu)。2.JAVA語(yǔ)言是一個(gè)面向?qū)ο蟮摹AVA語(yǔ)言提供類(lèi)、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類(lèi)之間的單繼承,但支持接口之間的多繼承,并支持類(lèi)與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。3.JAVA語(yǔ)言是分布式的。JAVA語(yǔ)言支持Internet應(yīng)用的開(kāi)發(fā),在基本的JAVA應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(JAVA.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類(lèi)庫(kù)。4.JAVA語(yǔ)言是健壯的。JAVA的強(qiáng)類(lèi)型機(jī)制、異常處理、廢料的自動(dòng)收集等是JAVA程序健壯性的重要保證。對(duì)指針的丟棄是JAVA的明智選擇。JAVA的安全檢查機(jī)制使得JAVA更具健壯性。5.JAVA語(yǔ)言是安全的。JAVA通常被用在網(wǎng)絡(luò)環(huán)境中,為此,JAVA提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。6.JAVA語(yǔ)言是體系結(jié)構(gòu)中立的。JAVA程序(后綴為JAVA的文件)在JAVA平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)JAVA平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。7.JAVA語(yǔ)言是可移植的。JAVA系統(tǒng)本身也具有很強(qiáng)的可移植性,JAVA編譯器是用JAVA實(shí)現(xiàn)的,JAVA的運(yùn)行環(huán)境是用ANSIC實(shí)現(xiàn)的。8.JAVA語(yǔ)言是解釋型的。如前所述,JAVA程序在JAVA平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)JAVA平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),JAVA平臺(tái)中的JAVA解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類(lèi)在聯(lián)接階段被載入到運(yùn)行環(huán)境中。9.JAVA是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,JAVA的確是高性能的。事實(shí)上,JAVA的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C++。10.JAVA語(yǔ)言是多線程的。在JAVA語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類(lèi)或其子類(lèi)來(lái)創(chuàng)建。三、系統(tǒng)開(kāi)發(fā)及運(yùn)行環(huán)境1.軟件平臺(tái):Eclipse+JDK1.5平臺(tái)。本系統(tǒng)采用Eclipse+JDK1.5平臺(tái)原因在于:Eclipse是一個(gè)開(kāi)放源代碼的、基于JAVA的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括JAVA開(kāi)發(fā)工具(JDT)。2.CPU:P41.8GHz。3.內(nèi)存:256MB以上。4.操作系統(tǒng):WindowsXP、Windows7。5.分辨率:最佳效果1024×768像素。四、功能分析在編寫(xiě)圍棋程序時(shí),需要繪制棋譜,編寫(xiě)白起和黑棋的落子、吃子動(dòng)作,并設(shè)置悔棋功能,雙擊棋子即可完成,單機(jī)重新開(kāi)局按鈕還可重新開(kāi)始下棋。整個(gè)圍棋程序分為三個(gè)部分:棋盤(pán)、棋子、圍棋主類(lèi)。Chessboard類(lèi)繼承JPanel類(lèi)定義了棋盤(pán)方格的長(zhǎng)度及數(shù)目,利用Vector保存所有以下的棋子,包括在棋盤(pán)上的所有棋子和被踢掉的;控制面板類(lèi)中在ControlPanel構(gòu)造方法中定義了棋盤(pán)的大小,基于Panel類(lèi)定義一個(gè)面板子類(lèi),利用Graphics類(lèi)的drawLine()方法繪制棋格線,利用fillOval()方法繪制棋盤(pán)四角的星位。為面板注冊(cè)MouseEvent監(jiān)聽(tīng)器,為一個(gè)按鈕注冊(cè)ActionEvent事件監(jiān)聽(tīng)器,實(shí)現(xiàn)單擊鼠標(biāo)布子、單機(jī)一個(gè)重新開(kāi)局等操作。黑白棋中paint()方法用來(lái)繪制棋子,通過(guò)為棋子注冊(cè)MouseEvent事件監(jiān)聽(tīng)器實(shí)現(xiàn)雙擊棋子吃子、右擊棋子悔棋等操作。在放置棋子的時(shí)候,通常需要將棋子的坐標(biāo)轉(zhuǎn)換為棋盤(pán)的實(shí)際位置,Chesspoint類(lèi)的功能為獲得實(shí)際棋子的位置。編寫(xiě)完棋子和棋盤(pán)后,可以利用JFrame類(lèi)將棋盤(pán)和棋子顯示出來(lái)。Chess也是圍棋程序的主類(lèi),對(duì)圍棋界面外觀進(jìn)行初始化之后即可創(chuàng)建為其對(duì)象。五、系統(tǒng)設(shè)計(jì)此課程設(shè)計(jì)是一個(gè)小游戲(圍棋)的系統(tǒng),主要運(yùn)用了GUI圖形用戶(hù)界面,API應(yīng)用程序端口來(lái)實(shí)現(xiàn)。此程序沒(méi)有用到圖片的引用,棋盤(pán)和棋子的設(shè)計(jì)完全是應(yīng)用函數(shù)繪制,通過(guò)對(duì)棋盤(pán)的外觀設(shè)計(jì),對(duì)棋子操作的流程進(jìn)行很好地設(shè)計(jì),以及在控制面板類(lèi)中加入復(fù)選框,按鈕,標(biāo)簽及實(shí)現(xiàn)本游戲的用戶(hù)界面布局設(shè)計(jì),使一個(gè)圍棋的系統(tǒng)呈現(xiàn)在人們眼前。通過(guò)課程設(shè)計(jì)把課堂上講的融會(huì)貫通,學(xué)會(huì)設(shè)計(jì)程序、開(kāi)發(fā)應(yīng)用軟件、開(kāi)發(fā)系統(tǒng)軟件等各項(xiàng)工作。5.1主界面主界面有悔棋按鈕、重新開(kāi)局按鈕以及選擇棋盤(pán)的大小。用Chessboard類(lèi)繪制棋盤(pán),棋盤(pán)的方格長(zhǎng)度和數(shù)目,棋盤(pán)的寬度和高度,棋盤(pán)的大小,Chessboard構(gòu)造方法繪制棋盤(pán)的外觀,利用Graphics類(lèi)的drawLine()方法繪制棋格線等,如圖5.1所示。圖5.1初始界面5.2棋子棋子顏色分為黑白兩色,棋子數(shù)量以黑子181,白子180個(gè)為宜。paint()方法用來(lái)繪制棋子,下棋子時(shí)要判斷是否擠死自己,若是則已落子無(wú)效,還要判斷落子后是否可以踢掉對(duì)方等等。利用Vector保存所有以下的棋子,包括在棋盤(pán)上的所有棋子和被踢掉的,若某一次騾子沒(méi)有造成踢子,包括所有被這個(gè)棋子踢掉的棋子及棋子本身,Vector最后,如圖5.2所示。圖5.2運(yùn)行界面5.3圍棋的下法該系統(tǒng)要基于圍棋的下法來(lái)設(shè)置界面,以及操作的實(shí)現(xiàn)等。以下是圍棋的下法:1.對(duì)局雙方各執(zhí)一色棋子,黑先白后,交替下子,每次只能下一子。2.棋子下在棋盤(pán)的點(diǎn)上。3.棋子下定后,不得向其他點(diǎn)移動(dòng)。4.輪流下子是雙方的權(quán)利,但允許任何一方放棄。5.4計(jì)算勝負(fù)程序?qū)⒏鶕?jù)圍棋的規(guī)則判斷勝負(fù)。5.5棋盤(pán)大小選擇該系統(tǒng)可以進(jìn)行棋盤(pán)大小選擇,有18*18方格的,14*14方格的,12*12方格的,11*11方格的和7*7方格的棋盤(pán)大小可供選擇。其部分實(shí)現(xiàn)代碼如下://選擇棋盤(pán)的大小 publicControlPanel(){ setSize(this.getWidth(),this.getHeight()); setLayout(newGridLayout(12,1,0,10)); setLabel(); choice.add("18X18"); choice.add("14X14"); choice.add("12X12"); choice.add("11X11"); choice.add("7X7"); choice.addItemListener(newChessAction()); add(lblTurn); add(lblNum); add(start); add(choice); add(lblMsg); add(back); back.addActionListener(newBackChess()); start.addActionListener(newBackChess()); setBackground(newColor(120,120,200)); } publicInsetsgetInsets(){ returnnewInsets(5,5,5,5); }六、測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果通過(guò)測(cè)試,該圍棋程序運(yùn)行良好,該系統(tǒng)運(yùn)行截圖見(jiàn)圖6.1,圖6.2。圖6.1初始界面經(jīng)過(guò)改變棋盤(pán)大小的運(yùn)行界面:圖6.2運(yùn)行界面七、總結(jié)經(jīng)過(guò)對(duì)JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)的學(xué)習(xí),讓我更加了解到JAVA的重要性,以及JAVA對(duì)我們專(zhuān)業(yè)的發(fā)展發(fā)揮的作用。JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)是我們專(zhuān)業(yè)的一門(mén)主要的專(zhuān)業(yè)基礎(chǔ)課程,其時(shí)間性和應(yīng)用性
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 滑雪場(chǎng)地建設(shè)與維護(hù)合同書(shū)
- 深圳市冷凍水產(chǎn)品購(gòu)銷(xiāo)合同
- 重大突破:中國(guó)與尼日爾簽訂基礎(chǔ)設(shè)施建設(shè)項(xiàng)目合同
- 正式婚后財(cái)產(chǎn)歸屬合同樣本
- 設(shè)備采購(gòu)與租賃合同樣本
- 社區(qū)衛(wèi)生服務(wù)中心藥師聘用合同范本
- 建筑工程總承包合同中新防水工程條款
- 緊急設(shè)備配送及維護(hù)合同
- 樓盤(pán)分銷(xiāo)代理合同范本
- 衛(wèi)浴產(chǎn)品標(biāo)準(zhǔn)制定與質(zhì)量認(rèn)證考核試卷
- 第3課《列夫·托爾斯泰》課件-2024-2025學(xué)年統(tǒng)編版語(yǔ)文七年級(jí)下冊(cè)
- TSDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- 陜09J01 建筑用料及做法圖集
- 新一代寄遞平臺(tái)投遞PC(10月)課件
- 常州市新課結(jié)束考試九年級(jí)數(shù)學(xué)試卷
- 2021年學(xué)校中考報(bào)名工作方案
- 質(zhì)量管理部工作流程圖
- 安全教育培訓(xùn)記錄表參考模板范本
- 建筑冷熱源素材
- 網(wǎng)絡(luò)安全用戶(hù)實(shí)體行為分析技術(shù)UEBA白皮書(shū)
- 室內(nèi)設(shè)計(jì)-中式古典風(fēng)格課件
評(píng)論
0/150
提交評(píng)論