JAVA课程设计之赛马游戏.docx

上传人:b****3 文档编号:2917645 上传时间:2022-11-16 格式:DOCX 页数:32 大小:317.19KB
下载 相关 举报
JAVA课程设计之赛马游戏.docx_第1页
第1页 / 共32页
JAVA课程设计之赛马游戏.docx_第2页
第2页 / 共32页
JAVA课程设计之赛马游戏.docx_第3页
第3页 / 共32页
JAVA课程设计之赛马游戏.docx_第4页
第4页 / 共32页
JAVA课程设计之赛马游戏.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

JAVA课程设计之赛马游戏.docx

《JAVA课程设计之赛马游戏.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计之赛马游戏.docx(32页珍藏版)》请在冰豆网上搜索。

JAVA课程设计之赛马游戏.docx

JAVA课程设计之赛马游戏

1.1概述.......................................................2

1.2课题分析...................................................2

2.3赛马比赛模拟程序初始化块...................................4

2.4赛马比赛区模块.............................................4

2.5投注区模块.................................................5

2.6线程启动及结束模块.........................................5

2.7比赛结果显示区模块.........................................5

3.2赛马比赛区模块7

 

一、需求分析

1.1概述

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。

本次使用的是eclipse开发软件。

以下就给出这次课题设计的题目:

模拟赛马比赛。

1.2课题分析

a.课设题目:

模拟赛马比赛

内容:

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.setColor(Color.BLACK);

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.setColor(Color.BLACK);//文字显示

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("1号马");

b2=newJRadioButton("2号马");

b3=newJRadioButton("3号马");

b4=newJRadioButton("4号马");

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);

frame.add("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;//赛马区

……

}

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.setColor(Color.BLACK);

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.setColor(Color.BLACK);//文字显示

g.drawString(s,26,h/2-12);

}

}

3.3投注区模块

这一模块包括投注马匹和投注金额模块。

主要是实现马匹的选择及投注的模拟,增加JRadioButton单选按钮选择马匹,TextField来输入投注金额,同时变量tz控制金额改变。

模块代码:

publicclass

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1