ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:350.43KB ,
资源ID:13842077      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13842077.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《java程序设计课程设计猜数字游戏设计》.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

《java程序设计课程设计猜数字游戏设计》.docx

1、java程序设计课程设计猜数字游戏设计课 程 设 计 报 告 课程设计名称 Java程序设计 专 业 计算机科学与技术 班 级 2 班 学 号 08030212 姓 名 指导教师 成 绩 2011年3月10日目录根据word生成一、设计任务与要求1.1 设计任务与要求程序设计专题的任务与要求:课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。(1)掌握Java的语言规范,面向对象的核心概念和特性;(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握Java应用软件的开发环境和开发过程;(4)掌握面向对象的思想和程序设计方法。

2、课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。1.2 选题目的与意义通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用my eclipse软件。同时更加深入的了解字符界面的编程过程。使我更熟练的掌握Java程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全

3、面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。二、需求分析2.1 用户需求分析设计一个猜数字游戏程序,要求具体如下特性:(1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。(2)大众性:要求游戏界面操作简单,游戏规则简单易懂。(3)合理性:游戏设计严谨,有条理,具体需求如下输入任意一个数字。数字的要求是1100的自然数即可。系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系

4、统将提示您,您输入的数字不合法,请从新输入。游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。在游戏开始时,自动显示游戏规则。 在游戏结束时,可以选择关闭游戏,或者再来一局。2.2 开发环境分析硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和eclipse开发工具。J2SDK简介:j2sdk是就阿Java的开发环境包。它包含JDK(开发工具包)和JRE(运行时环境包) 。JDK包含JRE ,JDK是开发人员必装软件,JRE是客户端运行时必装软件 ,J2SDK

5、就是JDK,J2JRE就是JRE。Jcreator是开发JAVA的软件。开发JAVA也可以用记事本开发原程序eclipse简介:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之

6、前,我曾经用过Java 的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插三、系统设计3.1 系统总体设计猜数字游戏游戏随机给出一个1100 (包括1和100) 之间的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。(系统设计如图3.1)游戏界面:采用图形界面显示。页面有如下功能:开始,结束,重来,帮助。游戏开始后,由计算机产生一个1-

7、100的随机数,不显示在图形界面,但显示在字符界面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。 同时,计算机开始对游戏进行计时和计数功能。游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即可。想控制界面大小只需拖拽图形界面边框即可。游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。3.2 功能模块设计(模块功能设计)3.3 类的设计 类的定义 类是把具有相同属性的事物划分为一类,从而得出抽象的概念。在面向对象程序设计中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合,它为属于该

8、类的全部对象提供了抽象描述。类的概念使我们能对属于该类的全部对象进行统一的描述。在定义对象之前应先定义类。描述一个类需要指明下述三个方面内容:类标识:类的一个有别于其他类的名字。属性说明:用来描述相同对象的静态特征。方法说明:用来描述相同对象的动态特征。 定义类的格式class 类名数据成员成员方法类的结构是由类说明和类体两部分组成的。类的说明部分由关键字 class 与类名组成,类名的命名遵循 Java 标识符的定义规则。类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功

9、能或操作。 类的分类从用户的角度看,Java 源程序中的类分为两种:系统定义的类:即 Java 类库,它是系统定义好的类。Java 语言由语法规则和类库两部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运行它的系统软件(Java 虚拟机)之间的接口。用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。进行 Java 程序设计,实际上就是定义类的过程。一个 Java 源程序文件往往是由许多个类组成的。3.3.4类的搭建首先,搭建Java程序框架。打开Eclipse,新建名为GuessNumberGame的项

10、目,然后新建名为GuessNumber的Java类。给GuessNumber加上合适的javadoc。(1)Random(随机数)Random(随机数)的功能就是借助Java API提供的Random类来产生一个随机数。定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。Random类是在java.util这个包中。建立时可以手动在源程序顶部输入import java.util.Random;语句来申明该程序将要使用java.util包中的Random类。也可以运用Eclipse,把光标移动到有红色波浪线的Random上,然后

11、按下CtrlShiftM,Eclipse会自动完成导入的工作。此时保存一下源代码,警告就会消失。四、程序实现4.1 程序流程图()4.2 关键算法与技术实现源程序/*程序运行时自动产生1-100的随机数 *接受用户键盘输入数据并给出指示信息 *直至猜对,游戏者猜对后,显示猜对次数 *并且供计时功能 */ import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.

12、util.Random;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.WindowConstants;/* author 陈雪莹 * 有趣的猜数字游戏*/public class GuessNumber extends javax.swing.JFrame /Set Look & Feel try /设置窗口外观为windows外观 javax.swing.UIManager.

13、setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel); catch(Exception e) e.printStackTrace(); private JLabel jLabel1; private JTextField jTextField1; private JButton jButton1; private JButton jButton2; private int number=0; private int counter=0; long startTime = System.currentTimeMill

14、is(); long endTime; /* * Auto-generated main method to display this JFrame */ public static void main(String args) GuessNumber inst = new GuessNumber(); inst.setVisible(true); /显示窗口 /* *新建一个随机数产生器,然后生成一个1到100之间的整数*/ public GuessNumber() super(); initGUI(); Random random = new Random(); number = rand

15、om.nextInt(100); /产生一个1-100间的随机数 /* *初始化窗口组件 */ private void initGUI() try );/窗口关闭时销毁窗口 getContentPane().setLayout(null);/设置窗口布局为绝对布局 jLabel1 = new JLabel(); getContentPane().add(jLabel1); jLabel1.setText(欢迎进入有趣的猜数字游戏,游戏规则如下: + 游戏随机产生1-100的整数,玩家通过输入数字来匹配所产生的数字。+ 用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成

16、功的信息+ 当有偏差时,将会提醒偏差,如偏大或者是偏小。结束后记录游戏时间和猜测次数+ 我心里有一个1到100之间的整数,你猜是什么?); jLabel1.setBounds(7, 0, 420, 147);/设置标签位置 jTextField1 = new JTextField(); getContentPane().add(jTextField1); jTextField1.setBounds(42, 168, 112, 28); jTextField1.addKeyListener(new KeyAdapter()/文本框添加键盘按键监听-监听回车键 public void keyPre

17、ssed(KeyEvent evt) jTextField1KeyPressed(evt); ); jButton1 = new JButton(); getContentPane().add(jButton1); jButton1.setText(确定); jButton1.setBounds(182, 168, 77, 28); jButton1.addActionListener(new ActionListener()/按钮添加监听 public void actionPerformed(ActionEvent evt) jButton1ActionPerformed(evt);/按钮

18、被点击时 执行该方法 ); jButton2 = new JButton(); getContentPane().add(jButton2); jButton2.setText(重新开始); jButton2.setBounds(280, 168, 91, 28); jButton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent evt) jButton2ActionPerformed(evt); ); pack(); this.setSize(442, 265); / 设置窗口大小

