猜数字游戏(DOC)

巡山小妖精
840次浏览
2021年01月01日 03:02
最佳经验
本文由作者推荐

自动更新-护理工作总结

2021年1月1日发(作者:项炯)




课 程 设 计
课 程 名 称:课程设计
专 业 班 级 :软件1501
学 生 姓 名 :丁克旗 张森阳
学 号 :2丁克旗
2张森阳
指 导 教 师 :王雪涛
学 期 : 2015-2016






计算机网络管理 专业课程设计任务书

学生姓名


丁克旗 张森阳 专业班级 软件1501 学号
2


2
题 目
课题性质
指导教师


主要内容
工程设计
王雪涛
猜数字游戏

课题来源
同组姓名
自拟
丁克旗 张森阳

任务要求




参考文献
指导教师签字:
审查意见
教研室主任签字: 年 月 日




前言
Jav a是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立
的,可移植的,性能优异、 多线程的动态语言。猜数字游戏是一个简单,有趣的小游
戏。通过设计猜数字游戏,可以进一步了解Sw ing图形用户界面设计,事件处理和异
常处理机制。利用Eclipse平台,综合运用Java基础 知识,设计猜数字游戏。

正文
1、设计任务与要求
1.1 设计任务与要求
功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对
为止。游戏结束 后给出评语并计算出玩家所用的时间与所猜的次数。
具体要求:
(1) 输入任意一个数字。数字的要求是1—100的自然数即可。
(2) 系统对您输入的数字进行判断。 如果玩家输入的数字与计算机随机生成数相比较,
输入的数字比随机生成数小.系统将提示您,数字太小 请您重新输入。如果玩家
输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统
将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将
提示您,您输入 的数字不合法,请从新输入。
(3) 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
(4) 欢迎界面:通过这里提供的选项(或按钮),进入游戏界面。
(5) 游戏界面提供“获取随机数”按 钮,系统获取到随机数,游戏者输入自己的猜测
结果,通过按“确认”按钮完成输入。每次提示输入猜测 结果时,给出猜测的准
确度提示。
(6) 按“获取随机数”按钮,继续游戏。
(7) 游戏结束后给出评语并计算出玩家所用的时间与所猜次数。
界面要示:用图形界面实现。


1



1.2 选题目的与意义
通过猜数游戏这个课题我可以学到文本框、标签框、按钮、布局、对 话框方面的
知识和应用,达到设计登陆界面、加入图像显示功能以及设计按钮的目的,让我更加
的掌握和理解java面向对象语言的需求分析、系统设计,所以我选择猜数游戏这个课
题。







2、需求分析
2.1 用户需求分析
1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2 .对玩家输入的数字进行判断大小,如果不是系统要求的数字,系统将提示您,
您输入的不是数字请重新 输入,给出提醒以便玩家进一步选择。
3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及
判断。
4.系统根据您猜数字的次数,自动计数.
5.直到用户猜到数字为止,提示信息是否继续猜 数字,如果继续将进入下一次游
戏,如果退出将退出游戏系统.
2.2 开发环境分析
Eclipse企业级工作平台(Eclipse Enterprise Workbench ,简称Eclipse)
是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE 的开发、发布,以及应
用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成 开发环
境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS,
Javascript, SQL, Hibernate。
在结构上, Eclipse的特征可以被分为7类:
1. JavaEE模型
2. WEB开发工具
3. EJB开发工具

2



4. 应用程序服务器的连接器
5. JavaEE项目部署服务
6. 数据库服务
7. Eclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系
列 的插件来实现它们。Eclipse结构上的这种模块化,可以让我们在不影响其他模块
的情况下,对任 一模块进行单独的扩展和升级。
简单而言,Eclipse是Eclipse的插件,也是一款功能强 大的JavaEE集成开发
环境,支持代码编写、配置、测试以及除错。
该程序基于JDK和 Eclipse编写,选用Eclipse是界面设计所需。根据系统范围
随机产生一个数字,可根据玩 家选择给出不同的数字。玩家输入所猜数字时给出与真实
数字的大小比较。在玩家猜中时,可给出其所用 时间,并给出评价。最后,游戏的结
束与继续可由玩家控制。

