java案例统计角球数哪边领先?

wen java案例 4

本文目录导读:

java案例统计角球数哪边领先?

  1. 版本1:简单基础版
  2. 版本2:面向对象封装版
  3. 版本3:功能增强版(含历史记录)
  4. 使用说明
  5. 运行示例(版本1)

我可以帮您设计一个Java程序来统计角球数并判断哪边领先,以下是几个不同版本的实现:

版本1:简单基础版

import java.util.Scanner;
public class CornerKicks {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("=== 角球统计系统 ===");
        // 输入两队角球数
        System.out.print("请输入主队角球数: ");
        int homeCorners = input.nextInt();
        System.out.print("请输入客队角球数: ");
        int awayCorners = input.nextInt();
        // 统计和判断
        int totalCorners = homeCorners + awayCorners;
        System.out.println("\n=== 统计结果 ===");
        System.out.println("主队角球数: " + homeCorners);
        System.out.println("客队角球数: " + awayCorners);
        System.out.println("总角球数: " + totalCorners);
        // 判断哪边领先
        if (homeCorners > awayCorners) {
            System.out.println("🏆 主队角球领先!");
        } else if (awayCorners > homeCorners) {
            System.out.println("🏆 客队角球领先!");
        } else {
            System.out.println("⚖️ 双方角球数持平!");
        }
    }
}

版本2:面向对象封装版

import java.util.Scanner;
public class CornerKickTracker {
    public static void main(String[] args) {
        // 创建比赛对象
        Match match = new Match();
        match.startMatch();
    }
}
class Match {
    private String homeTeam;
    private String awayTeam;
    private int homeCorners = 0;
    private int awayCorners = 0;
    private Scanner input = new Scanner(System.in);
    // 开始比赛
    public void startMatch() {
        System.out.println("⚽ 角球统计系统 ⚽");
        // 输入球队名称
        System.out.print("请输入主队名称: ");
        homeTeam = input.nextLine();
        System.out.print("请输入客队名称: ");
        awayTeam = input.nextLine();
        // 模拟比赛过程
        simulateMatch();
        // 显示最终结果
        showFinalResult();
    }
    // 模拟比赛过程
    private void simulateMatch() {
        boolean matchOver = false;
        int round = 1;
        while (!matchOver) {
            System.out.println("\n--- 第" + round + "轮 ---");
            // 记录角球
            recordCorner(homeTeam, true);
            recordCorner(awayTeam, false);
            // 显示当前比分
            showCurrentScore();
            // 询问是否结束比赛
            System.out.print("\n是否结束比赛? (y/n): ");
            String choice = input.next();
            matchOver = choice.equalsIgnoreCase("y");
            round++;
        }
    }
    // 记录角球
    private void recordCorner(String teamName, boolean isHome) {
        System.out.print(teamName + "本轮获得角球数 (0-5): ");
        int corners = getValidInput(0, 5);
        if (isHome) {
            homeCorners += corners;
        } else {
            awayCorners += corners;
        }
    }
    // 获取有效输入
    private int getValidInput(int min, int max) {
        int value;
        do {
            value = input.nextInt();
            if (value < min || value > max) {
                System.out.print("请输入 " + min + "-" + max + " 之间的数: ");
            }
        } while (value < min || value > max);
        return value;
    }
    // 显示当前比分
    private void showCurrentScore() {
        System.out.println("\n当前比分:");
        System.out.println(homeTeam + ": " + homeCorners + " 角球");
        System.out.println(awayTeam + ": " + awayCorners + " 角球");
        if (homeCorners > awayCorners) {
            System.out.println("📊 " + homeTeam + " 领先");
        } else if (awayCorners > homeCorners) {
            System.out.println("📊 " + awayTeam + " 领先");
        } else {
            System.out.println("📊 平局");
        }
    }
    // 显示最终结果
    private void showFinalResult() {
        System.out.println("\n═══ 比赛总结 ═══");
        showCurrentScore();
        int totalCorners = homeCorners + awayCorners;
        System.out.println("总角球数: " + totalCorners);
        // 判断优势方
        if (homeCorners > awayCorners) {
            int difference = homeCorners - awayCorners;
            System.out.println("🏆 " + homeTeam + " 以" + difference + "个角球优势获胜!");
        } else if (awayCorners > homeCorners) {
            int difference = awayCorners - homeCorners;
            System.out.println("🏆 " + awayTeam + " 以" + difference + "个角球优势获胜!");
        } else {
            System.out.println("🤝 双方不相上下!");
        }
    }
}

