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

温柔似野鬼°
890次浏览
2021年01月01日 04:01
最佳经验
本文由作者推荐

爱国歌曲下载-销声匿迹造句

2021年1月1日发(作者:伊用昌)


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.课程设计的要求:
游戏程序,该游戏可以由程序
戏者通过由用户输入数字来匹
用户随机输入数字,当与计算< br>合时,计算机将提醒用户,游
信息,当有偏差
提醒偏差,如偏
偏小。
设计一个猜数字
随机产生整数,玩游
产生随机数
配上面所产生的数字。
机产生 的随机数相符
系统开始计时
戏成功的
时,将会
由用户输入一个
大或者是
四、模块
1 . 系统

2 . 功能
开始界面
G>N
注册

G=N
开始游
GY
设计
总体设计
模块设计


登陆
猜小
3 . 流程图
系统结束计时
模块组成
记录时间重新开
系统统计猜数次

输出输入

计时模
显示答产生随
五、 功
谢谢你的观赏
登陆模判断模


谢谢你的观赏
能设计
1 . 随机数的产生模块
我们可以借助Java API提供的Random类来产生一个随机数。
首先在main函数中加入以下代码:
Random random = new Random();
number = t(100); 产生一个1-100间的随机数
2 . 输入判断模块
在游戏界面中输入不合法
try {










guess = nt(t()); 玩家输入获取
}
catch (Exception e) {
ssageDialog(null, 请输入一个1-100之间的整数
显示对话框,输入不合法












t(清空文本框内容
tFocus();
return; }
3 . 记录猜测次数模块
记录玩家猜测的次数
counter = 0;
计数器增加一
counter++;
4 . 计时模块
计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为
单位。
long startTime = tTimeMillis();
long endTime = tTimeMillis();
5 . 输入输出模块
对玩家的输入进行判断。
if (guess > number) {









ssageDialog(null, ≧v≦)o猜大了
t(
tFocus();
谢谢你的观赏


谢谢你的观赏






















return;
}
if (guess < number) {





ssageDialog(null, ≧v≦)o太小啦
t(
tFocus();
return;
}
if (guess == number) {
endTime = tTimeMillis();
6 . 成绩判断模块
判断成绩。
switch (counter) {
case 1:
ssageDialog(null, ∩_∩)O太给力
了 吧
break;
case 2:
case 3:
ssageDialog(null,好腻害

break;
case 4:
case 5:
case 6:
ssageDialog(null,∩_∩)O猜对,很
不错哦!
谢谢你的观赏


谢谢你的观赏
break;
case 7:
case 8:
case 9:
case 10:
ssageDialog(null,﹏+)有点慢,还要
多练习;
break;
default:
ssageDialog(null, ﹏+)oh! NO,太
慢啦,
break;
}
六、 异常处理 < br>我们在运行程序时往往会出现许多错误,而Java语言提供了异常
(Exception)处理 机制帮助程序员发现并处理异常。所谓异常,就是在程
序执行过程中能干扰程序正常流程的事件。导致异 常的原因很多,比如
文件找不到、数组越界、除以零等。当异常出现时,一个异常对象将被
自动 生成并传递给Java“运行时环境”,如果“运行时环境”找不到异
常句柄,Java程序便会自行中 断。

try {statement(s);
} catch (exceptiontype1 name) {
谢谢你的观赏


谢谢你的观赏
statement(s);
} catch (exceptiontype2 name) {
statement(s);
} finally {
statement(s);
}
try语句括起来的语 句可能抛出异常。try语句至少要搭配一个catch
语句或finally语句,不能单独使用,我 设计的猜数字游戏需要从控制台获
取玩家输入的数字,有多个异常处理
try {
setDefaultCloseOperation(E_ON_CLOSE);
getContentPane().setLayout(null);
} catch (Exception e) {
tackTrace();
}
try {
获取玩家的输入
guess = nt(t());
} catch (Exception e)

七、调试分析
八、不足之处
本小游戏还未建立游戏记录部分,无法
记录玩家游戏成绩记录和建立游戏排
行榜
在界面设计方面还较为简单,
谢谢你的观赏


谢谢你的观赏
游戏还有很多可修改和增加难度的地方
总结
经过这几天努力终于完成了这份课设, 虽然在操作的过程中我都遇到了许多的困难,
但是却使我得到了许多的意外收获。Java是一种简单的 ,面向对象的,分布式的,解释
型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语 言。在写代码
的过程中我们也遇到了一些的困难,就是对一些有关Java语言的不理解,我便又到课本
中去查找。一个项目的成败关键不全在于技术。要想在一个愉快的氛围里边以轻松的心
情来完成 紧张的工作,严谨的态度和工作的热情都是必不可少的。以前上课时有许多的
问题并没有真正的认识到, 但通过这次试验的制作,使我掌握了许多更重要的知识点。
程序附页
package JAVA;
public class Login extends JFrame {
ArrayList names = new ArrayList();
ArrayList pwd = new ArrayList();
private static final long serialVersionUID = 1L;
public Login() {
ation(100, 100);
e(400, 180);
le(欢迎进入有趣的猜数字小游戏
loginWindow();
setLocationRelativeTo(null); 窗口居中显示
ible(true);
}
public void loginWindow() {
JLabel name = new JLabel(请输入玩家姓名:
JLabel password = new JLabel(请输入登陆密码:
final JTextField tfName = new JTextField(20);
final JPasswordField tfPassword = new JPasswordField(20);
JButton ok = new JButton(注册
JButton cancel = new JButton(登录
JPanel pm = new JPanel();
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
(name);
谢谢你的观赏


谢谢你的观赏












































}



























(tfName);
(password);
(tfPassword);
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
(t());
(t());
ssageDialog(null, 注册成功
t(
t(
}
});
ionListener(new ActionListener() {
@SuppressWarnings(
@Override
@SuppressWarnings(
public void actionPerformed(ActionEvent arg0) {
TODO Auto-generated method stub
for (int i = 0; i < (); i++) {
if ((i).equals(t())) {
if ((i).equals(t())) {
ssageDialog(null, 登陆成功
setVisible(false);隐藏原界面
new GuessNum();进入主界面
}
else {
ssageDialog(null, 用户名或密码有
}
}
}
}
});
(ok);
(cancel);
(p1);
(p2);
(p3);
(pm);
aultCloseOperation(_ON_CLOSE);
}
public static void main(String[] args) {
new Login();
}
谢谢你的观赏


谢谢你的观赏
package JAVA;
private static final long serialVersionUID = 1L;
private JLabel jLabel1;
private JTextField jTextField1;
private JButton jButton1;
private JButton jButton2;
private JButton jButton3;
private int number = 0;
private int counter = 0;
long startTime = tTimeMillis();
long endTime; 计算时间
public GuessNum() {
super (猜数字小游戏
initChuangkou();
Random random = new Random();
number = t(100); 产生一个1——100的随机数
}
private void initChuangkou() {
try {
setDefaultCloseOperation(E_ON_CLOSE); 窗口关
闭时销毁窗口
getContentPane().setLayout(null); 设置窗口布局为绝对布局
JFrame frame = new JFrame(
out(new FlowLayout());
jLabel1 = new JLabel();
getContentPane().add(jLabel1);
t(★欢迎进入有趣的猜数字游戏 ★ 请输入1~100
中的任 意一个数:
nds(75,20, 200, 50);
jTextField1 = new JTextField();
getContentPane().add(jTextField1);
nds(110, 100, 112, 28);
Listener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
jTextField1KeyPressed(evt);
}
});
jButton1 = new JButton();
getContentPane().add(jButton1);
t(确定
nds(120, 160, 100, 25);
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt); 按钮被点击时 执行该 方法
}
谢谢你的观赏


谢谢你的观赏









































});
jButton2= new JButton();
getContentPane().add(jButton2);
t(显示答案
nds(120, 200, 100, 25);
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt2) {
jButton2ActionPerformed(evt2); 按钮被点击时 执行该 方法
}
});
jButton3= new JButton();
getContentPane().add(jButton3);
t(再来一次
nds(120,240,100,25);
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt3) {
jButton3ActionPerformed(evt3); 按钮被点击时 执行该 方法
}
});
pack();
e(340, 400); 窗口大小
setLocationRelativeTo(null); 设置窗口在显示器居中显示
}
catch (Exception e) {
tackTrace();
}
setVisible(true);
}
private void jButton2ActionPerformed(ActionEvent evt2) {
ssageDialog(null, 答案是直接显示答案
setVisible(false); 隐藏原界面
return;
}
private void jButton3ActionPerformed(ActionEvent evt3){
setVisible(false);
new GuessNum();
}
private void jButton1ActionPerformed(ActionEvent evt) {
int guess = 0;
counter++; 计数器加一
try {
guess = nt(t()); 玩家输入获取
}
catch (Exception e) {
ssageDialog(null, 请输入一个1-100之间 的整数
谢谢你的观赏


谢谢你的观赏
显示对话框,输入不合法




















成绩判断





















t(清空文本框内容
tFocus();
return;
}
if (guess > number) {
ssageDialog(null, ≧v≦)o猜大了
t(
tFocus();
return;
}
if (guess < number) {
ssageDialog(null, ≧v≦)o太小啦
t(
tFocus();
return;
}
if (guess == number) {
endTime = tTimeMillis();
ssageDialog(null,您总共猜了次 共 花了
+ (endTime - startTime) 1000 + 秒的时间答对正确答案!
switch (counter) {
case 1:
ssageDialog(null, ∩_∩)O太给力了 吧
break;
case 2:
case 3:
ssageDialog(null,好腻害
break;
case 4:
case 5:
case 6:
ssageDialog(null,∩_∩)O这么快就猜对,很不错哦!
break;
case 7:
case 8:
case 9:
case 10:
ssageDialog(null,﹏+)有点慢,还要多练习
break;
default:
ssageDialog(null, ﹏+)oh! NO,太慢啦,
break;
谢谢你的观赏


谢谢你的观赏


















}
}
t(清空文本框内容
tFocus(); 文本框获取输入焦点
setVisible(false); 隐藏原界面
}
private void jTextField1KeyPressed(KeyEvent evt) {
if (Code() == _ENTER) {
k(); 文本框按回车键 执行“确定”按钮的事件
}
}
public static void main(String[] args) {
new GuessNum();
}
}
谢谢你的观赏

激发个人潜能-冬奥会2022


绿色食品是指什么-请记住我


赞美老师的名言名句-初中辅导班招生简章


lol自制皮肤-钱塘江大潮视频


风筝阅读答案-苦中作乐的诗句


好看的游戏英文名字-学舞蹈


小樱桃树-张孝祥词集


管理创新-古曲欣赏