java课设Word下载.docx
《java课设Word下载.docx》由会员分享,可在线阅读,更多相关《java课设Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
图1系统设计结构图
2.2.2游戏界面
采用图形界面显示。
页面有如下功能:
开始,结束,重来。
游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界
面。
用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。
同时,计算机开始对游戏进行计时和计数功能。
游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即
可。
想控制界面大小只需拖拽图形界面边框即可。
游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。
功能模块设计(如图2)
图2
功能模块图
2.2.3随机数的获取
功能描述:
玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2.2.4输入输出模块
对玩家输入的数字进行判断和提示。
如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。
如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。
如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
(如图3)
图3
输入输出模块图
2.2.5判断模块
算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;
对玩家要求判断执行。
(如图4)
图4
判断模块图
2.2.6自动计数模块
系统根据您猜数字的次数,自动计数.
(如图5)
图5
自动计数模块图
2.2.7结果输出模块
直到用户猜到数字为止,提示信息是否重新猜数字,如果重新开始将进入下一次游戏,如果关闭将退出游戏系统。
3.设计结果与分析
(1)开始运行程序时图形界面的显示(如图7)
图7
图形显示界面
(2)玩家输入一个数“25”后,点击“确定”,系统提示“猜的有点小了,再大一点!
”。
(如图8)
图8系统提示
(3)玩家再次输入一个数“70”后,点击“确定”,系统提示您“猜的有点大了,再小一点!
(如图9)
图9系统提示
(4)玩家再次输入一个数“32”,点击“确定”,系统提示“猜了半天才猜出来,小同志,尚须努力”,单击确定显示“您总共猜了8次,您猜数字总共花了33秒”。
(如图10
11)
图10
图形界面结果输出图a
图11
图形界面结果输出图b
(5)玩家再重新玩一次,获取随机数后,玩家输入一个随机数“90”,点击“确定”,系统提示“正确”!
您总共猜了2次,您猜数字总共花了14秒”。
(如图12)
图12图形界面结果输出图c
(6)如果玩家输入数字不再1到100以内数字系统提示错误!
(如图13)
图13图形界面提示输入错误
4.设计体会
通过这次课程设计,使我对JAVA这门课又做了一次系统的复习,对各个知识点也都有了更深刻的理解,让我掌握的更扎实,同时也增强了实际操作能力,另一方面也对编程语言有了新的认识,为以后的学习打下了基础。
在本次试验中,给我印象最为深刻的是程序的编译过程中,从中我学到了许多以前学有学会和没有学到的函数。
这次的学习让我从纸上谈兵逐渐的过渡到实践出真知。
自己动手,自己发现和解决问题。
发现了自己的许多不足。
平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,还有的现在不能解决,我相信在以后的学习中能够解决好它们。
5.参考文献
[1]丁振凡.《Java语言实用教程》[M].北京:
北京邮电大学出版社2005
[2]耿祥义.《Java2实用教程》[M].北京:
清华大学出版社2006
[3]赵付青.《Java面向对象程序设计》[M].北京:
国防工业出版社2005
[4]耿祥义.《Java课程设计》[M].北京:
清华大学出版社2005
附录
(1)/*
程序运行时自动产生1-100的随机数
*
接受用户键盘输入数据并给出指示信息
直至猜对,游戏者猜对后,显示猜对次数
并且供计时功能
*/
import
java.awt.event.ActionEvent;
java.awt.event.ActionListener;
java.awt.event.KeyAdapter;
java.awt.event.KeyEvent;
java.util.Random;
javax.swing.*;
public
class
GuessNum
extends
javax.swing.JFrame
{
//Set
Look
&
Feel
try
//设置窗口外观为windows外观
javax.swing.UIManager.setLookAndFeel
("
com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
);
}
catch(Exception
e)
e.printStackTrace();
}
private
JLabel
jLabel1;
JTextField
jTextField1;
JButton
jButton1;
jButton2;
int
number=0;
counter=0;
long
startTime
=
System.currentTimeMillis();
long
endTime;
/
Auto-generated
main
method
to
display
this
JFrame
static
void
main(String[]
args)
inst
new
GuessNum();
inst.setVisible(true);
//显示窗口
*新建一个随机数产生器,然后生成一个1到100之间的整数
public
GuessNum()
super();
initGUI();
Random
random
Random();
number
random.nextInt(100);
//产生一个1-100间的随机数
*初始化窗口组件
private
initGUI()
try
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//窗口关闭时销毁窗口
getContentPane().setLayout(null);
//设置窗口布局为绝对布局
jLabel1
JLabel();
getContentPane().add(jLabel1);
jLabel1.setText("
<
html>
欢迎进入有趣的猜数字游戏;
br>
"
+
1到100之间的整数,你猜是什么?
快来猜猜看(^.^)<
+
请输入你想猜的数:
/html>
jLabel1.setBounds(45,
0,
420,
150);
//设置标签位置
}
jTextField1
JTextField();
getContentPane().add(jTextField1);
jTextField1.setBounds(42,
168,
112,
28);
//输入窗口大小
jTextField1.addKeyListener(new
KeyAdapter(){//文本框添加键盘按键监听-监听回车键
keyPressed(KeyEvent
evt)
jTextField1KeyPressed(evt);
});
jButton1
JButton();
//
如果玩家不是输入一个合法的整数,则让他重新输入。
JOptionPane.showMessageDialog(null,
数字不合法,请输入一个1-100之间的整数!
//显示一
个对话框
jTextField1.setText("
//清空文本框内容
jTextField1.requestFocus();
//文本框获取输入焦点
return
对玩家的输入进行判断。
if
(guess
>
number){
猜的有点大了⊙﹏⊙!
,再小一点吧!
jTextField1.requestFocus();
return
猜的一有点小了⊙﹏⊙!
,再大一点吧!
==
number)
endTime=System.currentTimeMillis();
判断成绩。
switch
(counter)
case
1:
JOptionPane.showMessageDialog(null,"
好厉害,真棒!
!
?
(′▽`)"
break;
2:
case
3:
4:
5:
6:
7:
这么快就猜对了,好厉害哦!
↖(^ω^)↗"
default:
猜了半天才猜出来,小同志,尚须努力啊!
╮(╯_╰)╭"
您总共猜了"
+counter+"
次
共花了
+(endTime-
startTime)/1000+"
秒的时间答对正确答案!
jButton2ActionPerformed(ActionEvent
{
重新开始
Random
重新生成随机数
产生一个1-100间的随机数
记录玩家猜测的次数
jTextField1KeyPressed(KeyEvent
监听文本框回车
(evt.getKeyCode()==KeyEvent.VK_ENTER)
jButton1.doClick();
文本框按回车键
执行“确定”按钮的事件
(2)记录猜测次数模块
counter
0;
//计数器增加一
counter++;
(3)输入输出模块
//
获取玩家的输入
guess=Integer.parseInt(jTextField1.getText());
如果玩家不是输入一个合法的整数,则让他重新输入
Return
jTextField1.setText("
(4)判定成绩模块
switch
default:
次共花了"
(5)计时模块
//计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。
endTime
(6)异常处理
//一个典型的异常处理如下:
statement(s);
catch
(exceptiontype1
name)
(exceptiontype2
finally
编写如下代码:
javax.swing.UIManager.setLookAndFeel("
catch(Exception
try,catch的异常管理。
新建一个随机数产生器,然后生成一个1到100之间的整数。
num