本文目录导读:

我来为您设计一个Java程序,用于统计两队比赛中的失误次数,并比较哪队失误更少。
解决方案
import java.util.*;
public class TurnoverStatistics {
// 队伍类
static class Team {
private String name;
private int totalTurnovers;
private Map<String, Integer> turnoversByPlayer;
public Team(String name) {
this.name = name;
this.totalTurnovers = 0;
this.turnoversByPlayer = new HashMap<>();
}
public void addTurnover(String playerName) {
totalTurnovers++;
turnoversByPlayer.merge(playerName, 1, Integer::sum);
}
public String getName() {
return name;
}
public int getTotalTurnovers() {
return totalTurnovers;
}
public Map<String, Integer> getTurnoversByPlayer() {
return turnoversByPlayer;
}
// 获取失误最多的球员
public String getHighestTurnoverPlayer() {
return turnoversByPlayer.entrySet().stream()
.max(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.orElse("无");
}
}
// 统计比较器
public static void compareTeams(Team teamA, Team teamB) {
System.out.println("========== 失误统计对比 ==========");
System.out.println(teamA.getName() + " 总失误: " + teamA.getTotalTurnovers() + " 次");
System.out.println(teamB.getName() + " 总失误: " + teamB.getTotalTurnovers() + " 次");
System.out.println("--------------------------------");
if (teamA.getTotalTurnovers() < teamB.getTotalTurnovers()) {
System.out.println("🏆 " + teamA.getName() + " 失误更少,表现更好!");
} else if (teamB.getTotalTurnovers() < teamA.getTotalTurnovers()) {
System.out.println("🏆 " + teamB.getName() + " 失误更少,表现更好!");
} else {
System.out.println("⚖️ 两队失误次数相同,打成平手!");
}
System.out.println("--------------------------------");
System.out.println(teamA.getName() + " 失误最多的球员: " +
teamA.getHighestTurnoverPlayer() + " (" +
teamA.getTurnoversByPlayer().getOrDefault(teamA.getHighestTurnoverPlayer(), 0) + " 次)");
System.out.println(teamB.getName() + " 失误最多的球员: " +
teamB.getHighestTurnoverPlayer() + " (" +
teamB.getTurnoversByPlayer().getOrDefault(teamB.getHighestTurnoverPlayer(), 0) + " 次)");
}
// 生成模拟数据
public static void simulateMatch(Team teamA, Team teamB) {
Random random = new Random();
String[] playersA = {"球员A1", "球员A2", "球员A3", "球员A4", "球员A5"};
String[] playersB = {"球员B1", "球员B2", "球员B3", "球员B4", "球员B5"};
// 模拟4节比赛,每节随机产生失误
for (int quarter = 1; quarter <= 4; quarter++) {
int turnoversA = random.nextInt(6); // 0-5次失误
int turnoversB = random.nextInt(6);
for (int i = 0; i < turnoversA; i++) {
teamA.addTurnover(playersA[random.nextInt(playersA.length)]);
}
for (int i = 0; i < turnoversB; i++) {
teamB.addTurnover(playersB[random.nextInt(playersB.length)]);
}
System.out.println("第" + quarter + "节: " +
teamA.getName() + " " + turnoversA + " 次失误, " +
teamB.getName() + " " + turnoversB + " 次失误");
}
}
// 主方法
public static void main(String[] args) {
// 创建两支球队
Team teamA = new Team("湖人队");
Team teamB = new Team("勇士队");
System.out.println("=== 比赛失误统计系统 ===");
System.out.println("正在模拟比赛数据...");
System.out.println();
// 模拟比赛
simulateMatch(teamA, teamB);
System.out.println();
// 对比统计结果
compareTeams(teamA, teamB);
// 详细统计显示
System.out.println("\n========== 详细统计 ==========");
printTeamStats(teamA);
printTeamStats(teamB);
}
// 打印队伍详细统计
private static void printTeamStats(Team team) {
System.out.println(team.getName() + " 球员失误详情:");
team.getTurnoversByPlayer().entrySet().stream()
.sorted(Map.Entry.<String, Integer>comparingByValue().reversed())
.forEach(entry ->
System.out.println(" " + entry.getKey() + ": " + entry.getValue() + " 次"));
System.out.println();
}
}
扩展版本(支持手动输入)
import java.util.*;
public class TurnoverManager {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("🏀 篮球比赛失误统计系统");
System.out.println("============================");
// 输入两队名称
System.out.print("请输入A队名称: ");
String teamAName = scanner.nextLine();
System.out.print("请输入B队名称: ");
String teamBName = scanner.nextLine();
// 创建队伍
Team teamA = new Team(teamAName);
Team teamB = new Team(teamBName);
// 输入失误次数
inputTurnovers(teamA, "A");
inputTurnovers(teamB, "B");
// 比较结果
compareTeams(teamA, teamB);
scanner.close();
}
private static void inputTurnovers(Team team, String teamLabel) {
System.out.println("\n请输入" + teamLabel + "队(" + team.getName() + ")的失误数据:");
while (true) {
System.out.print("输入球员名称(输入quit结束): ");
String playerName = scanner.nextLine();
if (playerName.equalsIgnoreCase("quit")) {
break;
}
System.out.print("输入失误次数: ");
try {
int times = Integer.parseInt(scanner.nextLine());
for (int i = 0; i < times; i++) {
team.addTurnover(playerName);
}
System.out.println("✓ 已记录");
} catch (NumberFormatException e) {
System.out.println("❌ 输入无效,请重新输入");
}
}
}
private static void compareTeams(Team teamA, Team teamB) {
System.out.println("\n========== 统计结果 ==========");
System.out.printf("%s: %d 次失误%n", teamA.getName(), teamA.getTotalTurnovers());
System.out.printf("%s: %d 次失误%n", teamB.getName(), teamB.getTotalTurnovers());
String result = teamA.getTotalTurnovers() < teamB.getTotalTurnovers() ?
teamA.getName() :
(teamB.getTotalTurnovers() < teamA.getTotalTurnovers() ?
teamB.getName() : "平局");
System.out.println("============================");
System.out.println("失误更少的团队: " + result);
// 显示每个球员的失误统计
System.out.println("\n--- 球员明细 ---");
displayPlayerStats(teamA);
displayPlayerStats(teamB);
}
private static void displayPlayerStats(Team team) {
System.out.println(team.getName() + ":");
team.getTurnoversByPlayer().forEach((player, count) ->
System.out.println(" " + player + ": " + count + "次"));
}
}
运行示例
=== 比赛失误统计系统 ===
正在模拟比赛数据...
第1节: 湖人队 2 次失误, 勇士队 3 次失误
第2节: 湖人队 4 次失误, 勇士队 2 次失误
第3节: 湖人队 1 次失误, 勇士队 3 次失误
第4节: 湖人队 3 次失误, 勇士队 2 次失误
========== 失误统计对比 ==========
湖人队 总失误: 10 次
勇士队 总失误: 10 次
--------------------------------
⚖️ 两队失误次数相同,打成平手!
--------------------------------
湖人队 失误最多的球员: 球员A3 (3 次)
勇士队 失误最多的球员: 球员B2 (3 次)
========== 详细统计 ==========
湖人队 球员失误详情:
球员A3: 3 次
球员A1: 2 次
球员A4: 2 次
...
这个程序提供了完整的篮球比赛失误统计功能,可以灵活适应不同的使用场景!
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播