您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Java课程设计-21点小游戏
《面向对象程序设计》课程设计报告题目:21点小游戏专业:班级:姓名:指导教师:成绩:计算机学院2017年5月16日2016—2017学年第二学期1.课程设计的目的.....................................12.设计思路...........................................13.设计结果与分析.....................................24.设计体会...........................................65.参考文献...........................................66.附录...............................................7计算机学院《面向对象程序设计》课程设计报告1.设计目的面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过这次设计,掌握了以下内容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。常用工具类与算法的实现(数组、向量、字符串、链表),java.awt、javax.swing中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。2.设计思路本游戏选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。假如庄家没爆掉,而玩家也没有爆掉,那么玩家就与庄家比点数大小,大为赢。一样的点数则庄家赢。计算机学院《面向对象程序设计》课程设计报告23.设计结果与分析当打开该小游戏时,打开游戏菜单里面的开始游戏,软件运行界面如下图所示开始玩家点数庄家点数玩家赢玩家输结束大于21点,爆牌大于21点,爆牌玩家点数大于庄家点数YN图1结构图计算机学院《面向对象程序设计》课程设计报告3图2主界面图3玩家点数大于21点计算机学院《面向对象程序设计》课程设计报告4图4玩家点数大于庄家点数图5庄家点数大于玩家点数计算机学院《面向对象程序设计》课程设计报告5图6继续要牌图7玩家点数等于庄家点数计算机学院《面向对象程序设计》课程设计报告64.设计体会该课程设计,除了全面系统的理解了JAVA面向对象编程原理的一般原理和基本实现方法。还把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的编程原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对面向对象认识和概念是有点模糊的,现在通过自己动手做课程设计,从实践上认识了面向对象编程是如何通过对象来简化面向过程中的操作。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意尽力寻找程序中存在的不足之处,进而使功能更加完善。在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解21点游戏的内部功能及内部实现,培养实践动手能力和程序开发能力的目的。当然在做课程设计要有很大的耐心,做的过程就是不断的调试—修改—调试过程,只有静下心来才能把问题解决。5.参考文献[1]耿祥义,张跃平.Java2实用教程(第三版)[M].北京:清华大学出版社,2004.5:37-103.[2][美]HerbertSchildt.Java参考大全[M].北京:清华大学出版社,2007.8:145-168.[3]陈家兴.JAVA图形用户界面设计与实例[M].北京:冶金工业出版社,2005.2:75-89.[4]张伟.Java程序设计实战训练[M].北京:人民邮电出版社,2005.7:97-105.[5]孙卫琴.Java面向对象编程[M].北京:电子工业出版社,2009.5:123-156.[6][美]Deitel.Java.大学基础教程(第六版)[M].北京:电子工业出版社,2008.8:34-78.[7][美]迪特尔(Deitel.H.M).Java程序设计教程[M].北京:清华大学出版社,2007.4:12-34.计算机学院《面向对象程序设计》课程设计报告76.附录packagesdf;importjava.awt.*;importjava.awt.event.*;importjava.util.Random;publicclassGameextendsFrameimplementsWindowListener,ActionListener{Buttonst=newButton(开始游戏);Buttonyao=newButton(继续发牌);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){intx=20;if(bool){for(i=0;in;i++){g.drawImage(I[k[i]],x,50,this);x=x+80;}Strings;s=Integer.toString(sum);g.drawString(你现在的点数是:,20,300);g.setColor(Color.BLUE);g.setFont(f1);g.drawString(s,110,300);}计算机学院《面向对象程序设计》课程设计报告8if(sum21){g.drawString(Sorry!你爆了~,300,380);}if(bol){if(sumw){g.drawString(恭喜你~YOUWIN!,200,380);}elseif(sum==w)g.drawString(庄家和你一样大,所以庄家赢!,200,380);elseg.drawString(庄家比你大,YOULOST!,200,380);bol=false;Stringstr;g.drawString(庄家的牌面点数是:,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);计算机学院《面向对象程序设计》课程设计报告9add(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.exit(0);}publicvoidwindowDeactivated(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}计算机学院《面向对象程序设计》课程设计报告10publicvoidwindowIconified(WindowEvente){}publicvoidwindowOpened(WindowEvente){}publicvoidactionPerformed(ActionEvente){if(e.getSource()==st){kai.setEnabled(true);yao.setEnabled(true);w=Math.abs(r.nextInt()%22);if(w10){w=w+10;}bool=true;n=2;for(i=0;i2;i++){k[i]=Math.abs(r.nextInt()%13);}}if(e.getSource()==yao){k[n]=Math.abs(r.nextInt()%13);n++;}jifen();repaint();if(e.getSource()==kai){bol=true;}if(sum21){kai.setEnabled(false);yao.setEnabled(false);}计算机学院《面向对象程序设计》课程设计报告11if(bol){kai.setEnabled(false);yao.setEnabled(false);}}publicvoidjifen(){sum=0;for(i=0;in;i++){sum=sum+k[i]+1;}}}
本文标题:Java课程设计-21点小游戏
链接地址:https://www.777doc.com/doc-5917928 .html