java课程设计——猜数字游戏

别妄想泡我
627次浏览
2021年01月01日 03:03
最佳经验
本文由作者推荐

爱走了心碎了歌词-亭房道

2021年1月1日发(作者:靳东发)



目 录

一、设计任务与要求 ............ .................................................. ...................................... 1
1.1 设计任务与要求 .......................................... .................................................. ......... 1
1.2 选题目的与意义 ...................... .................................................. ............................. 1
二、需求分析 ....... .................................................. .................................................. ..... 2
2.1 用户需求分析 ........................... .................................................. ............................ 2
2.2 开发环境分析 .... .................................................. .................................................. . 2
三、系统设计 ................................... .................................................. ........................... 3
3.1 系统总体设计 ..... .................................................. .................................................. 3
3.1.1 总体设计分析 ............................... .................................................. ................... 3
3.1.2 程序结构 ............. .................................................. ............................................. 3
3.2 功能模块设计 ................................... .................................................. .................... 5
3.2.1 功能模块图 ........... .................................................. ........................................... 5
3.2.2 功能模块详细设计 ............................... .................................................. ........... 5
3.3 类的设计 ....................... .................................................. ........................................ 7
四、程序实现 ....................................... .................................................. ....................... 9
4.1 程序流程图 .......... .................................................. ................................................. 9
4.2.1 随机数的获取 ............................... .................................................. ................. 10
4.2.2 输入输出 .............. .................................................. .......................................... 10
4.2.3 判断时间 ................................... .................................................. ..................... 11
4.2.4 自动计数 .......... .................................................. .............................................. 11
4.2.5 结果输出 ................................... .................................................. ..................... 11
4.2.6 图形界面的实现 ....... .................................................. ..................................... 12
4.3 类的实现 ............................................. .................................................. ................ 13
五、测试运行 ................... .................................................. ......................................... 15
5.1 系统测试方案 ................................... .................................................. .................. 15
5.2 运行结果分析 ............. .................................................. ........................................ 15
六、设计体会 ....................................... .................................................. ..................... 18



一、设计任务与要求
1.1 设计任务与要求
功能要求:该程序用图形界面实现下 面功能:用计算机产生一个100以内的随机数,
游戏者进行猜数,猜中即胜,猜不中,提示是大了还是 小了,继续猜,直至猜对为止。游
戏结束后给出评语并计算出玩家所用的时间与所猜的次数。
具体要求:
1) 欢迎界面:通过这里提供的选项(或按钮),进入游戏界面。
2) 游戏界面提供“获取随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,
通 过按“确认”按钮完成输入。每次提示输入猜测结果时,给出猜测的准确度提示。
3) 按“获取随机数”按钮,继续游戏。
4) 游戏结束后给出评语并计算出玩家所用的时间与所猜次数。
界面要示:用图形界面实现。

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

















二、需求分析
2.1 用户需求分析
1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2.对玩家输入的 数字进行判断大小,如果不是系统要求的数字,系统将提示您,您输
入的不是数字请重新输入,给出提醒 以便玩家进一步选择。
3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及判断。
4.系统根据您猜数字的次数,自动计数.
5.直到用户猜到数字为止,提示信息是否继续猜 数字,如果继续将进入下一次游戏,
如果退出将退出游戏系统.
2.2 开发环境分析
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)
是对Eclipse IDE的扩展,利用它我们可 以在数据库和JavaEE的开发、发布,以及应用程
序服务器的整合方面极大的提高工作效率。它是功 能丰富的JavaEE集成开发环境,包括了
完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL,
Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
1. JavaEE模型
2. WEB开发工具
3. EJB开发工具
4. 应用程序服务器的连接器
5. JavaEE项目部署服务
6. 数据库服务
7. MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclip se中都有相应的功能部件,并通过一系列的
插件来实现它们。MyEclipse结构上的这种模块化 ,可以让我们在不影响其他模块的情况
下,对任一模块进行单独的扩展和升级。
简单而言,M yEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环
境,支持代码 编写、配置、测试以及除错。
该程序基于JDK和MyEclipse编写,选用MyEclipse 是界面设计所需。根据系统范围
随机产生一个数字,可根据玩家选择给出不同的数字。玩家输入所猜数字 时给出与真实数字
的大小比较。在玩家猜中时,可给出其所用时间,并给出评价。最后,游戏的结束与继 续
可由玩家控制。



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

