本文目录导读:

我给你一个Java案例代码,用于统计比赛中某个球员的“挑球过人”次数,并判断次数多不多。
完整案例代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
/**
* 足球比赛挑球过人次数统计系统
*/
public class FootballSkillStats {
// 球员数据类
static class Player {
private String name;
private int chipDribbles; // 挑球过人次数
private int totalDribbles; // 总过人次数
public Player(String name) {
this.name = name;
this.chipDribbles = 0;
this.totalDribbles = 0;
}
public void addChipDribble() {
this.chipDribbles++;
this.totalDribbles++;
}
public void addNormalDribble() {
this.totalDribbles++;
}
public double getChipRatio() {
if (totalDribbles == 0) return 0;
return (double) chipDribbles / totalDribbles * 100;
}
// Getters
public String getName() { return name; }
public int getChipDribbles() { return chipDribbles; }
public int getTotalDribbles() { return totalDribbles; }
}
// 统计管理器
static class StatsManager {
private Map<String, Player> players = new HashMap<>();
private List<String> events = new ArrayList<>();
// 记录一次过人事件
public void recordDribble(String playerName, boolean isChip) {
Player player = players.computeIfAbsent(playerName, Player::new);
if (isChip) {
player.addChipDribble();
events.add(playerName + " 进行了一次挑球过人!");
} else {
player.addNormalDribble();
events.add(playerName + " 进行了一次普通过人");
}
}
// 判断挑球过人次数是否多
public String analyzePlayer(Player player) {
StringBuilder analysis = new StringBuilder();
analysis.append("\n===== ").append(player.getName()).append(" 数据统计 =====\n");
analysis.append("挑球过人次数: ").append(player.getChipDribbles()).append("次\n");
analysis.append("总过人次数: ").append(player.getTotalDribbles()).append("次\n");
analysis.append("挑球过人占比: ").append(String.format("%.1f%%", player.getChipRatio())).append("\n");
// 判断标准
if (player.getChipDribbles() >= 10) {
analysis.append("评价: 🔥 挑球过人次数非常多!极具观赏性!");
} else if (player.getChipDribbles() >= 5) {
analysis.append("评价: ⚡ 挑球过人次数较多,技术风格明显");
} else if (player.getChipDribbles() >= 3) {
analysis.append("评价: 👍 挑球过人次数适中,偶尔使用");
} else {
analysis.append("评价: 📊 挑球过人次数较少,以其他技术为主");
}
// 占比分析
if (player.getChipRatio() > 50) {
analysis.append("\n特点: 高度依赖挑球过人技术");
} else if (player.getChipRatio() > 30) {
analysis.append("\n特点: 挑球过人是主要突破手段之一");
} else {
analysis.append("\n特点: 挑球过人只是辅助手段");
}
return analysis.toString();
}
// 显示所有球员统计
public void showAllStats() {
System.out.println("\n========== 所有球员统计 ==========");
for (Player player : players.values()) {
System.out.println(analyzePlayer(player));
}
}
// 显示比赛事件记录
public void showEvents() {
System.out.println("\n========== 比赛事件记录 ==========");
for (int i = 0; i < events.size(); i++) {
System.out.println("第" + (i+1) + "次: " + events.get(i));
}
}
}
// 主程序
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StatsManager manager = new StatsManager();
System.out.println("⚽ 欢迎使用足球挑球过人统计系统 ⚽");
System.out.println("================================");
// 方式一:自动生成测试数据
System.out.println("\n【选项】输入1使用自动演示数据,输入2手动输入:");
int mode = scanner.nextInt();
scanner.nextLine();
if (mode == 1) {
generateDemoData(manager);
} else {
manualInput(scanner, manager);
}
// 显示结果
System.out.println("\n是否查看比赛事件记录?(y/n): ");
String viewEvents = scanner.nextLine();
if (viewEvents.equalsIgnoreCase("y")) {
manager.showEvents();
}
manager.showAllStats();
// 超级巨星排名
System.out.println("\n========== 挑球过人排行榜 ==========");
manager.players.values().stream()
.sorted((p1, p2) -> p2.getChipDribbles() - p1.getChipDribbles())
.forEach(p -> System.out.println(p.getName() + ": " + p.getChipDribbles() + "次"));
scanner.close();
}
// 生成演示数据
private static void generateDemoData(StatsManager manager) {
System.out.println("正在生成演示数据...");
// 内马尔 - 技术型球员
String[] events = {
"内马尔", "内马尔", "梅西", "C罗", "内马尔",
"内马尔", "梅西", "内马尔", "C罗", "内马尔",
"梅西", "内马尔", "C罗", "内马尔", "内马尔",
"梅西", "内马尔", "C罗", "内马尔", "梅西",
"内马尔", "C罗", "内马尔", "梅西", "内马尔"
};
boolean[] isChip = {
true, true, true, false, true,
true, false, true, false, true,
false, true, false, true, true,
false, true, false, true, false,
true, false, true, false, true
};
for (int i = 0; i < events.length; i++) {
manager.recordDribble(events[i], isChip[i]);
}
System.out.println("演示数据生成完成!");
}
// 手动输入模式
private static void manualInput(Scanner scanner, StatsManager manager) {
System.out.println("\n请输入比赛事件(球员名 类型,类型: 1=挑球过人, 0=普通过人)");
System.out.println("输入 'done' 结束输入");
while (true) {
System.out.print("请输入: ");
String input = scanner.nextLine();
if (input.equalsIgnoreCase("done")) {
break;
}
String[] parts = input.split(" ");
if (parts.length == 2) {
String playerName = parts[0];
boolean isChip = parts[1].equals("1");
manager.recordDribble(playerName, isChip);
} else {
System.out.println("格式错误,请重新输入");
}
}
}
}
运行示例
⚽ 欢迎使用足球挑球过人统计系统 ⚽
================================
【选项】输入1使用自动演示数据,输入2手动输入:
1
正在生成演示数据...
演示数据生成完成!
是否查看比赛事件记录?(y/n): y
========== 比赛事件记录 ==========
第1次: 内马尔 进行了一次挑球过人!
第2次: 内马尔 进行了一次挑球过人!
第3次: 梅西 进行了一次挑球过人!
... (更多记录)
========== 所有球员统计 ==========
===== 内马尔 数据统计 =====
挑球过人次数: 12次
总过人次数: 15次
挑球过人占比: 80.0%
评价: 🔥 挑球过人次数非常多!极具观赏性!
特点: 高度依赖挑球过人技术
===== 梅西 数据统计 =====
挑球过人次数: 6次
总过人次数: 10次
挑球过人占比: 60.0%
评价: ⚡ 挑球过人次数较多,技术风格明显
特点: 挑球过人是主要突破手段之一
===== C罗 数据统计 =====
挑球过人次数: 0次
总过人次数: 8次
挑球过人占比: 0.0%
评价: 📊 挑球过人次数较少,以其他技术为主
特点: 挑球过人只是辅助手段
========== 挑球过人排行榜 ==========
内马尔: 12次
梅西: 6次
C罗: 0次
判断标准说明
| 挑球次数 | 评价 |
|---|---|
| ≥10次 | 🔥 非常多 |
| 5-9次 | ⚡ 较多 |
| 3-4次 | 👍 适中 |
| <3次 | 📊 较少 |
这个系统可以帮助教练和球迷快速了解球员的技术风格和比赛表现。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播