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

上传人:b****5 文档编号:7813390 上传时间:2023-01-26 格式:DOCX 页数:16 大小:169.09KB
下载 相关 举报
java课程设计猜数字游戏.docx_第1页
第1页 / 共16页
java课程设计猜数字游戏.docx_第2页
第2页 / 共16页
java课程设计猜数字游戏.docx_第3页
第3页 / 共16页
java课程设计猜数字游戏.docx_第4页
第4页 / 共16页
java课程设计猜数字游戏.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《java课程设计猜数字游戏.docx》由会员分享,可在线阅读,更多相关《java课程设计猜数字游戏.docx(16页珍藏版)》请在冰豆网上搜索。

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

java课程设计猜数字游戏

一、设计任务与要求

1.1设计任务与要求

功能要求:

该程序用图形界面实现下面功能:

用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。

游戏结束后给出评语并计算出玩家所用的时间与所猜的次数。

具体要求:

1)欢迎界面:

通过这里提供的选项(或按钮),进入游戏界面。

2)游戏界面提供“获取随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,通过按“确认”按钮完成输入。

每次提示输入猜测结果时,给出猜测的准确度提示。

3)按“获取随机数”按钮,继续游戏。

4)游戏结束后给出评语并计算出玩家所用的时间与所猜次数。

界面要示:

用图形界面实现。

1.2选题目的与意义

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

 

二、需求分析

2.1用户需求分析

1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2.对玩家输入的数字进行判断大小,如果不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入,给出提醒以便玩家进一步选择。

3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及判断。

4.系统根据您猜数字的次数,自动计数.

5.直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.

2.2开发环境分析

MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。

它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。

在结构上,MyEclipse的特征可以被分为7类:

  1.JavaEE模型

  2.WEB开发工具

  3.EJB开发工具

  4.应用程序服务器的连接器

  5.JavaEE项目部署服务

  6.数据库服务

  7.MyEclipse整合帮助

  对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。

MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。

该程序基于JDK和MyEclipse编写,选用MyEclipse是界面设计所需。

根据系统范围随机产生一个数字,可根据玩家选择给出不同的数字。

玩家输入所猜数字时给出与真实数字的大小比较。

在玩家猜中时,可给出其所用时间,并给出评价。

最后,游戏的结束与继续可由玩家控制。

三、系统设计

3.1系统总体设计

3.1.1总体设计分析

1随机数的获取:

玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2输入输出模块:

对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

3判断模块:

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

4自动计数模块:

系统根据您猜数字的次数,自动计数.

5结果输出模块:

直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.

3.1.2程序结构

点击“获取随机数”按钮,系统获取到一个随机数。

玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!

”。

如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!

”。

如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!

”,并且会计算出玩家所用的时间和所猜的次数。

如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!

您真棒,智商真高!

”,并且会计算出玩家所用的时间和所猜的次数。

 

 

 

 

图1程序结构图

 

3.2功能模块设计

3.2.1功能模块图

游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。

其中输入输出模块中系统会对玩家给出的数进行判断和输出。

判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。

图2功能模块图

 

3.2.2功能模块详细设计

1随机数的获取

功能描述:

玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2输入输出模块

功能描述:

对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

图3输入输出模块图

3判断模块

功能描述:

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

图4判断模块图

4自动计数模块

功能描述:

系统根据您猜数字的次数,自动计数.

图5自动计数模块图

5结果输出模块

功能描述:

直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.

3.3类的设计

表1类的分类

类名

属性

Math.random

数学中的随机数。

BorderLayout

图形界面窗口的设计与调整

Concurrent

concurrent在并发编程中很常用的实用工具类。

从用户的角度看,Java源程序中的类分为两种:

系统定义的类:

即Java类库,它是系统定义好的类。

Java语言由语法规则和类库两部分组成,语法规则确定Java程序的书写规范;类库则提供了Java程序与运行它的系统软件(Java虚拟机)之间的接口。

用户自定义类:

系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。

在Java程序中,用户自定义类的一般格式如下:

class类名

数据成员

成员方法

类的结构是由类说明和类体两部分组成的。

类的说明部分由关键字class与类名组成,类名的命名遵循Java标识符的定义规则。

类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。

数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。

首先搭建Java程序框架。

打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。

GuessNumber加上合适的javadoc。

第一步:

随机数的产生

我们可以借助JavaAPI提供的Random类来产生一个随机数。

首先在main函数中加入以下三行代码:

//新建一个随机数产生器,然后生成一个1到100之间的整数。

num=(int)(Math.random()*100);

Stringanswer;

Scannerinput=newScanner(System.in);

第二步:

标准输入输出

标准输入输出(StandardI/O)是指可以被应用程序使用的信息流。

