JAVA课程设计之赛马游戏Word文档下载推荐.docx
- 文档编号:14286074
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:32
- 大小:92.88KB
JAVA课程设计之赛马游戏Word文档下载推荐.docx
《JAVA课程设计之赛马游戏Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计之赛马游戏Word文档下载推荐.docx(32页珍藏版)》请在冰豆网上搜索。
1.设计一个模拟赛马比赛软件,比赛显示赛马过程,每匹马每个时刻的加速度都是随机的。
2.能统计每匹马所跑完所需的总时间,最终的名次。
3.支持用户对马进行投注,并记录输赢,保存到文件或数据库中。
b.从这个题目来分析,要做的主要有四大点:
1.第一点就是要设计用户登录赛马的页面,登陆后才能进行赛马和投注等功能。
2.第二点就是要能在页面上进行投注和赛马。
其中包括:
(1)用户进行选马,和对选中的马进行有效的投注。
(2)开始赛马,期间用户不得进行其他操作。
(3)赛马结束,显示比赛输赢和投注金额的变化。
3.第三点就是用户能进行重新比赛等操作。
1.3实现功能步骤
程序开始后,会进入用户登录界面,用户输入自己的姓名和密码后,选择登录会进入到赛马比赛的界面,这时可以看见赛马场和马匹的编号,用户可以选择任何一个编号的马进行投注,输入有效的投注金额(因为系统设置了初始金额,所以不得投注的超过初始金额)。
投注完成后用户可以选择开始比赛,赛马期间用户不得进行任何操作,赛马结束后,用户可以重新进行新一轮的赛马比赛,方法上同。
1.4设计工作详解
通过这个分析,我认为主要是通过线程来实现马的运动,thread的子类创建线程,线程的开始使马进行运动,再通过线程的休眠,随机获得休眠时间使马获得随机的加速度,最后线程的终止使马停止运动。
期间还包括用Draw类以及各种repaint()等方法来绘制马匹。
1.5外部界面需求
本程序JFrame类其子类创建的对象是窗体,通过按钮JButton及标签组件JLabel来实现用户的登录界面。
赛马界面还运用到JPanel创建面板和FlowLayout布局变量,区分赛马、投注、显示区域,还使用Draw类画马匹,来丰富整个赛马的界面。
1.6运行环境
系统软件:
Window7
所需文件:
JTextDemo.java,Run.java,DateUtil.java
工具软件:
Eclipse
二.概要设计
2.1系统流程图
重新开始
图2.1系统流程图
2.2功能模块图
赌
获取比赛获取比赛结束系统时间
金初始系统
变时间
化
图2.2功能模块图
2.3赛马比赛模拟程序初始化模块
在这一模块中,要求对赛马场、投注区及显示区的布局进行设置,初始化程序窗口的大小,并创建程序窗口。
2.4赛马比赛区模块
其中此模块包括对画出马匹和赛道部分,通过使用Draw类来向Jpanel面板中添加马和赛道。
部分代码:
classDrawextendsJPanel
{
intx=0;
Strings;
intw,h;
publicvoidpaint(Graphicsg)
super.paint(g);
this.setBackground(Color.WHITE);
w=this.getWidth();
h=this.getHeight();
g.setColor(Color.BLACK);
g.drawLine(66,h/2-44,666,h/2-44);
g.drawLine(66,h/2+40,666,h/2+40);
g.drawLine(66,0,66,h);
g.setColor(Color.red);
g.drawLine(666,0,666,h);
g.drawRect(36+x,h/2-10,30,20);
//马的显示
//文字显示
g.drawString(s,26,h/2-12);
}
2.5投注区模块
a.投注马匹模块
主要是实现马匹的选择及投注的模拟,增加JRadioButton单选按钮选择马匹。
b.投注金额模块
TextField来输入投注金额,tfget接收后与总金额进行比较。
c.赌金变化模块
同时变量tz控制金额改变。
2.6线程启动及结束模块
a.线程启动及结束部分模块
使用racing().start()启动线程,马匹开始运动。
b.获取比赛初始系统时间模块
线程run启动时,通过使用Calendar类来获取比赛开始时的系统时间,其中使用getNow_HMS()方法来获取比赛的初始时间。
c.获取比赛结束系统时间模块
当比赛结束,线程终止时,通过使用Calendar类来获取比赛结束时的系统时间,其中使用getNow_HMS()方法来获取比赛的结束时间。
2.7比赛结果显示区模块
在JTextArea()分布的空间内,通过方法append()显示马匹的名次,用时等信息。
三.详细设计
3.1赛马比赛模拟程序初始化模块
在这一模块中,要求对赛马场、投注区及显示区的布局进行设置。
模块代码:
publicRun()
frame=newJFrame("
赛马"
);
p1=newJPanel();
p2=newJPanel();
p3=newJPanel();
ly=newFlowLayout();
jb=newJButton("
开始"
h1=newDraw();
h2=newDraw();
h3=newDraw();
h4=newDraw();
no=0;
tz=20000;
cotrol=true;
h1.s="
1号马"
;
h2.s="
2号马"
h3.s="
3号马"
h4.s="
4号马"
b1=newJRadioButton("
b2=newJRadioButton("
b3=newJRadioButton("
b4=newJRadioButton("
bg=newButtonGroup();
money=newJLabel("
总金额为"
+String.valueOf(tz));
tf=newTextField(10);
ta=newJTextArea("
"
5,10);
//放置单选按钮
bg.add(b1);
bg.add(b2);
bg.add(b3);
bg.add(b4);
//设置投注区
p3.add(newJLabel("
投注区"
));
p3.add(b1);
p3.add(b2);
p3.add(b3);
p3.add(b4);
p3.add(money);
p3.add(tf);
//设置P2
p2.setBackground(Color.white);
ly.setHgap(30);
//设置布局的水平间隙
p2.setLayout(ly);
p2.add(p3);
p2.add(jb);
p2.add(ta);
//设置赛马区
p1.setBackground(Color.white);
p1.add(newJLabel("
赛马区"
p1.setLayout(newGridLayout(5,1));
//设置成5行1列的网格
p1.add(h1);
p1.add(h2);
p1.add(h3);
p1.add(h4);
//界面设定
frame.setLayout(newBorderLayout());
frame.add("
Center"
p1);
South"
p2);
frame.setBounds(100,100,800,620);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置结束窗口
tf.addActionListener(this);
jb.addActionListener(this);
b1.addActionListener(newRadioListener());
//按钮监听器
b2.addActionListener(newRadioListener());
b3.addActionListener(newRadioListener());
b4.addActionListener(newRadioListener());
frame.setVisible(true);
3.2赛马比赛区模块
使用Draw添加马和赛道。
publicclassRunextendsJFrameimplementsActionListener
racinght;
//赛马的进程
Drawh1,h2,h3,h4;
//画出马的运动图形
JPanelp1;
//赛马区
……
g.setColor(Color.BLACK);
3.3投注区模块
这一模块包括投注马匹和投注金额模块。
主要是实现马匹的选择及投注的模拟,增加JRadioButton单选按钮选择马匹,TextField来输入投注金额,同时变量tz控制金额改变。
public
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 赛马 游戏