java案例统计射门次数哪队更多?

wen java案例 2

Java 案例:统计射门次数哪队更多

下面是一个完整的 Java 案例,用来统计两支球队的射门次数,并判断哪队射门更多。

java案例统计射门次数哪队更多?

需求分析

  • 有 A、B 两支球队
  • 每支球队有多名球员
  • 统计每名球员的射门次数
  • 汇总两队射门总数,比较哪队更多

完整代码

import java.util.*;
// 球员类
class Player {
    private String name;
    private int shots; // 射门次数
    public Player(String name, int shots) {
        this.name = name;
        this.shots = shots;
    }
    public String getName() { return name; }
    public int getShots() { return shots; }
}
// 球队类
class Team {
    private String teamName;
    private List<Player> players = new ArrayList<>();
    public Team(String teamName) {
        this.teamName = teamName;
    }
    public void addPlayer(Player p) {
        players.add(p);
    }
    // 统计该队总射门次数
    public int getTotalShots() {
        int total = 0;
        for (Player p : players) {
            total += p.getShots();
        }
        return total;
    }
    // 打印球员详情
    public void printDetails() {
        System.out.println("【" + teamName + "】球员射门情况:");
        for (Player p : players) {
            System.out.printf("  %-8s 射门 %d 次%n", p.getName(), p.getShots());
        }
        System.out.println("  合计:" + getTotalShots() + " 次\n");
    }
    public String getTeamName() { return teamName; }
}
// 主程序
public class ShotStatistics {
    public static void main(String[] args) {
        // 1. 创建两支球队
        Team teamA = new Team("红队");
        Team teamB = new Team("蓝队");
        // 2. 添加球员及射门次数
        teamA.addPlayer(new Player("张伟", 5));
        teamA.addPlayer(new Player("李强", 3));
        teamA.addPlayer(new Player("王磊", 4));
        teamB.addPlayer(new Player("赵鹏", 6));
        teamB.addPlayer(new Player("刘洋", 2));
        teamB.addPlayer(new Player("陈晨", 3));
        // 3. 打印详情
        teamA.printDetails();
        teamB.printDetails();
        // 4. 比较结果
        int shotsA = teamA.getTotalShots();
        int shotsB = teamB.getTotalShots();
        System.out.println("========== 比赛统计结果 ==========");
        System.out.println(teamA.getTeamName() + " 总射门:" + shotsA + " 次");
        System.out.println(teamB.getTeamName() + " 总射门:" + shotsB + " 次");
        if (shotsA > shotsB) {
            System.out.println("👉 " + teamA.getTeamName() + " 射门次数更多!");
        } else if (shotsB > shotsA) {
            System.out.println("👉 " + teamB.getTeamName() + " 射门次数更多!");
        } else {
            System.out.println("👉 两队射门次数相同!");
        }
    }
}

运行结果

【红队】球员射门情况:
  张伟       射门 5 次
  李强       射门 3 次
  王磊       射门 4 次
  合计:12 次
【蓝队】球员射门情况:
  赵鹏       射门 6 次
  刘洋       射门 2 次
  陈晨       射门 3 次
  合计:11 次
========== 比赛统计结果 ==========
红队 总射门:12 次
蓝队 总射门:11 次
👉 红队 射门次数更多!

代码说明

类 作用
Player 封装球员姓名和射门次数
Team 管理球员列表,提供汇总射门数的方法
ShotStatistics 主程序,构建数据并比较结果

进阶扩展建议

  1. 使用 Stream API 简化求和:

    public int getTotalShots() {
        return players.stream().mapToInt(Player::getShots).sum();
    }
  2. 使用 Map 存储数据(无需创建类):

    Map<String, Integer> teamA = new HashMap<>();
    teamA.put("张伟", 5);
    // ... sum 汇总
  3. 从文件/数据库读取数据,支持真实比赛数据。

  4. 加入命中率统计:再加一列"射正次数",算 进球/射门 命中率。

  5. 多场比赛累计:用 List<Match> 记录每场比赛,汇总整个赛季的统计。

上一篇java案例对这场强强对话有何深度解析?

下一篇当前分类已是最新一篇

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

友情链接攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
相关站点礼包窝 · 查文窝