关于排球计分系统的第一次迭代

Posted 知道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于排球计分系统的第一次迭代相关的知识,希望对你有一定的参考价值。

关于这个比赛系统的第一次迭代,使用的是java语言编写的,因为现在的技术有限,所以只能选择在控制台上与用户发生交互,没有实现界面化。之后随着学习的进一步深入,会使用界面来简化操作。

 

 

package game.volleyball;

import java.util.Scanner;
/**
 * 排球计分系统
 * 
 * 使用DD排球计分系统可以进行简单的排球计分操作以及查询某一局的比分。
 * 1、比赛总共5局,每一局5分,若是有一方领先对方3分,则视为这一方胜利。
 *    5局结束后,统计两方胜利的次数,输出最终胜利的一方。并退出程序
 * 2、使用查询功能可以查询过往的比赛成绩,输出比分和胜利的一方
 */
public class Game {
    
    static Scanner sca = new Scanner(System.in);
    //scoreArr数组,用来存放5局两队的单轮成绩
    static int[][] scoreArr = new int[5][2];
    //result数组,用来存放每一轮的成绩,方便查询
    static String[] result = new String[5];
    
    //用来统计两队胜利的次数
    static int ni1 = 0;
    static int ni2 = 0;

    public static void main(String[] args) {
        System.out.println("\\n\\n    --------欢迎进入DD排球计分系统--------\\n\\n\\n");
        System.out.println("使用说明:使用DD排球计分系统可以进行简单的排球计分操作以及查询某一局的比分。" + "\\n1、比赛总共5局,每一局5分,若是有一方领先对方3分,则视为这一方胜利。"
                + "\\n  5局结束后,统计两方胜利的次数,输出最终胜利的一方。并退出程序\\n" + "2、使用查询功能可以查询过往的比赛成绩,输出比分和胜利的一方");
        for (int i = 0; i < 5;) {
            System.out.println("    请选择您的操作:");
            System.out.println("1、开始计分      2、查询      3、退出系统");
            //用户输入的操作选择
            int choose = sca.nextInt();
            //如果用户输入1
            if (choose == 1) {
                //输出第几局比赛
                System.out.println("现在开始第" + (i + 1) + "局比赛");
                //调用计分方法
                bounds(i);
                i++;
            } else if (choose == 2) {//如果用户输出2
                System.out.println("请输入你要查询的局数:");
                int check = sca.nextInt();
                //判断用户输入的局数是否开始
                if (result[check - 1] == null) {
                    System.out.println("这一局比赛还没有开始。");
                } else {
                    //从数组中找出结果
                    System.out.println(result[check - 1]);
                }
            } else if (choose == 3) {//如果用户输入3,输出当前成绩,并退出程序
                
                System.out.println("本场比赛结束,当前比分为:中国队VS美国队~~~~~" + ni1 + ":" + ni2);
                System.out.println("谢谢使用DD计分系统,欢迎下次使用,再见");
                System.exit(0);
            } else {
                System.out.println("您的输入有误,请重新输入");
            }
        }
        
        //5局比赛结束后,本场比赛结束,输出结果,并退出程序
        System.out.println("本场比赛结束,当前比分为:中国队VS美国队~~~~~" + ni1 + ":" + ni2);
        if (ni1 > ni2) {
            System.out.println("中国队取得最终胜利");
        } else {
            System.out.println("美国队取得最终胜利");
        }
        System.out.println("谢谢使用DD计分系统,欢迎下次使用,再见");
    }

    // 计分方法,统计成绩
    public static String[] bounds(int num) {
        int i = 0;
        //如果两队的成绩都小于等于5
        if (scoreArr[num][0] <= 5 && scoreArr[num][1] <= 5) {
            for (;; i++) {
                System.out.println("请输出获胜方的编号,进行加分");
                System.out.println("1、中国队             VS      2、美国队");
                int team = sca.nextInt();
                if (team == 1) {
                    //保留每一局的成绩
                    scoreArr[num][0] += 1;
                    System.out.println("第" + (i + 1) + "轮比赛结束,当前比分为" + scoreArr[num][0] + ":" + scoreArr[num][1]);
                } else if (team == 2) {
                    scoreArr[num][1] += 1;
                    System.out.println("第" + (i + 1) + "轮比赛结束,当前比分为" + scoreArr[num][0] + ":" + scoreArr[num][1]);

                }

                if ((scoreArr[num][0] - scoreArr[num][1]) == 3) {
                    result[num] = "第" + (num + 1) + "局,比分为" + scoreArr[num][0] + ":" + scoreArr[num][1] + "   中国队胜利";
                    System.out.println(result[num]);
                    //每轮比赛结束后,使最终成绩累加1,并返回
                    ni1 += 1;
                    return result;
                } else if ((scoreArr[num][1] - scoreArr[num][0]) == 3) {
                    result[num] = "第" + (num + 1) + "局,比分为" + scoreArr[num][0] + ":" + scoreArr[num][1] + "   美国队胜利";
                    System.out.println(result[num]);
                    ni2 += 1;
                    return result;

                }
            }
        } else if (scoreArr[num][0] > scoreArr[num][1]) {
            result[num] = "第" + (num + 1) + "局,比分为" + scoreArr[num][0] + ":" + scoreArr[num][1] + "   中国队胜利";
            System.out.println(result[num]);
            ni1 += 1;
            return result;
        } else {
            result[num] = "第" + (num + 1) + "局,比分为" + scoreArr[num][0] + ":" + scoreArr[num][1] + "   美国队胜利";
            System.out.println(result[num]);
            ni2 += 1;
            return result;
        }
    }

}

上述代码,是对这个系统的基本实现,能简单的实现对分数的累加和对比赛的查询。

计分的图片

 

查询的截图

退出的截图

 

这个系统用到了循环和方法,以及对判断语句的使用。做这种系统,先把逻辑捋顺很重要。

以上是关于关于排球计分系统的第一次迭代的主要内容,如果未能解决你的问题,请参考以下文章

第一次迭代

第一次迭代作业

排球比赛第一局计分系统

排球比赛计分系统

排球比赛计分规则

排球计分软件规则说明书