3、系统设计
3.1 系统总体设计:
3.1.1 总体设计分析

1.随机数的获取:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2. 输入输出模块:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求
的数字 ,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机
生成数相比较,比随机生 成数小.系统提示您,数字太小请您重新输入。如果玩家输入
的数字与随机生成数相比较,比随机生成数 大.系统提示您,数字太大请您重新输入。
3. 判断模块:算出所用时间在玩家猜中时给出其所用时 间,系统给出对其水平的判断
和是否继续的提示;对玩家要求判断执行。
4.自动计数模块:系统根据您猜数字的次数,自动计数.
5.结果输出模块:直到用户猜到 数字为止,提示信息是否继续猜数字,如果继续将进
入下一次游戏,如果退出将退出游戏系统.

3.1.2 程序结构
点击“获取随机数”按钮,系统获取到一个随机数。 玩家 输入一个数,如果玩家
输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如 果
玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。 如

3



果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久 才猜出来,有点笨!”,
并且会计算出玩家所用的时间和所猜的次数。如果玩家猜对了数,而且所用时间 小于
十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所
用的时 间和所猜的次数。














恭喜您,


猜对了!
这么久才猜
出来,有点笨
猜对 输出“您猜的太大了,请继续猜”
若X输出“您猜的太小了,请继续猜”
若X>Y
系统产生一个随机数X
玩家输入一个在0~99范围内的数Y
开 始







图1 程序结构图
结 束
储存记录


4









3.2 功能模块设计
3.2.1 功能模块图
游戏分为随机 数的获取,输入输出模块,判断模块,自动计数模块,结果输
出模块。其中输入输出模块中系统会对玩家 给出的数进行判断和输出。判断模块会对
玩家的水平进行判断,并计算出玩家所用的时间和次数。



猜数游戏

















随机数
的获取

输入输
出 模

判断模

自动
计数
模 块
结果
输出
模 块
系统
玩家
出的
进行
断和










是否
继续
的选

图2 功能模块图


3.2.2 功能模块详细设计

5



(1)随机数的获取
功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

(2) 输入输出模块
功能描述:对玩家输入的数字进行判断和提示。如果玩家输入的不是系 统要求的
数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生
成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的
数字与随机生成数 相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

输入输出模块
对玩家输入的数字进行
判断和提示
您输
入的
不是
数 字
您输
入的
太 小
您输
入的
太 大
猜对


图3 输入输出模块图

(3) 判断模块
功能描述:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判
断和是否继续的 提示;对玩家要求判断执行。

判断模块
时间计
算功 能
系统对
玩家的
水平做
出 判断
提示
玩家
是否
继 续


6



图4 判断模块图



(4) 自动计数模块
功能描述:系统根据您猜数字的次数,自动计数.

玩家猜数字,若猜错 计数器加1

图5 自动计数模块图

(5) 结果输出模块
功能描述:直到用户猜到数字为止,提示信息是否继续猜数字,如果继 续将进入
下一次游戏,如果退出将退出游戏系统.

3.3 类的设计:
表1类的分类
类名

BorderLayout
Concurrent
数学中的随机数。
图形界面窗口的设计与调整
concurrent 在并发编程中很常用的实用工具类。

从用户的角度看,Java 源程序中的类分为两种:
系统定义的类:即 Java 类库,它是系统定义好的类。Java 语言由语法规则和类
库两部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运
行它的系统软件(Java 虚拟机)之间的接口。
用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需
要针对特定问题的特定逻辑来定义自己的类。
在 Java 程序中,用户自定义类的一般格式如下:
class 类名
数据成员
成员方法
属性

7



