猜数字小游戏JAVA程序报告.docx

  • 格式:docx
  • 大小:52.42 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JAVA程序设计报告

——猜数字小游戏

目录

一、猜数字小游戏简介 (4)

二、用户需求分析 (4)

三、问题描述 (4)

1.课程设计的任务

2.课程设计的要求

四、模块设计 (5)

1.课程设计的要求

2.功能模块设计

3.流程图

五、功能设计 (7)

1 . 随机数的产生模块

2 . 输入判断模块

3 . 记录猜测次数模块

4.计时模块

5.输入输出模块

6.成绩判断模块

六、异常处理 (9)

七、调试分析 (10)

八、不足之处 (11)

九、总结 (12)

十、程序附页 (13)

摘要

猜数字是一款非常经典的脑力游戏,游戏规则简单,是消磨时间、锻炼脑力的好选择。通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用my eclipse软件。同时更加深入的了解字符界面的编程过程。使我更熟练的掌握Java程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。

一、猜数字小游戏简介

系统随机产生任意一个1—100的自然数,玩家输入数字,若输入的数

字比随机生成数小,系统将提示,数字太小请您重新输入;如果输入的数字

比随机生成数大,系统将提示,数字太大请您重新输入;若输入的字符不是

合法字符,系统将提示,您输入的数字不合法,请从新输入,游戏开始时,

系统自动记录您猜数字的时间和次数,结束后显示游戏共花费的次数和时间

及对游戏结果的评价。

二、用户需求分析

设计一个猜数字游戏程序,要求具体如下特性:

a.输入任意一个数字。数字的要求是1—100的自然数即可。

b.系统对您输入的数字进行判断。

如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生

成数小.系统将提示您,数字太小请您重新输入。

如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随

机生成数大。系统将提示您,数字太大请您重新输入。

如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。

c . 游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。

d . 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。

e . 在游戏结束时,可以选择关闭游戏,或者再来一局

f . 游戏结束前可选择直接显示答案

三、问题描述

1.课程设计的任务:

根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。 (1)掌握Java 的语言规范,面向对象的核心概念和特性;

(2)掌握Java 的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;

(3)掌握Java 应用软件的开发环境和开发过程; (4)掌握面向对象的思想和程序设计方法。

2.课程设计的要求:

戏成功

1 . 系

2 .

3 .

五、 功

能设计

1 . 随机数的产生模块

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

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

Random random = new Random();

number = random.nextInt(100); // 产生一个1-100间的随机数

2 . 输入判断模块

在游戏界面中输入不合法

try {

guess = Integer.parseInt(jTextField1.getText()); //玩家输入获取

}

catch (Exception e) {

JOptionPane.showMessageDialog(null, "请输入一个1-100之间的整数"); //显示对话框,输入不合法

jTextField1.setText(""); //清空文本框内容

jTextField1.requestFocus();

return; }

3 . 记录猜测次数模块

// 记录玩家猜测的次数

counter = 0;

// 计数器增加一

counter++;

4 . 计时模块

计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为

单位。

long startTime = System.currentTimeMillis();

long endTime = System.currentTimeMillis();

5 . 输入输出模块

// 对玩家的输入进行判断。

if (guess > number) {

JOptionPane.showMessageDialog(null, "o(≧v≦)o猜大了");

jTextField1.setText("");

jTextField1.requestFocus();

return;

}

if (guess < number) {

JOptionPane.showMessageDialog(null, "o(≧v≦)o太小啦");

jTextField1.setText("");

jTextField1.requestFocus();

return;

}

if (guess == number) {

endTime = System.currentTimeMillis();

6 . 成绩判断模块

// 判断成绩。

switch (counter) {

case 1:

JOptionPane.showMessageDialog(null, "O(∩_∩)O太给力了吧");

break;

case 2:

case 3:

JOptionPane.showMessageDialog(null,"OH MY GOD!!!好腻害");

break;

case 4:

case 5:

case 6:

JOptionPane.showMessageDialog(null,"O(∩_∩)O猜对,很不错哦!");