《猜数字--可采用》由会员分享,可在线阅读,更多相关《猜数字--可采用(26页珍藏版)》请在金锄头文库上搜索。
1、课程设计报告课程设计名称 Java程序设计专业计算机科学与技术班级 2班学号 2009020156姓名指导教师成绩2011年6月10日目录一、设计任务与要求1.1设计任务与要求程序设计专题的任务与要求:课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。(1)掌握Java的语言规范,面向对象的核心概念和特性;(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握Java应用软件的开发环境和开发过程;(4)掌握面向对象的思想和程序设计方法。课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输
2、入数字 来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的 信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。1.2选题目的与意义通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用my eclipse软件。同 时更加深入的了解字符界面的编程过程。使我更熟练的掌握Java程序框架的搭建和类的创建格式。在分析阶段,要 进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维, 更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。二、需求分析2.1
3、 用户需求分析设计一个猜数字游戏程序,要求具体如下特性:(1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。(2) 大众性:要求游戏界面操作简单,游戏规则简单易懂。(3) 合理性:游戏设计严谨,有条理,具体需求如下 输入任意一个数字。数字的要求是1100的自然数即可。系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。 游戏开始时
4、,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。 在游戏开始时,自动显示游戏规则。 在游戏结束时,可以选择关闭游戏,或者再来一局。2.2开发环境分析硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和eclipse开发工具。J2SDK简介:j2sdk是就阿Java的开发环境包。它包含JDK(开发工具包)和JRE(运行时环境包)。JDK包含JRE , JDK是开发人员必装软件,JRE是客户端运行时必装软件,J2SDK就是JDK, J2JRE就是JRE。Jcreator是
5、开发JAVA的软件。开发JAVA也可以用记事本开发原程序eclipse简介:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了 一个标 准的插件集,包括Java开 发工具(Java Development Tools , JDT)。Eclipse的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java的AWT/SWING来开发Win
6、dows应用程序,AWT/SWIN(其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插三、系统设计3.1 系统总体设计猜数字游戏一游戏随机给出一个1100 (包括1和100)之间的数字,然后让你猜是什么数字。你可以随 便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过 几次猜测与提示后,最终推出答案。(系统设计 如图3.1)游戏界面游戏开始游戏说明重新开始关闭游戏产生随机数输出字符记录次数记录时间图3.1游戏界面:采用图形界面显示。页面有如下功能:开始,结束,重来,帮助。
7、游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定, 游戏返回提示语句,按照提示语句操作,直至游戏结束。同时,计算机开始对游戏进行计时和计数功能。游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即可。想控制界面大小只需拖拽图形界面边框即可。游戏结束后,可以选择“关闭”游戏,或者是“重新开始”3.2 功能模块设计(模块功能设计如图3.2)游戏说输入输明模块出模块模块的组成计时模猜数次成绩判数模块定模块开始时 记录初 始时间/由猜测次数决n输出猜测的数字给出提示语言图3.23
8、.3 类的设计3.3.1 类的定义类是把具有相同属性的事物划分为一类,从而得出抽象的概念。在面向对象程序设计中,类是一个独立的程序 单位,是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了抽象描述。类的概念使我们能对属 于该类的全部对象进行统一的描述。在定义对象之前应先定义类。描述一个类需要指明下述三个方面内容:类标识:类的一个有别于其他类的名字。属性说明:用来描述相同对象的静态特征。方法说明:用来描述相同对象的动态特征。3.3.2 定义类的格式class类名数据成员成员方法 类的结构是由类说明和类体两部分组成的。类的说明部分由关键字class与类名组成,类名的命名遵循Java
9、标识符的定义规则。类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。3.3.3 类的分类从用户的角度看,Java源程序中的类分为两种:系统定义的类:即Java类库,它是系统定义好的类。Java语言由语法规则和类库两部分组成,语法规则确 定Java程序的书写规范;类库则提供了 Java程序与运行它的系统软件(Java虚拟机)之间的接口。用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来 定义自己的类。进行Java程序设计
10、,实际上就是定义类的过程。一个Java源程序文件往往是由许多个类组成的。3.3.4 类的搭建首先,搭建Java程序框架。打开Eclipse,新建名为GuessNumberGame勺项目,然后 新建名为 GuessNumber 的 Java 类。给 GuessNumber 力口上合适的 javadoc。(1) Random (随机数)Random(随机数)的功能就是借助Java API提供的Random类来产生一个随机数。定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。Random类是在java.util这个包中。建立时可以
11、手动在源程序顶部输入importjava.util.Random;语句来申明该程序将要使用java.util包中的Random类。也可以运用Eclipse,把光标移动 到有红色波浪线的Random上,然后按下Ctrl + Shift + M Eclipse会自动完成导入的工作。此时保存一下源代码,警告就会消失。四、程序实现4.1 程序流程图(如图4.1 )开 始由计算机产生随机数 x系统开始计时由用户输入一个数y输入的大了,再小一点吧输入的小了,再大一点吧系统结束计时系统统计猜数次数十 .结束图4.14.2 关键算法与技术实现4.2.1 源程序/*程序运行时自动产生1100的随机数* 接受用户
12、键盘输入数据并给出指示信息* 直至猜对,游戏者猜对后,显示猜对次数* 并且供计时功能* /import java.awt.eve nt.Acti onEvent;import java.awt.eve nt.Acti on Liste ner;import java.awt.eve nt.KeyAdapter;import java.awt.eve nt.KeyEve nt;import java.util.Ra ndom;import javax.swi ng.JButt on;import javax.sw in g.JLabel;import javax.swi ng.JOptio nP
13、ane;import javax.swi ng.JTextField;import javax.swi ng.Wi ndowC on sta nts;/*有趣的猜数字游戏7public class GuessNumber exte nds javax.sw in g.JFrame (/Set Look & Feeltry 设置窗口外观为windows外观javax.swi ng.UIMa nager.setLookA ndFeel(Hcom.s un .java.swi ng.plaf.wi ndows.Wi ndowsL ookA ndFeelH); catch(Excepti on e)
14、e.pri ntStackTrace();private JLabel jLabell;private JTextField jTextFieldl;private JButt on jButt onl;private JButt on jButt on2;private int nu mber=0;private int coun ter=O;long startTime = System.currentTimeMillis();long en dTime;* Auto-ge nerated main method to display this JFrame7public static void main(String args) GuessNumber inst = new GuessNumber();in st.setVisible(true); / 显示窗口)*新建一个随机数产生器,然后生成一个1至W 00之间的整数7 public GuessNumber() super();ini tGUI();Ran dom ran dom = new Ran dom();产生一个1-100间的随机数number = random.nextlnt(1 OO); /*初始化窗口组件7