java课程设计报告书Word格式.docx
- 文档编号:15923512
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:34
- 大小:345.95KB
java课程设计报告书Word格式.docx
《java课程设计报告书Word格式.docx》由会员分享,可在线阅读,更多相关《java课程设计报告书Word格式.docx(34页珍藏版)》请在冰豆网上搜索。
从一副扑克牌四个花色的1到K等52张牌中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24。
游戏有不同的版本,其实是对J、Q、和K的处理有所不同。
有的版本版本是把J、Q、和K去除,只用1到10来进行游戏;
有的版本是把J、Q、和K当成10;
还有的版本是用J表示11,Q表示12,K表示13。
此次课程设计采用的是把J表示11,Q表示12,K表示13,使游戏的四张牌在1~K这13张牌中随机取牌。
具体功能如下:
对游戏设计三个难易级别,分别为初级、中级和高级。
每次开始游戏前可以根据玩家的需要进行难度设置,如若不设置,系统默认难度级别为初级,设置完难度级别之后就可以开始游戏了,单击“发牌”按钮,桌面上出现四张翻开的扑克牌,与此同时,游戏开始计时,时间条开始前进。
在规定的时间内,玩家可以在“输入结果”的编辑框中输入自己想好的算式,然后点击“验算”按钮:
如果输入的算式经运算后所的答案正确,则会弹出“恭喜,你成功答对了一题”的窗口;
如果输入的数字与给出的牌的数字不符或者符号不合法,则会弹出“抱歉,你答错了”的窗口;
如果未输入任何的数字和算符,则会弹出“输入不能为空!
”的窗口。
程序中可以记录游戏的历史记录。
如果在规定的时间内,玩家没有点击验算按钮,则会弹出“对不起,你失败了”的窗口。
在结束本轮游戏后,如果玩家想继续游戏,则可点击“发牌”按钮即可重新发牌,开始下一轮的游戏;
如果玩家想结束游戏,则可点击“结束”按钮即可结束游戏
二、系统需求分析
系统目标
使用所学知识制作一个基于java的24点游戏。
游戏需求
游戏界面需求:
设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景色是绿色,尽量降低玩家游戏时的用眼疲劳,最大化的为玩家带来舒适的娱乐环境。
游戏形状需求:
根据数字颜色的不同,显示不同的纸牌。
鼠标处理事件需求:
通过点击菜单栏中对应的菜单项,可以实现游戏开始、结束、数字的验算及其他游戏选择等功能。
开发环境
MyEclipse,windowbuilder
三、系统总体设计
系统的功能模块划分
图一系统功能图
系统流程图
保存历史记录至数据库中,并显示在表格中
图二系统流程图
四、系统详细设计
具体的设计步骤如下:
1)在对话框中添加4个图像(分别用于四张扑克牌),3个按钮(分别是发牌、运算、结束),1个编辑框,一个进度条和一个下拉框(用于选择难度级别)接着根据属性对以上所添加的控件进行属性修改,主要进行重命名,以便编辑源代码的时候区分,另外对图像的处理除了对其进行重命名外还要对其添加位图。
之后通过打开图片,并对其进行重命名。
2)根据流程图在类的原文件中逐一添加实现各个模块其功能所需要的各种函数,并添加相应的源代码,同时在头文件中添加对各种函数及变量的声明。
3)对编译好的程序进行保存,开始进行调试,边调试边根据报错对原程序进行修改,直到程序不在报错为止。
界面设计
表1控件类型、ID及相关说明
对象
变量名
Caption或说明
静态文本
Label
耗时标志
Label-1
第一张图
Label-2
第二张图
Label-3
第三张图
Label-4
第四张图
lblNewLabel
输入算式
lblNewLabel-1
历史记录
Label-5
选择难度
下拉框
comboBox
表格
table
编辑框
textField
输入计算
滚动条
progressBar
耗时
按钮
btnNewButton
发牌
Button
验算
Button-1
结束
关键功能的实现
(1)发牌功能的实现
首先,通过Number[i]=rand()%13。
来产生0-9的随机数,利用该函数加载了标号1~10的10张纸牌和一张背景纸牌。
然后运行中的以下一段代码,即可在图像框中得到四张铺开的纸牌。
代码如下:
Random
random=new
Random();
r1=random.nextInt(10)+1;
(2)计时功能的实现
首先,定义线程类,通过每隔不同的时间来发送信息来控制三个级别的时间不同。
设置了时间限制,如果时间超过代表游戏结束,用户没有时间进行思考了,本轮游戏结束。
源代码如下:
class
MyThread
extends
Thread
{
boolean
lock=true;
JProgressBar
progressBar;
JLabel
label_1;
label_2;
label_3;
label_4;
JTextField
textField;
JButton
button;
int
difficulty=0;
MyThread(JProgressBar
progressBar,JLabel
label_1,JLabel
label_2,JLabel
label_3,JLabel
label_4,JTextField
textField,int
difficulty,JButton
button){
this.progressBar=progressBar;
this.label_1=label_1;
this.label_2=label_2;
this.label_3=label_3;
this.label_4=label_4;
this.textField=textField;
this.difficulty=difficulty;
this.button=button;
}
public
void
run()
//
TODO
Auto-generated
method
stub
for(int
i=0;
i<
=60-20*difficulty;
i++){
try
if(lock==true){
this.sleep(1000);
progressBar.setValue(i*(difficulty+1));
}
catch
(InterruptedException
e)
block
lock=false;
JOptionPane.showMessageDialog(null,
"
对不起,没有时间了"
Message"
JOptionPane.WARNING_MESSAGE);
label_1.setIcon(new
ImageIcon("
C:
\\Users\\zcs\\Workspaces\\MyEclipse
2016
CI
\\pukeImage\\1.jpg"
));
label_2.setIcon(new
\\pukeImage\\2.jpg"
label_3.setIcon(new
label_4.setIcon(new
progressBar.setValue(0);
textField.setText("
);
textField.setEnabled(false);
button.setEnabled(false);
textField.setText(null);
(3)验算功能的实现
只简单介绍弹出框的实现的功能完成。
在规定的时间内玩家输入算式进行验算,根据不同的情况会弹出不同的对话框。
有以下两种情况:
如果玩家输入的数字与扑克牌给出的数字不符合,则会弹出“抱歉,你答错了”的提示对话框。
如果玩家输入算式经运算后所得答案正确,则会弹出“恭喜,你成功答对了一题”的提示对话框。
具体代码如下:
button.addMouseListener(new
MouseAdapter()
@Override
mouseClicked(MouseEvent
String
s=
textField.getText().toString();
if(cacComplex(s)==24&
&
kuohao(s)==1&
shuzi(s)==1){
恭喜,你成功答对了一题"
JOptionPane.PLAIN_MESSAGE);
currenttime=System.currentTimeMillis();
if(time>
currenttime-firsttime||time==0){
time=(int)
(currenttime-firsttime);
correct++;
thread.interrupt();
}else{
J
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计 报告书