




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-.z.---.可修編.2016—20172016—2017學年第二學期《面向對象程序設計》課程設計報告題目:21點小游戲專業(yè):班級::指導教師:成績:計算機學院2017年5月16日TOC\o"1-2"\h\u1.課程設計的目的22.設計思路23.設計結果與分析24.設計體會25.參考文獻26.附錄2-.z.---.可修編.1.設計目的面向對象程序設計是一門實踐性很強的專業(yè)基礎課程,課程設計是學習完該課程后進行的一次較全面的綜合練習。其目的在于通過實踐加深學生對面向對象程序設計的理論、方法和基礎知識的理解,掌握使用Java語言進行面向對象設計的基本方法,提高運用面向對象知識分析實際問題、解決實際問題的能力,提高學生的應用能力。通過這次設計,掌握了以下容:面向對象技術中的繼承與多態(tài)(重載和覆蓋)機制、各種修飾符的使用類、包、接口的定義與使用。常用工具類與算法的實現(xiàn)(數(shù)組、向量、字符串、鏈表),java.awt、java*.swing中常用標準GUI組件及相應的事件處理,Java的異常處理機制,Java的數(shù)據(jù)庫連接技術,Java的多線程技術與動畫制作以及Java的網(wǎng)絡編程。游戲規(guī)則是:各個參與者設法使自己的牌達到總分21而不超過這個數(shù)值。2.設計思路本游戲選用Eclipse、uilder、NetBeans等作為開發(fā)平臺以提高開發(fā)效率,通過資料查閱和學習盡可能熟練掌握其中一種集成開發(fā)環(huán)境。在要牌的過程中,如果所有的牌加起來超過21點,玩家就輸了——叫爆掉(Bust),游戲也就結束了。假如玩家沒爆掉,而莊家的總點數(shù)加起來大于21點后,那莊家就輸了。假如莊家沒爆掉,而玩家也沒有爆掉,則玩家就與莊家比點數(shù)大小,大為贏。一樣的點數(shù)則莊家贏。開始開始玩家點數(shù)莊家點數(shù)玩家贏玩家輸結束大于21點,爆牌,爆牌大于21點,爆牌,爆牌玩家點數(shù)大于莊家點數(shù)YN圖1結構圖3.設計結果與分析當打開該小游戲時,打開游戲菜單里面的開始游戲,軟件運行界面如下圖所示圖2主界面圖3玩家點數(shù)大于21點圖4玩家點數(shù)大于莊家點數(shù)圖5莊家點數(shù)大于玩家點數(shù)圖6繼續(xù)要牌圖7玩家點數(shù)等于莊家點數(shù)4.設計體會該課程設計,除了全面系統(tǒng)的理解了JAVA面向對象編程原理的一般原理和基本實現(xiàn)方法。還把死板的課本知識變得生動有趣,激發(fā)了學習的積極性。把學過的編程原理的知識強化,能夠把課堂上學的知識通過自己設計的程序表示出來,加深了對理論知識的理解。以前對面向對象認識和概念是有點模糊的,現(xiàn)在通過自己動手做課程設計,從實踐上認識了面向對象編程是如何通過對象來簡化面向過程中的操作。課程設計中程序比較復雜,在調試時應該仔細,在程序調試時,注意盡力尋找程序中存在的不足之處,進而使功能更加完善。在這次課程設計中,我就是按照實驗指導的思想來完成。加深了理解21點游戲的部功能及部實現(xiàn),培養(yǎng)實踐動手能力和程序開發(fā)能力的目的。當然在做課程設計要有很大的耐心,做的過程就是不斷的調試—修改—調試過程,只有靜下心來才能把問題解決。5.參考文獻[1]耿祥義,躍平.Java2實用教程(第三版)[M].:清華大學,2004.5:37-103.[2][美]HerbertSchildt.Java參考大全[M].:清華大學,2007.8:145-168.[3]家興.JAVA圖形用戶界面設計與實例[M].:冶金工業(yè),2005.2:75-89.[4]偉.Java程序設計實戰(zhàn)訓練[M].:人民郵電,2005.7:97-105.[5]衛(wèi)琴.Java面向對象編程[M].:電子工業(yè),2009.5:123-156.[6][美]Deitel.Java.大學基礎教程(第六版)[M].:電子工業(yè),2008.8:34-78.[7][美]迪特爾().Java程序設計教程[M].:清華大學,2007.4:12-34.6.附錄packagesdf;importjava.awt.*;
importjava.awt.event.*;
importjava.util.Random;
publicclassGamee*tendsFrameimplementsWindowListener,ActionListener{
Buttonst=newButton("開始游戲");
Buttonyao=newButton("繼續(xù)發(fā)牌");
Buttonkai=newButton("開牌");
Panelp=newPanel();
Randomr=newRandom();
Fontf1=newFont("楷體",Font.BOLD,24);
ImageI[]=newImage[13];
intk[]=newint[14];
booleanbool=false,bol=false;
inti,n,sum,w;
publicvoidpaint(Graphicsg){
int*=20;
if(bool){
for(i=0;i<n;i++){
g.drawImage(I[k[i]],*,50,this);
*=*+80;
}
Strings;
s=Integer.toString(sum);
g.drawString("你現(xiàn)在的點數(shù)是:",20,300);
g.setColor(Color.BLUE);
g.setFont(f1);
g.drawString(s,110,300);
}
if(sum>21){
g.drawString("Sorry!你爆了~",300,380);
}
if(bol){
if(sum>w){
g.drawString("恭喜你~YOUWIN!",200,380);
}elseif(sum==w)
g.drawString("莊家和你一樣大,所以莊家贏!",200,380);
else
g.drawString("莊家比你大,YOULOST!",200,380);
bol=false;
Stringstr;
g.drawString("莊家的牌面點數(shù)是:",250,420);
str=Integer.toString(w);
g.drawString(str,455,420);
}
}
publicGame(){
super("21點小游戲");
setSize(600,500);
setLocation(300,100);
setLayout(newBorderLayout());
addWindowListener(this);
setBackground(Color.lightGray);
p.setBackground(Color.blue);
p.add(st);
st.addActionListener(this);
p.add(yao);
yao.addActionListener(this);
p.add(kai);
kai.addActionListener(this);
add("South",p);
I[0]=Toolkit.getDefaultToolkit().getImage("a.jpg");
I[1]=Toolkit.getDefaultToolkit().getImage("2.jpg");
I[2]=Toolkit.getDefaultToolkit().getImage("3.jpg");
I[3]=Toolkit.getDefaultToolkit().getImage("4.jpg");
I[4]=Toolkit.getDefaultToolkit().getImage("5.jpg");
I[5]=Toolkit.getDefaultToolkit().getImage("6.jpg");
I[6]=Toolkit.getDefaultToolkit().getImage("7.jpg");
I[7]=Toolkit.getDefaultToolkit().getImage("8.jpg");
I[8]=Toolkit.getDefaultToolkit().getImage("9.jpg");
I[9]=Toolkit.getDefaultToolkit().getImage("10.jpg");
I[10]=Toolkit.getDefaultToolkit().getImage("j.jpg");
I[11]=Toolkit.getDefaultToolkit().getImage("q.jpg");
I[12]=Toolkit.getDefaultToolkit().getImage("k.jpg");
setVisible(true);
}
publicstaticvoidmain(String[]args){
Gameg=newGame();
}
publicvoidwindowActivated(WindowEvente){
}
publicvoidwindowClosed(WindowEvente){
}
publicvoidwindowClosing(WindowEvente){
e.getWindow().dispose();
System.e*it(0);
}
publicvoidwindowDeactivated(WindowEvente){
}
publicvoidwindowDeiconified(WindowEvente){
}
publicvoidwindowIconified(WindowEvente){
}
publicvoidwindowOpened(WindowEvente){
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==st){
kai.setEnabled(true);
yao.setEnabled(true);
w=Math.abs(r.ne*tInt()%22);
if(w<10){
w=w+10;
}
bool=true;
n=2;
for(i=0;i<2;i++){
k[i]=Math.abs(r.ne*tInt()%13);
}
}
if(e.getSource()==yao){
k[n]=Math.abs(r.ne*tInt()%13);
n++;
}
jifen();
repaint();
if(e.getSource()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 升職轉正述職匯報大綱
- 汽車平衡力講解
- 小學體育項目講解
- 新概念車禍講解
- 我的名字深度講解
- 如何講好技術交流
- 網(wǎng)絡安全機制講解
- 細胞小學教育體系介紹
- 腰椎間盤突出癥的針灸治療
- 現(xiàn)代植物生產(chǎn)技術
- 出入境檢驗檢疫申請和進出口報關單
- 混凝土局部受壓驗算計算書
- 大學英語六級詞匯表(全)含音標
- 電氣設備狀態(tài)檢修技術與現(xiàn)狀
- 軋鋼廠安全檢查表
- 藝術課程標準(2022年版)
- YC/T 199-2006卷煙企業(yè)清潔生產(chǎn)評價準則
- YY 0666-2008針尖鋒利度和強度試驗方法
- GB/T 6663.1-2007直熱式負溫度系數(shù)熱敏電阻器第1部分:總規(guī)范
- GB/T 5184-1996叉車掛鉤型貨叉和貨叉架安裝尺寸
- GB/T 19355.2-2016鋅覆蓋層鋼鐵結構防腐蝕的指南和建議第2部分:熱浸鍍鋅
評論
0/150
提交評論