版本3:功能增强版(含历史记录)

import java.util.ArrayList;
import java.util.Scanner;
public class AdvancedCornerTracker {
    private static ArrayList<String> matchHistory = new ArrayList<>();
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        boolean running = true;
        while (running) {
            System.out.println("\n=== 角球统计系统 ===");
            System.out.println("1. 记录新比赛");
            System.out.println("2. 查看历史统计");
            System.out.println("3. 退出系统");
            System.out.print("请选择: ");
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    recordNewMatch(input);
                    break;
                case 2:
                    showHistory();
                    break;
                case 3:
                    running = false;
                    System.out.println("感谢使用!");
                    break;
                default:
                    System.out.println("无效选择,请重新输入!");
            }
        }
        input.close();
    }
    // 记录新比赛
    private static void recordNewMatch(Scanner input) {
        System.out.print("比赛编号: ");
        String matchId = input.next();
        System.out.print("主队名称: ");
        String homeTeam = input.next();
        System.out.print("客队名称: ");
        String awayTeam = input.next();
        System.out.print("主队角球数: ");
        int homeCorners = input.nextInt();
        System.out.print("客队角球数: ");
        int awayCorners = input.nextInt();
        // 生成比赛记录
        String result = determineWinner(homeTeam, awayTeam, homeCorners, awayCorners);
        String record = String.format("比赛%s: %s %d vs %s %d | 获胜方: %s", 
                                    matchId, homeTeam, homeCorners, awayTeam, awayCorners, result);
        matchHistory.add(record);
        System.out.println("✅ 比赛记录已保存!");
        System.out.println(record);
    }
    // 判断获胜方
    private static String determineWinner(String homeTeam, String awayTeam, 
                                        int homeCorners, int awayCorners) {
        if (homeCorners > awayCorners) return homeTeam;
        if (awayCorners > homeCorners) return awayTeam;
        return "平局";
    }
    // 显示历史记录
    private static void showHistory() {
        if (matchHistory.isEmpty()) {
            System.out.println("暂无比赛记录!");
            return;
        }
        System.out.println("\n=== 历史比赛记录 ===");
        int totalHomeCorners = 0;
        int totalAwayCorners = 0;
        int homeWins = 0;
        int awayWins = 0;
        int draws = 0;
        for (String record : matchHistory) {
            System.out.println(record);
            // 统计(简化版)
            if (record.contains("获胜方:")) {
                String result = record.substring(record.indexOf("获胜方:") + 4).trim();
                if (result.equals("平局")) {
                    draws++;
                }
            }
        }
        System.out.println("\n=== 总统计 ===");
        System.out.println("总比赛场次: " + matchHistory.size());
        System.out.println("平局场次: " + draws);
    }
}

使用说明

  1. 版本1:最简单的控制台交互,直接输入两队角球数,程序即时判断领先方。
  2. 版本2:包含完整的比赛流程模拟,可以分轮次记录角球,实时显示比分。
  3. 版本3:高级功能,支持多场比赛记录和历史统计。

运行示例(版本1)

=== 角球统计系统 ===
请输入主队角球数: 8
请输入客队角球数: 5
=== 统计结果 ===
主队角球数: 8
客队角球数: 5
总角球数: 13
🏆 主队角球领先!

这些程序可以根据实际需求进行修改,比如增加角球时间记录、特定球员角球统计等功能,您想要哪个版本,或者需要其他功能吗?

抱歉,评论功能暂时关闭!