java课程设计猜数字游戏.docx
- 文档编号:6928112
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:19
- 大小:176.32KB
java课程设计猜数字游戏.docx
《java课程设计猜数字游戏.docx》由会员分享,可在线阅读,更多相关《java课程设计猜数字游戏.docx(19页珍藏版)》请在冰豆网上搜索。
java课程设计猜数字游戏
通信专业课程设计二(论文)
太原科技大学
课程设计(论文)
设计(论文)题目:
基于MyEclipse平台猜数字游戏的设计
姓名张壮阔
学号200822080132
班级通信082201H
学院华科学院
指导教师郑秀萍
2012年1月6日
太原科技大学课程设计(论文)任务书
学院(直属系):
华科学院电子信息工程系时间:
2011年12月23日
学生姓名
张壮阔
指导教师
郑秀萍
设计(论文)题目
基于MyEclipse平台猜数字游戏的设计
主要研
究内容
1.了解MyEclipse平台java应用的设计
2.基于MyEclipse平台设计猜数字游戏
研究方法
运用MyEclipse平台上的JavaEE开发,设计猜数字游戏的程序模块。
主要技术指标(或研究目标)
基于MyEclipse平台的EclipseIDE的扩展,设计Java游戏猜数字。
教研室意见
教研室(负责人)签字:
年月日
目录
基于MyEclipse平台猜数字游戏的设计-2-
第1章猜数字游戏设计概述-2-
1.1MyEclipse平台介绍-2-
1.2设计任务与要求概述-3-
第2章猜数字游戏系统设计-4-
2.1系统总体设计-4-
2.1.1总体设计分析-4-
2.1.2程序结构-4-
2.2功能模块设计-6-
2.2.1猜数字游戏功能模块图-6-
2.2.2功能模块详细设计-6-
2.3类的设计-8-
第3章猜数字游戏程序实现-10-
3.1猜数字程序流程-10-
3.2关键算法与技术实现-10-
3.2.1随机数的获取-10-
3.2.2输入输出-10-
3.2.3判断时间-11-
3.2.4自动计数-11-
3.2.5结果输出-11-
3.2.6图形界面的实现-11-
3.3类的实现-13-
第4章游戏系统测试结果-15-
4.1系统测试方案-15-
4.2运行结果分析-15-
第5章总结-18-
参考文献-19-
基于MyEclipse平台猜数字游戏的设计
第1章猜数字游戏设计概述
1.1MyEclipse平台介绍
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是界面设计所需。
根据系统范围随机产生一个数字,可根据玩家选择给出不同的数字。
玩家输入所猜数字时给出与真实数字的大小比较。
在玩家猜中时,可给出其所用时间,并给出评价。
最后,游戏的结束与继续可由玩家控制。
1.2设计任务与要求概述
功能要求:
该程序用图形界面实现下面功能:
用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。
游戏结束后给出评语并计算出玩家所用的时间与所猜的次数。
具体要求:
1)欢迎界面:
通过这里提供的选项(或按钮),进入游戏界面。
2)游戏界面提供“获取随机数”按钮,系统获取到随机数,游戏者输入自己的猜测结果,通过按“确认”按钮完成输入。
每次提示输入猜测结果时,给出猜测的准确度提示。
3)按“获取随机数”按钮,继续游戏。
4)游戏结束后给出评语并计算出玩家所用的时间与所猜次数。
界面要示:
用图形界面实现。
第2章猜数字游戏系统设计
2.1系统总体设计
2.1.1总体设计分析
1.随机数的获取:
玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2.输入输出模块:
对玩家输入的数字进行判断和提示。
如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。
如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。
如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
3.判断模块:
算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。
4.自动计数模块:
系统根据您猜数字的次数,自动计数。
5.结果输出模块:
直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.
2.1.2程序结构
点击“获取随机数”按钮,系统获取到一个随机数。
玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!
”。
如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!
”。
如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!
”,并且会计算出玩家所用的时间和所猜的次数。
如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!
您真棒,智商真高!
”,并且会计算出玩家所用的时间和所猜的次数。
图2.1程序结构图
2.2功能模块设计
2.2.1猜数字游戏功能模块图
游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。
其中输入输出模块中系统会对玩家给出的数进行判断和输出。
判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。
图2.2功能模块图
2.2.2功能模块详细设计
1.随机数的获取
功能描述:
玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2.输入输出模块
功能描述:
对玩家输入的数字进行判断和提示。
如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。
如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。
如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
图2.3输入输出模块图
3.判断模块
功能描述:
算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。
图2.4判断模块图
4.自动计数模块
功能描述:
系统根据您猜数字的次数,自动计数。
图2.5自动计数模块图
5.结果输出模块
功能描述:
直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统。
2.3类的设计
表2.6.类的分类
类名
属性
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对图形界面的窗口进行设计。
第3章猜数字游戏程序实现
3.1猜数字程序流程
点击“获取随机数”按钮,系统获取到一个随机数。
玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!
”。
如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!
”。
如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!
”,并且会计算出玩家所用的时间和所猜的次数。
如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!
您真棒,智商真高!
”,并且会计算出玩家所用的时间和所猜的次数。
3.2关键算法与技术实现
3.2.1随机数的获取
num=(int)(Math.random()*100);
Stringanswer;
Scannerinput=newScanner(System.in);
3.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); } } 3.2.3判断时间 startTime=System.currentTimeMillis(); longendTime=System.currentTimeMillis(); strshow="您猜数字总共花了"+(endTime-startTime)/1000+"秒"; 3.2.4自动计数 intgeust=0; counter++; strshow="您总共猜了"+counter+"次; 3.2.5结果输出 longt; t=(endTime-startTime)/1000; strshow="您总共猜了"+counter+"次,您猜数字总共花了"+(endTime-startTime)/1000+"秒"; if(t<10) lbshow.setText("恭喜您,猜对了! 您真棒,智商真高! "+strshow); elseif(t>10) lbshow.setText("这么久才猜出来,有点笨! "+strshow); 3.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); } 3.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对图形界面的窗口进行设计。 第4章游戏系统测试结果 4.1系统测试方案 1.点击运行程序后,显示出图形界面。 2.点击“获取随机数”按钮,系统获取到一个随机数。 3.玩家输入一个数,点击“确定”按钮。 如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜! ”。 如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜! ”。 4.如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨! ”,并且会计算出玩家所用的时间和所猜的次数。 如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了! 您真棒,智商真高! ”,并且会计算出玩家所用的时间和所猜的次数。 5.如果玩家想重新再玩一次,点击“获取随机数”按钮即可继续玩下一轮游戏。 4.2运行结果分析 开始运行程序时图形界面的显示 图4.1图形显示界面 玩家输入一个数“25”后,点击“确定”,系统提示“您猜的太小了,请继续猜! ”。 图4.2系统提示图a 玩家再次输入一个数“70”后,点击“确定”,系统提示“您猜的太大了,请继续猜! ”。 图4.3系统提示图b 玩家再次输入一个数“32”,点击“确定”,系统提示“这么久才猜出来,有点笨! 您总共猜了3次,您猜数字总共花了73秒”。 图4.4图形界面结果输出图a 玩家再重新玩一次,获取随机数后,玩家输入一个随机数“90”,点击“确定”,系统提示“恭喜您,猜对了! 您真棒,智商真高! 您总共猜了1次,您猜数字总共花了2秒”。 图4.5图形界面结果输出图b 第5章总结 猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大,是消磨时间、锻炼脑力的好选择。 通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用MyEclipse软件。 同时更加深入的了解字符界面的编程过程。 使我更熟练的掌握Java程序框架的搭建和类的创建格式。 在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。 让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。 参考文献 [1]刘万军,梁清华,王松波,宋强,等.Java课程设计实践教程[M].北京: 清华大学出版社.2009. [2]杨昭.二级Java语言程序设计教程[M].中国水利水电出版社.2006. [3]赵文靖.Java程序设计基础与上机指导[M].清华大学出版社.2006. [4]张广彬,孟红蕊,张永宝.Java课程设计案例精编[M].清华大学出版社.2007. [5]黄晓东.Java课程设计案例精编(第一版)[M].中国水利水电出版社2004. [6][美]CayS.Horstmann程峰等译.JAVA2核心技术[M].机械工业出版社2003. [7]赵毅主.跨平台程序设计语言—Java[M].西安电子科技大学出版社2006. [8]王路群.Java高级程序设计[M].中国水利水电出版社2006. [9]夏宽理.Java语言程序设计[M].机械工业出版社.2008. [10]丁新民.Java程序设计教程[M].人民邮电出版社.2006.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 数字 游戏
![提示](https://static.bdocx.com/images/bang_tan.gif)