猜数字游戏课程设计完整版Word格式.docx
《猜数字游戏课程设计完整版Word格式.docx》由会员分享,可在线阅读,更多相关《猜数字游戏课程设计完整版Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
![猜数字游戏课程设计完整版Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/10/b9135a09-bf4b-438f-a3a9-cb341e715602/b9135a09-bf4b-438f-a3a9-cb341e7156021.gif)
实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。
2、实习报告内容包括:
实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。
3、课程设计报告或说明书内容包括:
课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。
四、课内实践课报告撰写要求
1、大型作业类的按课程设计要求撰写;
2、带实习性质的按实习要求撰写;
3、其余的按实验要求撰写。
五、其它
由于存档的需要,所有报告必须双面打印,请教师做好把关工作。
教务处
2005、12
课程设计报告
课程设计名称Java程序设计
专业计算机科学与技术
班级2班
学号08030212
姓名陈雪莹
指导教师陈志成
成绩
2011年3月10日
目录根据word生成
一、设计任务与要求
1.1设计任务与要求
程序设计专题的任务与要求:
课程设计的任务:
根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。
(1)掌握Java的语言规范,面向对象的核心概念和特性;
(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;
(3)掌握Java应用软件的开发环境和开发过程;
(4)掌握面向对象的思想和程序设计方法。
课程设计的要求:
设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。
用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。
1.2选题目的与意义
通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用myeclipse软件。
同时更加深入的了解字符界面的编程过程。
使我更熟练的掌握Java程序框架的搭建和类的创建格式。
在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。
让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。
二、需求分析
2.1用户需求分析
设计一个猜数字游戏程序,要求具体如下特性:
(1)趣味性:
要求游戏内容丰富多彩,语言风趣幽默。
(2)大众性:
要求游戏界面操作简单,游戏规则简单易懂。
(3)合理性:
游戏设计严谨,有条理,具体需求如下
输入任意一个数字。
数字的要求是1—100的自然数即可。
系统对您输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。
如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。
系统将提示您,数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。
游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。
每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
在游戏开始时,自动显示游戏规则。
⑥在游戏结束时,可以选择关闭游戏,或者再来一局。
2.2开发环境分析
硬件要求能运行Windows9.X操作系统的微机系统。
JAVA程序设计语言及相应的集成开发环境,J2SDK和eclipse开发工具。
J2SDK简介:
j2sdk是就阿Java的开发环境包。
它包含JDK(开发工具包)和JRE(运行时环境包)。
JDK包含JRE,JDK是开发人员必装软件,JRE是客户端运行时必装软件,J2SDK就是JDK,J2JRE就是JRE。
Jcreator是开发JAVA的软件。
开发JAVA也可以用记事本开发原程序
eclipse简介:
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Eclipse的设计思想是:
一切皆为插件。
它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。
Eclipse中三个最吸引人的地方:
一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;
而SWT/JFace则大大改善了Java在这方面的能力。
二是它的插件机制。
三是利用它的插件机制开发的众多功能强大的插
三、系统设计
3.1系统总体设计
猜数字游戏—游戏随机给出一个1—100(包括1和100)之间的数字,然后让你猜是什么数字。
你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。
经过几次猜测与提示后,最终推出答案。
(系统设计如图3.1)
图3.1
游戏界面:
采用图形界面显示。
页面有如下功能:
开始,结束,重来,帮助。
游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界面。
用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。
同时,计算机开始对游戏进行计时和计数功能。
游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即可。
想控制界面大小只需拖拽图形界面边框即可。
游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。
3.2功能模块设计
(模块功能设计如图3.2)
图3.2
3.3类的设计
3.3.1类的定义
类是把具有相同属性的事物划分为一类,从而得出抽象的概念。
在面向对象程序设计中,类是一个独立的程序单位,是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了抽象描述。
类的概念使我们能对属于该类的全部对象进行统一的描述。
在定义对象之前应先定义类。
描述一个类需要指明下述三个方面内容:
类标识:
类的一个有别于其他类的名字。
属性说明:
用来描述相同对象的静态特征。
方法说明:
用来描述相同对象的动态特征。
3.3.2定义类的格式
class类名
数据成员
成员方法
类的结构是由类说明和类体两部分组成的。
类的说明部分由关键字class与类名组成,类名的命名遵循Java标识符的定义规则。
类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。
数据成员描述对象的属性;
成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。
3.3.3类的分类
从用户的角度看,Java源程序中的类分为两种:
系统定义的类:
即Java类库,它是系统定义好的类。
Java语言由语法规则和类库两部分组成,语法规则确定Java程序的书写规范;
类库则提供了Java程序与运行它的系统软件(Java虚拟机)之间的接口。
用户自定义类:
系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。
进行Java程序设计,实际上就是定义类的过程。
一个Java源程序文件往往是由许多个类组成的。
首先,搭建Java程序框架。
打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。
给GuessNumber加上合适的javadoc。
(1)Random(随机数)
Random(随机数)的功能就是借助JavaAPI提供的Random类来产生一个随机数。
定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。
Random类是在java.util这个包中。
建立时可以手动在源程序顶部输入import;
语句来申明该程序将要使用java.util包中的Random类。
也可以运用Eclipse,把光标移动到有红色波浪线的Random上,然后按下Ctrl+Shift+M,Eclipse会自动完成导入的工作。
此时保存一下源代码,警告就会消失。
四、程序实现
4.1程序流程图(如图4.1)
图4.1
4.2关键算法与技术实现
/*
程序运行时自动产生1-100的随机数
*
接受用户键盘输入数据并给出指示信息
直至猜对,游戏者猜对后,显示猜对次数
并且供计时功能
*/
import;
/**
*@author陈雪莹
*
*有趣的猜数字游戏
*/
publicclassGuessNumberextends{
{
//SetLook&
Feel
try{//设置窗口外观为windows外观
"
"
);
}catch(Exceptione){
e.printStackTrace();
}
privateJLabeljLabel1;
privateJTextFieldjTextField1;
privateJButtonjButton1;
privateJButtonjButton2;
privateintnumber=0;
privateintcounter=0;
longstartTime=System.currentTimeMillis();
longendTime;
/**
*Auto-generatedmainmethodtodisplaythisJFrame
*/
publicstaticvoidmain(String[]args){
GuessNumberinst=newGuessNumber();
inst.setVisible(true);
//显示窗口
*新建一个随机数产生器,然后生成一个1到100之间的整数
publicGuessNumber(){
super();
initGUI();
Randomrandom=newRandom();
numbe