JAVA猜数游戏实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXXX 大学实习(实训)报告名称Java程序设计项目实训01
猜数游戏
2112年12月31日至2013年1月6日共1周
院系计算机工程系
班级
姓名
系主任
教研室主任
指导教师
目录
目录 (2)
一、课程设计的目的与要求 (3)
二、题目说明 (3)
2.1程序开发背景 (3)
2.2开发工具介绍 (4)
三、总体设计 (4)
3.1.系统总体设计: (4)
3.2.系统流程图: (5)
3.3功能结构图: (6)
四、详细说明 (6)
4.1 类与数据结构的实现 (6)
4.2 关键算法的实现 (7)
4.3 运行结果分析 (11)
五、遇到的问题和解决方法 (13)
六、课程设计总结 (13)
七、参考文献 (14)
附录(源程序代码) (14)
一、课程设计的目的与要求
1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2) 实训为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;
3) 培养学生在项目开发中团队合作精神,创新意识及能力。
二、题目说明
功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语.
界面要示:用字符界面实现,也可用图形界面实现.
2.1程序开发背景
设计一个猜数字游戏程序,要求具体如下特性:
(1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。
(2)大众性:要求游戏界面操作简单,游戏规则简单易懂。
(3)合理性:游戏设计严谨,有条理,具体需求如下
①输入任意一个数字。数字的要求是1—100的整数即可。
②系统对您输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将
提示您,数字太小请您重新输入。
如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。
系统将提示您,数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输
入。
③游戏开始时,系统自动记录您猜的时间,结束后显示所花费的时间。
④每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
⑤在游戏开始时,自动显示游戏规则。
⑥在游戏结束时,可以选择关闭游戏,或者重新开始。
2.2开发工具介绍
eclipse简介:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse 的设计思想是:一切皆为插件。它自身的核心是非常小的,其它所有的功能都以插件的形式附加到该核心上。Eclipse中三个最吸引人的地方:一是它创新性的图形API,即SWT/JFace,在此之前,我曾经用过Java 的AWT/SWING来开发Windows应用程序,AWT/SWING其界面客观地讲不够美观,而且界面响应速度比较慢;而SWT/JFace则大大改善了Java在这方面的能力。二是它的插件机制。三是利用它的插件机制开发的众多功能强大的插
三、总体设计
3.1.系统总体设计:
猜数字游戏—游戏随机给出一个1—100 (包括1和100) 之间的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示大了还是小了,从而缩小结果范围。经过几次猜测与提示后,最终猜出答案。
3.2.系统流程图:
3.3功能结构图:
4.1 类与数据结构的实现
首先搭建Java程序框架。打开Eclipse,新建名为zsy的项目,然后新建名为zsy的Java类。zsy加上合适的javadoc。
(1)随机数的产生
可以借助Java API提供的Random类来产生一个随机数。
首先在main函数中加入以下2行代码:
新建一个随机数产生器,然后生成一个1到100之间的整数。
Random random = new Random();
int number = random.nextInt(100);
第一句定义了一个类型是Random类的变量random(Java语言区分大小写,所以Random和random 是不同意思),并且用new操作符生成一个Random类的实例赋给random变量。random变量实际上是一个参照,指向内存中用new操作符新建的Random类的实大多数情况下可以把random直接看做是一个Random类的实例,可以通过“random”加上“.操作符”来调用Random类的方法,用random.nextInt(100)来获取一个1至100之间的随机数。
第二句语句定义一个整型变量number来保存随机产生的整数,并且用直接初始化的方法把random产生的随机数赋给number变量。
(2)输入输出界面
标准输入输出(Standard I/O)是指可以被应用程序使用的信息流。比如,应用程序可以从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发送到标准错误(Standard error)。猜数字游戏主要用到标准输入,即控制台输入。用System.out.println进行控制台输出,用System.in进行控制台输入。它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,则需要把它包装成一个BufferedReader 实例来使用。
BufferedReader input = new BufferedReader(
new InputStreamReader(System.in)):
这时,input就是一个能处理来自控制台输入的、支持Unicode的、可以整行读取的一个BufferedReader实例,比如能通过input.readLine()方法获取玩家在控制台整整一行的输入。
4.2 关键算法的实现
(1)记录猜测次数模块
记录玩家猜测的次数,计数器增加一:
counter = 0;
counter++;
首先定义了一个counter变量来记录玩家猜测的次数,并直接初始化为0。在打印一行游戏提示以后,便开始一个do-while语句。
在do-while语句中,首先用异常处理语句获取玩家的输入,如果玩家输入不合法,提示以后用continue语句从头重新执行循环语句,等待玩家的输入。从而,guess变量一定包含一个合法的整数。之后要对玩家的输入进行判断。