JAVA课程设计之赛马游戏

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录一.需求分析...................................错误!未定义书签。1.1概述.......................................................21.2课题分析...................................................21.3实现功能步骤..............................................21.4设计工作详解..............................................21.5外部界面需求..............................................21.6运行环境...................................................2二.概要设计...................................................32.1系统流程图................................................32.2功能模块图................................................42.3赛马比赛模拟程序初始化块...................................42.4赛马比赛区模块.............................................42.5投注区模块.................................................52.6线程启动及结束模块.........................................52.7比赛结果显示区模块.........................................5三.详细设计...................................................63.1赛马比赛模拟程序初始化模块.................................63.2赛马比赛区模块.............................................763.3投注区模块..........................63.4线程启动及结束模块93.5比赛结果显示区模块.........................................1263.6程序流程...................................................12错误!未定义书签。3.7系统界面...................................................6四.调试分析.................................................134.1调试过程中所遇到的问题及解决方法.........................134.2经验与体会...............................................13五.用户使用说明..............................................14六.测试结果..................................................14七.参考文献..................................................18八.附录......................................................18一、需求分析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);//设置P2p2.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.addActionListene

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功