类的结构是由类说明和类体两部分组成的。
类的说明部分由关键字 class 与类名组成,类名的命名遵循 Java 标识符的定义
规则。
类体是类声明中花括号所包括 的全部内容,它又是由数据成员(属性)和成员方
法(方法)两部分组成。
数据成员描述对象 的属性;成员方法则刻画对象的行为或动作,每一个成员方法
确定一个功能或操作。
首先搭建 Java程序框架。打开Eclipse,新建名为GuessNumberGame的项目,然
后新建 名为GuessNumber的Java类。GuessNumber加上合适的javadoc。
第一步:随机数的产生
我们可以借助Java API提供的Random类来产生一个随机数。
首先在main函数中加入以下三行代码:
新建一个随机数产生器,然后生成一个1到100之间的整数。
num=(int)(()*100);
String answer;

Scanner input=new Scanner();
第二步:标准输入输出
标准输入输出(Standard IO)是指可以被应用程序使用的信息流。应用程序可以
从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出
错信息发送到标准错误(Standard error)。通过输入输出 ,应用程序和应用程序之间
可以被串联起来使用。虽然标准输入输出是从UNIX发展出来的概念,在W indows中也
广泛应用。
猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。 相反,要从控制
台输入,就需要用到。它是一个纯粹的输入流,而猜数字游戏主要是通过
控制台 获取玩家的字符输入,我们需要把它包装成一个BufferedReader。
第三步:使用BorderLayout对图形界面的窗口进行设计。
4、程序实现
4.1 程序流程图
点击“获取随机数”按钮,系统获取到一个随机数。 玩家输入一个数, 如果玩家
输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如果
玩 家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。 如
果玩家猜对了数,但 是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,
并且会计算出玩家所用的时间和所猜 的次数。如果玩家猜对了数,而且所用时间小于

8



十秒 ,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所
用的时间和所猜的次数。



















恭喜您,


猜对了!
这么久才猜
出来,有点笨
猜对 输出“您猜的太大了,请继续猜”
若X输出“您猜的太小了,请继续猜”
若X>Y
开 始
系统产生一个随机数X
玩家输入一个在0~99范围内的数Y






储存记录
结 束
9





图6 程序流程图
4.2 关键算法与技术实现
4.2.1 随机数的获取
num=(int)(()*100);


String answer;

Scanner input=new Scanner();

4.2.2 输入输出

