猜数字游戏论文
消肿的食物-易经的智慧曾仕强
攀枝花学院
学生课程设计(论文)
题 目:
猜数字游戏
学生姓名:
刘 鹏
学
号:
2
所在院(系):
计 算
机
专 业:
计算机科学与技术
班 级:
08计本(2)班
指 导
教 师:
吴建兵
职称:
年 月 日
攀枝花学院教务处制
题 目
1、课程设计的目的
猜数字游戏
通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和
开
发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
编写一个猜数字游戏,要求:
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
继续猜,直至
猜到,给出所用时间和评语。
3、主要参考文献
[1]朱福喜.《Java语言程序设计》(第二版).科学出版社
[2]陈国君等.《Java程序设计基础》(第二版).清华大学出版社
[3]
Deitel.《Java大学基础教程》(第六版).电子工业出版社
[4]
MaryCampione.《Java语言导学》(第四版).机械工业出版社
[5]
Liang.《Java语言程序设计基础篇》(第六版). 机械工业出版社
[6] Kathy
Sierra.《Head First Java》(第二版).东南大学出版社
4、课程设计工作进度计划
序号
1
2
3
4
总计
时间(天)
1
2
1
1
5(天)
内容安排
分析设计准备
编程调试阶段
编写课程设计报告
考核
日期
备注
周一
周二至周三
周四
周五
年 月 日 指导教师(签字)
教研室意见:
年 月 日
学生(签字):
接受任务时间:
年 月
日
题目名称
评分项目
工
作
表
现
20%
01
02
03
04
05
06
07
08
学习态度
科学实践、调研
课题工作量
综合运用知识的能力
应用文献的能力
设计(实验)能力,方案
的设计能力
计算及计算机应用能力
对计算或实验结果的分析
能力(综合分析能力、技
术经济分析能力)
插图(或图纸)质量、篇
幅、设计(论文)规范化
程度
设计说明书(论文)质量
创新
分
值
6
7
7
10
5
5
5
10
猜数字游戏
得
分
评价内涵
遵守各项纪律,工作刻苦努力,具有良好的科学
工作态度。
通过实验、试验、查阅文献、深入生产实践等渠
道获取与课程设计有关的材料。
按期圆满完成规定的任务,工作量饱满。
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,
得出有价值的结论。
能独立查阅相关文献
和从事其他调研;能提出并
较好地论述课题的实施方案;有收集、加工各种
信息及获取新知识的
能力。
能正确设计实验方案,独立进行装置安装、调试、
操作等实验工作,数据正确、可靠;
研究思路清
晰、完整。
具有较强的数据运算与处理能力;能运用计算机
进行资料搜集、加工、处理和辅助设计等。
具有较强的数据收集、分析、处理、综合的能力。
能
力
水
平
35%
成
果
质
量
45%
09
10
11
5
30
10
符合本专业相关规范或规定要求;规范化符合本
文件第五条要求。
综述简练完整,有见解;立论正确,论述充分,
结论严谨合理;实验正确,分析处理科学。
对前人工作有改进或突破,或有独特见解。
成绩
指
导
教
师
评
语
指导教师签名:
年 月 日
攀枝花学院JAVA设计论文
摘 要 ......
..................................................
................. 2
1.需求分析 ...................
..................................................
3
1.1 用户需求分析 .................................
..................................................
................................... 3
2.2
开发环境分析 ...........................................
..................................................
......................... 3
2.问题描述 ...........
..................................................
........ 4
2.1课程设计的任务: .......................
..................................................
...................................... 4
2.2.课程设计的要求: .................................
..................................................
........................... 4
3 模块设计 .........
..................................................
.......... 5
3.1 系统总体设计 ......................
..................................................
.............................................. 5
3.2 功能模块设计 ...................................
..................................................
................................. 5
4 功能设计 ...
..................................................
................ 6
4.1.随机数的产生模块 ..............
..................................................
.............................................. 6
4.2.输入判断模块 ...................................
.................................................
错误!未定义书签。
4.3.记录猜测次数模块 .......................
..................................................
..................................... 6
4.4.计时模块 .....................................
..................................................
....................................... 6
4.5.输入输出模块 ...................................
..................................................
................................. 6
4.6.成绩判断模块
..................................................
..................................................
.................. 7
5.程序流程图 .................
..................................................
9
6.异常处理 .....................................
............................... 10
7.调试分析 ....
..................................................
.............. 11
总结 .........................
.................................................
12
参考文献 ......................................
................................ 13
程序附页 .....
..................................................
............... 14
1
攀枝花学院JAVA设计论文
摘 要
<
br>猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大,
是消磨时间、锻炼脑力
的好选择。
通过选择猜数字游戏这个题目,可以让我掌握Java中
的包和类,并且可以灵活的
使用my eclipse软件。同时更加深入的了解字符界面的编程过程。
使我更熟练的掌握Java
程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需
求分析、系统设计、画出相应的需求
分析图、系统设计模型图,这些工作更能锻炼我的逻辑
思维,更能培养我思考的全面性。让我学会了多角
度思考问题,对我以后的编程奠定了更好
的基础。
关键词
猜数字游戏,JAVA编程,课程设计
2
攀枝花学院JAVA设计论文
1.需求分析
1.1 用户需求分析
设计一个猜数字游戏程序,要求具体如下特性:
a.输入任意一个数字。数字的要求是1—100的自然数即可。
b.系统对您输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的
数字比随机生成数小.系统将提
示您,数字太小请您重新输入。
如果玩家输入的数字与计算机
随机生成数相比较,如果输入的数字比随机生成数大。系
统将提示您,数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。
c.
游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。
d.
每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
e.
在游戏结束时,可以选择关闭游戏,或者再来一局。
2.2 开发环境分析
硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应
的
集成开发环境,J2SDK和eclipse开发工具。
J2SDK简介:j2sdk是就阿Java
的开发环境包。它包含JDK(开发工具包)和
JRE(运行时环境包) 。
eclipse简介:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。<
br>就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Ecl
ipse 附带了一个标准的插件集,包括 Java 开发工具(Java
Development
Tools,JDT)。
3
攀枝花学院JAVA设计论文
2.问题描述
2.1课程设计的任务:
根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。
(1)掌握Java的语言规范,面向对象的核心概念和特性;
(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;
(3)掌握Java应用软件的开发环境和开发过程;
(4)掌握面向对象的思想和程序设计方法。
2.2.课程设计的要求:
设计一个
猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入
数字来匹配上面所产生的数
字。用户随机输入数字,当与计算机产生的随机数相符合时,计
算机将提醒用户,游戏成功的信息,当有
偏差时,将会提醒偏差,如偏大或者是偏小。
4
攀枝花学院JAVA设计论文
3 模块设计
3.1 系统总体设计
猜数字游戏—游戏随机给出一个1—100 (包括1和100) 之
间的数字,然后让你猜是什么
数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范
围。经过几次猜
测与提示后,最终推出答案。
游戏开始后,由计算机产
生一个1-100的随机数,不显示在图形界面,但显示在字符界面。用
户只需输入所猜想的数字,打印
在输入框内,按“确定”按钮表示确定,游戏返回提示语句,
按照提示语句操作,直至游戏结束。同时,
计算机开始对游戏进行计时和计数功能。
3.2 功能模块设计
5
攀枝花学院JAVA设计论文
4 功能设计
4.1.随机数的产生模块
我们可以借助Java
API提供的Random类来产生一个随机数。
首先在main函数中加入以下代码:
Random random = new Random();
number =
t(100); 产生一个1-100间的随机数
4.2输入判断模块
ssageDialog(null, 数字不合法,请输入一个1-100之间的整数!
显示一个对话框
t(清空文本框内容
tFocus(); 文本框获取输入焦点
4.3.记录猜测次数模块
记录玩家猜测的次数
counter = 0;
计数器增加一
counter++;
4.4.计时模块
计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。
long
startTime = tTimeMillis();
long endTime =
tTimeMillis();
4.5.输入输出模块
对玩家的输入进行判断。
if (guess > number) {
ssageDialog(null, 猜大了哦!!
t(
tFocus();
6
攀枝花学院JAVA设计论文
}
if
(guess < number) {
}
if (guess == number) {
endTime =
tTimeMillis();
ssageDialog(null,
太小啦
t(
tFocus();
return;
return;
4.6.成绩判断模块
判断成绩。
switch (counter) {
case 1:
ssageDialog(null, 你是神么??
这也太给力了
吧!!
break;
case
2:
case 3:
case 4:
case 5:
case 6:
case 7:
ssageDialog(null,
这么快就猜对了,很不错哦!
break;
default:
ssageDialog(null, 猜了半天才猜出来,还要多多练
习哦!
}
ssageDialog(null, 您总共猜了次 共
break;
花了
+ (endTime - startTime) 1000 +
秒的时间答对正确答案!
7
攀枝花学院JAVA设计论文
}
}
t(
tFocus();
8
攀枝花学院JAVA设计论文
5.程序流程图
开 始
产生随机数m
系统开始计时
由用户输入一个数y
x>y
N
猜大啦
Y
猜小了哦
x=y
系统结束计时
系统统计猜数次数
结 束
9
攀枝花学院JAVA设计论文
6.异常处理
我们在运行程序时往往会出现许多错误,而Java语言提供了异常(Exception)处理机制
帮
助程序员发现并处理异常。所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。
导致异常的原
因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对
象将被自动生成并传递给J
ava“运行时环境”,如果“运行时环境”找不到异常句柄,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)
10
攀枝花学院JAVA设计论文
7.调试分析
11
攀枝花学院JAVA设计论文
总结
经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许多的困难,但
是却使我得到了
许多的意外收获。Java是一种简单的,面向对象的,分布式的,解释型的,
健壮安全的,结构中立的
,可移植的,性能优异、多线程的动态语言。在写代码的过程中我
们也遇到了一些的困难,就是对一些有
关Java语言的不理解,我便又到课本中去查找。一个
项目的成败关键不全在于技术。要想在一个愉快
的氛围里边以轻松的心情来完成紧张的工作,
严谨的态度和工作的热情都是必不可少的。以前上课时有许
多的问题并没有真正的认识到,
但通过这次试验的制作,使我掌握了许多更重要的知识点。
12
攀枝花学院JAVA设计论文
参考文献
[1] 黄明等,梁旭,周绍斌.《Java课程设计》 电子工业出版社
2006
[2] 杨昭.《二级Java语言程序设计教程》
中国水利水电出版社 2006
[3] 赵文靖.《Java程序设计基础与上机指导》
清华大学出版社 2006
[4]
张广彬,孟红蕊,张永宝.《Java课程设计案例精编》清华大学出版社 2007
[5]
黄晓东.《Java课程设计案例精编(第一版)》 中国水利水电出版社 2004
[6] [美]Cay ann程峰等译.《JAVA2核心技术》机械工业出版社 2003
[7] 赵毅主.《跨平台程序设计语言—Java》
西安电子科技大学出版社2006
[8]王路群.《Java高级程序设计》
中国水利水电出版社 2006
[9] 夏宽理.《Java语言程序设计》
机械工业出版社. 2008.
[10] 丁新民.《Java程序设计教程》
人民邮电出版社. 2006.
13
攀枝花学院JAVA设计论文
程序附页
package liupeng;
import Event;
import Listener;
import pter;
import
nt;
import
import n;
import
import
import nPane;
import
ield;
import Constants;
import yout;
public class GuessNum
extends {
**
*新建一个随机数产生器,然后生成一个1到100之间的整数
14
private
JLabel jLabel1;
private JTextField
jTextField1;
private JButton jButton1;
private int number = 0;
private int
counter = 0;
long startTime = tTimeMillis();
long endTime;
程序附页
**
*初始化窗口组件
*
private void initChuankou() {
try {
setDefaultCloseOperation(E_ON_CLOSE); 窗口关
*
public GuessNum() {
}
super (刘鹏
initChuankou();
Random
random = new Random();
number = t(100);
产生一个1-100间的随机数
闭时销毁窗口
getContentPane().setLayout(null); 设置窗口布局为绝对布局
JFrame frame = new JFrame(
out(new
FlowLayout());
jLabel1 = new
JLabel();
getContentPane().add(jLabel1);
t(欢迎进入有趣的猜数字游戏!请输入1~100中的任
意一个数:
jTextField1 = new JTextField();
getContentPane().add(jTextField1);
nds(50,
60, 112, 28);
Listener(new KeyAdapter() {
文本框添加键盘按键监
nds(2, 0, 200, 50); 设置标签位置
听-监听回车键
public void
keyPressed(KeyEvent evt) {
jTextField1KeyPressed(evt);
67
程序附页
jButton1 = new JButton();
getContentPane().add(jButton1);
t(确定
nds(70, 110, 60, 28);
ionListener(new ActionListener() { 按钮添加监听
public void
actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt); 按钮被点击时 执行该
});
}
方法
});
}
}
pack();
e(220, 200); 设置窗口大小
setLocationRelativeTo(null); 设置窗口在显示器居中显示
} catch (Exception e) {
}
setVisible(true);
tackTrace();
private
void jButton1ActionPerformed(ActionEvent evt) {
int guess = 0; 记录玩家所猜测的数字
counter++; 计数器增加一。
try {
获取玩家的输入
guess = nt(t());
}
catch (Exception e) {
67
程序附页
如果玩家不是输入一个合法的整数,则让他重新输入。
ssageDialog(null,
数字不合法,请输入一个1-100之间
的整数!显示一个对话框
t(清空文本框内容
tFocus(); 文本框获取输入焦点
return;
}
对玩家的输入进行判断。
if (guess > number)
{
ssageDialog(null, 猜大了哦!!
t(
tFocus();
return;
}
if (guess <
number) {
ssageDialog(null, 太小啦
t(
tFocus();
return;
}
if
(guess == number) {
endTime =
tTimeMillis();
判断成绩。
switch
(counter) {
case 1:
ssageDialog(null, 你是神么??
吧!!
break;
case 2:
case 3:
case 4:
67
这也太给力了
程序附页
case 5:
case 6:
case 7:
ssageDialog(null, 这么快就猜对了,很不错哦!
break;
default:
ssageDialog(null,
猜了半天才猜出来,还要多多练
习哦!
}
ssageDialog(null,
您总共猜了次 共
break;
花了
}
public static
void main(String[] args) {
}
n(欢迎来到猜数字游戏
new GuessNum();
private void jTextField1KeyPressed(KeyEvent
evt) {
}
监听文本框回车
if (Code() == _ENTER) {
}
k();
文本框按回车键 执行“确定”按钮的事件
}
}
t(
tFocus();
+ (endTime -
startTime) 1000 + 秒的时间答对正确答案!
67