应用程序可以从标准输入(Standardinput)读取数据,向标准输出(Standardoutput)写数据,把出错信息发送到标准错误(Standarderror)。

通过输入输出,应用程序和应用程序之间可以被串联起来使用。

虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。

猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。

相反,要从控制台输入,就需要用到System.in。

它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步:

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

 

四、程序实现

4.1程序流程图

点击“获取随机数”按钮,系统获取到一个随机数。

玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!

”。

如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!

”。

如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!

”,并且会计算出玩家所用的时间和所猜的次数。

如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!

您真棒,智商真高!

”,并且会计算出玩家所用的时间和所猜的次数。

 

 

 

图6程序流程图

4.2关键算法与技术实现

4.2.1随机数的获取

num=(int)(Math.random()*100);

Stringanswer;

Scannerinput=newScanner(System.in);

4.2.2输入输出

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

{

if(num2

lbshow.setText("您猜的太小了,请继续猜!

");

continue;

}

elseif(num2>num){

lbshow.setText("您猜的太大了,请继续猜!

");

continue;

}

longendTime=System.currentTimeMillis();

longt;

t=(endTime-startTime)/1000;

strshow="您总共猜了"+counter+"次,您猜数字总共花了"+(endTime-startTime)/1000+"秒";

if(t<10)

lbshow.setText("恭喜您,猜对了!

您真棒,智商真高!

"+strshow);

elseif(t>10)

lbshow.setText("这么久才猜出来,有点笨!

"+strshow);

}

}

4.2.3判断时间

startTime=System.currentTimeMillis();

longendTime=System.currentTimeMillis();

strshow="您猜数字总共花了"+(endTime-startTime)/1000+"秒";

4.2.4自动计数

intgeust=0;

counter++;

strshow="您总共猜了"+counter+"次;

4.2.5结果输出

longt;

t=(endTime-startTime)/1000;

strshow="您总共猜了"+counter+"次,您猜数字总共花了"+(endTime-startTime)/1000+"秒";

if(t<10)

lbshow.setText("恭喜您,猜对了!

您真棒,智商真高!

"+strshow);

elseif(t>10)

lbshow.setText("这么久才猜出来,有点笨!

"+strshow);

4.2.6图形界面的实现

BorderLayoutbdmg=newBorderLayout();

Buttonbutton1=newButton("获取随机数");

Buttonbutton2=newButton("确定");

Stringstr=null;

Stringstr2=null;

longstartTime;

intnum,num2;

intcounter=0;

myGeustNummy1=newmyGeustNum();

TextFieldinput;

Labellbshow=newLabel("");

Labellbshow2=newLabel("");

inti;

Stringstrshow;

publicvoidinit()

{

setLayout(bdmg);

add(button1,BorderLayout.NORTH);

button1.addActionListener(this);

button1.setSize(50,50);

Labellb1=newLabel("请输入");

lb1.setSize(50,20);

this.add(lb1,BorderLayout.WEST);

input=newTextField(10);

input.setSize(40,50);

add(input,BorderLayout.CENTER);

add(button2,BorderLayout.EAST);

lb1.setSize(50,20);

button2.addActionListener(this);

button2.setSize(50,20);

add(lbshow,BorderLayout.SOUTH);

setSize(450,200);

}

4.3类的实现

首先搭建Java程序框架。

打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。

GuessNumber加上合适的javadoc。

第一步:

随机数的产生

我们可以借助JavaAPI提供的Random类来产生一个随机数。

首先在main函数中加入以下三行代码:

//新建一个随机数产生器,然后生成一个1到100之间的整数。

num=(int)(Math.random()*100);

Stringanswer;

Scannerinput=newScanner(System.in);

Eclipse立即在错误语句处划出红线,把鼠标移动到红线上。

包(Package)的概念

JavaAPI中包含了极其丰富、类似于Random这样由Sun预先定义好的类。

不同包中可以有同名同姓的类,如果没有包的概念,就会遇到命名冲突问题。

此外,包还能进行安全控制。

Random类是在java.util这个包中。

可以手动在源程序顶部输入importjava.util.Random;语句来申明该程序将要使用java.util包中的Random类,然而有了Eclipse,就不用那么麻烦了—把光标移动到有红色波浪线的Random上,然后按下Ctrl+Shift+M,Eclipse会自动帮你完成导入的工作了,此时保存一下源代码。

第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。

第二步:

标准输入输出

标准输入输出(StandardI/O)是指可以被应用程序使用的信息流。

应用程序可以从标准输入(Standardinput)读取数据,向标准输出(Standardoutput)写数据,把出错信息发送到标准错误(Standarderror)。

通过输入输出,应用程序和应用程序之间可以被串联起来使用。

虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。

猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。

相反,要从控制台输入,就需要用到System.in。

它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1