19、 setLocationRelativeTo(null); / 设置窗口在显示器居中显示 catch (Exception e) e.printStackTrace(); /* * “确定”按钮事件监听 * param evt */ private void jButton1ActionPerformed(ActionEvent evt) int guess=0; / 记录玩家所猜测的数字 counter+; / 计数器增加一。 / try,catch的异常管理。 try / 获取玩家的输入 guess=Integer.parseInt(jTextField1.getText(); catch

20、 (Exception e) / 如果玩家不是输入一个合法的整数,则让他重新输入。 JOptionPane.showMessageDialog(null, 数字不合法,请输入一个1-100之间的整数!); /显示一个对话框 jTextField1.setText();/清空文本框内容 jTextField1.requestFocus();/文本框获取输入焦点 return ; / 对玩家的输入进行判断。 if (guess number) JOptionPane.showMessageDialog(null, 输入的大了,再小一点吧!); jTextField1.setText(); jTex

21、tField1.requestFocus(); return ; if (guess number) JOptionPane.showMessageDialog(null, 输入的大了,再小一点吧!); jTextField1.setText(); jTextField1.requestFocus(); return ; if (guess number) JOptionPane.showMessageDialog(null, 输入的小了,再大一点吧!); jTextField1.setText(); jTextField1.requestFocus(); return ; if (guess

22、 = number) endTime=System.currentTimeMillis();(3)判定成绩模块/ 判断成绩。 switch (counter) case 1: JOptionPane.showMessageDialog(null,你是神么? 这也太给力了吧!); break; case 2: case 3: case 4: case 5: case 6: case 7: JOptionPane.showMessageDialog(null,这么快就猜对了,你很smart啊!); break; default:JOptionPane.showMessageDialog(null,

23、猜了半天才猜出来,小同志,尚须努力啊!); break; JOptionPane.showMessageDialog(null,您总共猜了+counter+次 共花了+(endTime-startTime)/1000+秒的时间答对正确答案!); jTextField1.setText(); jTextField1.requestFocus(); switch语句是基于整型表达式的条件判断语句,猜数字用它来进行成绩判断。可以看出,switch语句是和若干case语句和一个default语句搭配使用的。代码中的switch语句用counter变量的值进行判断。当counter的值为1时,便执行ca

24、se 1里面的语句,即打印“你是神么? 这也太给力了吧!”的字样,随后的break语句表示整个switch语句执行到这里结束了。当counter的值为2时,便执行case 2里面的语句。可以发现case 2到case 6都没有break语句,这表示依次执行下面的语句,从而counter的值为2至7时,都打印“这么快就猜对了,你很smart啊!”字样。当counter的值不是1至7时,便执行default语句,打印“猜了半天才猜出来,小同志,尚须努力啊!”的字样。(4)计时模块计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。long startTime = System.currentTimeMillis();long endTime = System.currentTimeMillis();(5)异常处理Java语言提供了异常(Exception)处理机制帮助程序员发现并处理异常。所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。导致异常的原因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对象将被自动生成并传递

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2