java5个人4项单循环比赛,每项决胜者得2分,平分各得一分,败者不得分,总分高着获胜的源代码

程序运行截图:

1.单循环赛,是所有参加比赛的队均能相遇一次

2.运动员类Sportsman
3.运动项目类SportsEvents
4.运动场地类PlayingField
5.测试类

运动员类

/*** 运动员* */public class Sportsman {int ID;String name;Map<Integer, SportsEvents> map;// 参赛项目int totalScore;// 总得分public Sportsman(int ID, String name) {this.ID = ID;this.name = name;// 默认参加所有四场赛事this.map = new HashMap<Integer, SportsEvents>();map.put(0, new SportsEvents(0, "项目1"));map.put(1, new SportsEvents(1, "项目2"));map.put(2, new SportsEvents(2, "项目3"));map.put(3, new SportsEvents(3, "项目4"));}public void setScore(SportsEvents spEvents) {totalScore += spEvents.scoreRule.score;}}

运动项目类

/*** 运动项目 单循环赛,所有参加比赛的队均能相遇一次*/
public class SportsEvents {int ID;String name;// 项目名称ScoreRule scoreRule;// 得分规则public SportsEvents(int ID, String name) {this.ID = ID;this.name = name;}public void setFlag(ScoreRule scoreRule) {this.scoreRule = scoreRule;String flag = scoreRule.flag;if ("失败".compareTo(flag) == 0) {scoreRule.score = 0;} else if ("胜利".compareTo(flag) == 0) {scoreRule.score = 2;} else if ("平局".compareTo(flag) == 0) {scoreRule.score = 1;}}// 得分规则类class ScoreRule {int score;// 分值 决胜者得2分 平分各得一分 败者不得分String flag;// 失败/胜利/平局标示}
}

运动场地类

 /** 比赛场地* */
public class PlayingField {/*** 开始比赛* * @param sportsman* @param sportsman2* @param ID*/public void start(Sportsman sportsman, Sportsman sportsman2, int ID) {// 0<=Math.random()<1// 随机抽取一个数0 1 2// 0:sportsman 获胜 1:sportsman2获胜 2:平局int random = (int) (Math.random() * 3);switch (random) {case 0: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "胜利";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "失败";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;case 1: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "失败";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "胜利";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;case 2: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "平局";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "平局";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;default:break;}}
}

测试类:

public class Test {public static final void main(String[] args) {// 单循环赛,是所有参加比赛的队均能相遇一次// java5个人4项单循环比赛,每项决胜者得2分,平分各得一分,败者不得分,总分高着获胜Sportsman[] sportsmans = new Sportsman[] { new Sportsman(0, "刘刚"),new Sportsman(1, "李毅"), new Sportsman(2, "赵四"),new Sportsman(3, "刘能"), new Sportsman(4, "王小宝") };PlayingField playingField = new PlayingField();for (int sportsEventsID = 0; sportsEventsID < 4; sportsEventsID++) {for (int i = 0; i < 5; i++) {for (int j = i + 1; j < 5; j++) {playingField.start(sportsmans[i], sportsmans[j],sportsEventsID);}}}for (int i = 0; i < sportsmans.length; i++) {System.out.println(sportsmans[i].name + "总得分:"+ sportsmans[i].totalScore);}}
}

Java小程序:单循环比赛,总分高者获胜的源代码相关推荐

  1. java小程序之学生信息_java小程序之学生信息录入界面

    小程序我的项目下载链接:点击打开链接 因为这学期比赛太多,蓝桥杯,团体程序设计大赛,ACM省赛等原因基本这学期的课程都没上,比赛完后开始去上课,java老师让用java写一个学生信息录入界面,把界面中 ...

  2. Java小程序之球球大作战(基于Java线程实现)

    Java小程序之球球大作战(基于Java线程实现) 一.游戏基本功能: 1.自己的小球可以随着鼠标的移动而改变坐标: 2.敌方小球不断的在界面中移动 3.当检测到敌方小球相互碰撞时,小球会弹开 4.当 ...

  3. java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...

    在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...

  4. 【开发日常】【Java】Java小程序汽车租赁

    <Java小程序--汽车租赁> 1.描述:刚学Java写的小程序,用到类的继承,多态,abstract抽象方法. 2.工具:eclipse.exe 3.功能:选择子类(轿车 / 客车) 选 ...

  5. Wifi热点java_用笔记本电脑开启热点Java小程序

    用笔记本电脑开启热点Java小程序是一条命令设置笔记本成无线热点, 制作"开启无线热点工具,这个小工具实际上是用java来执行cmd命令来完成操作,当然也可以反射jar里边的字节码文件. 使 ...

  6. 简单Java小程序----有界面ATM机

    继<简单Java小程序---无界面ATM机>以后,尝试对有界面ATM机改写,对面向对象的了解又深了一层! 桌面的创建过程       由于使用的NetBean软件没有提供专用的控件拖拽使用 ...

  7. java小程序_Java小程序

    java小程序 An applet is a special kind of Java program that runs in a Java enabled browser. This is the ...

  8. 3.每天一个java小程序之累加累乘

    3.每天一个java小程序之累加累乘 java小练习之数的累加累乘,在于锻炼数学计算思维. 每天一个小程序,每天进步一点点. 代码如下: package com.zou; import java.ut ...

  9. 基于Bluemix快速构建部署一款Java小程序——微博影响力分析器

    一.前言 近年来IT界风云际会,各种新概念如大数据.云平台.虚拟化等,如雨后春笋般层出不穷.而云平台,可以说是近些年来引领时代新潮的边缘概念之一,各大厂商竞相推出各种云产品,抢占云市场高地.近期,IT ...

  10. dw网页插入java小程序_DW网页设计100例35:构建Java插入模块

    Java 是一种程序设计语言, Java applet ( Java 小程序)是在 Java 的基础上演变而成的.能够嵌入在网页中的.可以执行一定小任务的应用程序. 20060407140110aa1 ...

最新文章

  1. GitLab CI流水线配置文件.gitlab-ci.yml详解(三)
  2. CentOS下挂载iso文件
  3. dart系列之:元世界pubspec.yaml文件详解
  4. go语言之进阶篇主协程先退出导致子协程没来得及调用
  5. abaqus生成adams柔性体_基于ADAMS 的大型反铲挖泥机加装破碎锤 结构动力学分析
  6. java微信服务商支付,Java 微信支付之APP支付服务端 (二)
  7. 网页嵌入pdf、在线预览pdf工具及插件(转)
  8. 下一代软件工程的思考与点滴实践
  9. 罗马仕php30重量,充电宝多少毫安最好?这3款罗马仕充电宝必须收藏
  10. leetcode 198 动态规划
  11. redis发布与订阅的实现
  12. Android 自带的字体库、字体样式
  13. 随着数字化转型加速,Entrust Datacard更名为“Entrust”
  14. 使用Echarts制作动态嵌套饼图
  15. Qt之使用GraphicsView框架实现思维导图功能
  16. 一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)
  17. 复星联合创始人梁信军:3大趋势影响全球经济,区块链将重构社会生产关系
  18. TIA PORTAL西门子博途中FB与FC的区别
  19. css3好看的六图3D旋转
  20. 非上市公司的期权激励方案

热门文章

  1. R语言常用数据文件的导入
  2. Mongodb(芒果DB)之服务搭建
  3. Java实现飞机大战
  4. matlab 关闭mdl,双击m文件和mdl文件重新打开一个matlab主程序
  5. springboot vue导出excel 使用easypoi
  6. Linux-Ubuntu安装QQ 微信 TIM 百度网盘
  7. Apache Tomcat安装配置
  8. ObjectC基础之函数调用
  9. 雷达人体静止感应技术,云望爱希ISee雷达感应成品,高精度探测应用
  10. 小秘书的福音——使用Word VBA打造自动排版工具