for(i=1;i<=10;i++)
{























if(num2 t(您猜的太小了,请继续猜!
continue;
}


else if(num2>num){
t(您猜的太大了,请继续猜!


continue;
}
long endTime=tTimeMillis();
long t;

10







t=(endTime- startTime)1000;
strshow=您总共猜了次,您猜数字总共花了











if(t<10)
t(恭喜您,猜对了!您真棒,智商真高!
else if(t>10)
t(这么久才猜出来,有点笨!
}
}
4.2.3 判断时间
startTime=tTimeMillis();
long endTime=tTimeMillis();
strshow=您猜数字总共花了秒

4.2.4 自动计数

int geust=0;
counter++;
strshow=您总共猜了次;

4.2.5 结果输出

long t;


t=(endTime-startTime)1000;
strshow=您总共猜了次,您猜数字总共花了


11







if(t<10)
t(恭喜您,猜对了!您真棒,智商真高!
else if(t>10)
t(这么久才猜出来,有点笨!

4.2.6 图形界面的实现
BorderLayout bdmg=new BorderLayout();

















Button button1=new Button(获取随机数
Button button2=new Button(确定
String str=null;
String str2=null;
long startTime;
int num,num2;
int counter=0;
myGeustNum my1=new myGeustNum();
TextField input;
Label lbshow=new Label(
Label lbshow2=new Label(
int i;
String strshow;
public void init()
{
setLayout(bdmg);
add(button1,BorderLayout.
NORTH
);
ionListener(this);
e(50,50);












Label lb1=new Label(请输入
e(50,20);
(lb1,BorderLayout.
WEST
);


12














}











input=new TextField(10);
e(40,50);
add(input,BorderLayout.
CENTER
);
add(button2,BorderLayout.
EAST
);
e(50,20);
ionListener(this);
e(50,20);


add(lbshow,BorderLayout.
SOUTH
);
setSize(450,200);
4.3 类的实现
首先搭建Java程序框 架。打开Eclipse,新建名为GuessNumberGame的项目,然
后新建名为Guess Number的Java类。GuessNumber加上合适的javadoc。
第一步:随机数的产生
我们可以借助Java API提供的Random类来产生一个随机数。
首先在main函数中加入以下三行代码:
新建一个随机数产生器,然后生成一个1到100之间的整数。
num=(int)(()*100);
String answer;

Scanner input=new Scanner();
Eclipse立即在错误语句处划出红线,把鼠标移动到红线上。
包(Package)的概念
Java API中包含了极其丰富、类似于Random这样由Sun预先定义好的类。不同
包中可以有同名同姓的类,如果没有包的概念,就会遇到命名冲突问题。此外,包还
能进行安全控制。R andom类是在这个包中。可以手动在源程序顶部输入
import 语句来申明该程序将要使用包 中的Random类,
然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Ra ndom上,然

13



后按下Ctrl+Shift+M ,Eclipse会自动帮你完成导入的工作了,此时保存一下源代
码。
第二句语句定义一个 整型变量number来保存随机产生的整数,并且用直接初始化
的方法把random产生的随机数赋 给number变量。
第二步:标准输入输出
标准输入输出(Standard IO)是指可以被应用程序使用的信息流。应用程序可以
从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出
错信息发送到标准错误(Standard error)。通过输入输出 ,应用程序和应用程序之间
可以被串联起来使用。虽然标准输入输出是从UNIX发展出来的概念,在W indows中也
广泛应用。
猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。 相反,要从控制
台输入,就需要用到。它是一个纯粹的输入流,而猜数字游戏主要是通过
控制台 获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步:使用BorderLayout对图形界面的窗口进行设计。

5、测试运行
5.1 系统测试方案
1.点击运行程序后,显示出图形界面。
2.点击“获取随机数”按钮,系统获取到一个随机数。
3 .玩家输入一个数,点击“确定 ”按钮。如果玩家输入的数比系统给出的随机数
小,系统会提示“您猜的太小了,请继续猜!”。如果玩 家输入的数比系统给出的随
机数大,系统提示“您猜的太大了,请继续猜!”。
4 .如果玩 家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,
有点笨!”,并且会计算出玩家所 用的时间和所猜的次数。如果玩家猜对了数,而且
所用时间小于十秒,系统会提示“恭喜您,猜对了!您 真棒,智商真高!”,并且会
计算出玩家所用的时间和所猜的次数。
5. 如果玩家想重新再玩一次,点击“获取随机数”按钮即可继续玩下一轮游戏。

5.2 运行结果分析

14



开始运行程序时图形界面的显示



图7 图形显示界面
玩家输入一个数“10”后,点击“确 定”,系统提示“您猜的太小了”。玩家再
次输入一个数“70”后,点击“确定”,系统提示“您猜的 太大了”。 玩家再次输入
一个数“32”,点击“确定”,系统提示“猜对了”。


5.3结论
经过差不多两个星期的努力,基本上完成我的Java课程设计—简单 的记事本
程序,也基本上实现了我在需求分析时所预期的功能。通过这次的课程设计,使
将我从 书本上学习到的理论知识用到了实践上,从而进一步巩固和丰富了我所学
过的知识,让我更深层次地认识 到Java及其强大的功能。同时,做这门课程设计
也进一步加强了我的动手能力。为了完成好这次课程 设计,我提前做了较多的准
备,一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻 炼
了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。但是,设
计过程中也存 在一些问题,本来一开始想给这个记事本程序加上一张背景图片,
以及添加字体设置功能,但是由于本人 知识浅陋以及各种其他原因,使得这些想
法没有实现,这是这次课程设计的一点遗憾。



15

动车列车员-技巧的近义词


上海自考报名-如此懦弱的我


赞美春天的诗-一蹴而就的近义词


小学生心理咨询记录-支教总结


撕夜吉他谱-优雅女


小学一年级语文试卷-活泼的反义词


手工小制作大全-英文自荐信


陈星言-我和祖国一起成长