3.1.2 程序结构
点击“获取随机数”按钮,系统获取到一个随机数。 玩家输入一个数 ,如果玩家输入
的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如果玩家输入
的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。 如果玩家猜对了
数, 但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出
玩家所用的时间和所 猜的次数。如果玩家猜对了数,而且所用时间小于十秒,系统会提示
“恭喜您,猜对了!您真棒,智商真 高!”,并且会计算出玩家所用的时间和所猜的次数。


























恭喜您,


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







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






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



猜数游戏

















随机数
的获取

输入输
出 模

判断模

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










是否
继续
的选

图2 功能模块图


3.2.2 功能模块详细设计
1随机数的获取
功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

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



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


图3 输入输出模块图

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

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

图4 判断模块图



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


玩家猜数字,若猜错 计数器加1
图5 自动计数模块图



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

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

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

从用户的角度看,Java 源程序中的类分为两种:
系统定义的类:即 Java 类库,它是系统定义好的类。Java 语言由语法规则和类库两
部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运行它的系
统软件(Java 虚拟机)之间的接口。
用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需 要针
对特定问题的特定逻辑来定义自己的类。
在 Java 程序中,用户自定义类的一般格式如下:
class 类名
数据成员
成员方法
类的结构是由类说明和类体两部分组成的。
类的说明部分由关键字 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.1 程序流程图
点击“获取随机数”按钮,系统获取到一个随机数。 玩家输入一个数,如果玩家输
入的数比系 统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。如果玩家输入
的数比系统给出的随机数 大,系统提示“您猜的太大了,请继续猜!”。 如果玩家猜对了数,
但是所用时间大于十秒,系统会提 示“这么久才猜出来,有点笨!”,并且会计算出玩家所
用的时间和所猜的次数。如果玩家猜对了数,而 且所用时间小于十秒,系统会提示“恭喜
您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的 时间和所猜的次数。












恭喜您,


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







图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;
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=您总共猜了次,您猜数字总共花了



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
);


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 类的实现

首先搭建Jav a程序框架。打开Eclipse,新建名为GuessNumberGame的项目,然后新
建名为G uessNumber的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上,然后按下Ctrl+
Shift+M,Eclipse会自动帮你完成导入的工作了,此时 保存一下源代码。
第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始 化的方
法把random产生的随机数赋给number变量。
第二步:标准输入输出
标准输入输出(Standard IO)是指可以被应用程序使用的信息流。应用程序可以从标
准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发



送到标准错误(Standard error)。通过输入输出,应用程序 和应用程序之间可以被串联起
来使用。虽然标准输入输出是从UNIX发展出来的概念,在Window s中也广泛应用。
猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。相反,要从控制台输
入,就需要用到。它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获
取玩家的字符输入 ,我们需要把它包装成一个BufferedReader。
第三步:使用BorderLayout对图形界面的窗口进行设计。
























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

5.2 运行结果分析
开始运行程序时图形界面的显示












图7 图形显示界面






玩家输入一个数“25”后,点击“确定”,系统提示“您猜的太小了,请继续猜!”。









图8 系统提示图a

玩家再次输入一个数“70”后,点击“确定”,系统提示“您猜的太大了,请继续猜!”。









图9 系统提示图b





玩家再次输入一 个数“32”,点击“确定”,系统提示“这么久才猜出来,有点笨!
您总共猜了3次,您猜数字总共花 了73秒”。









图10 图形界面结果输出图a

玩家再重新玩一次,获取随机数后,玩 家输入一个随机数“90”,点击“确定”,系
统提示“恭喜您,猜对了!您真棒,智商真高!您总共猜 了1次,您猜数字总共花了2秒”。









图11 图形界面结果输出图b


五年级上册教学反思-个性化教学


姚贝娜鱼-缘份


红尘客栈伴奏-汉语拼音字母表歌


高炮广告牌-西游记读后感200字


宋朝历史-落叶飘零


wps表格的基本操作-中秋节好词好句


火车连续发出两声长鸣-关于猪八戒的歇后语


航空大学分数线-勿忘我花