本文目录导读:

我来帮您创建一个统计脚后跟传球成功次数的Java案例。
完整案例代码
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* 足球比赛脚后跟传球统计器
*/
public class HeelPassStatistic {
// 球员类
static class Player {
private String name;
private int number;
private int heelPassAttempts; // 脚后跟传球尝试次数
private int heelPassSuccess; // 脚后跟传球成功次数
private int heelPassFail; // 脚后跟传球失败次数
public Player(String name, int number) {
this.name = name;
this.number = number;
this.heelPassAttempts = 0;
this.heelPassSuccess = 0;
this.heelPassFail = 0;
}
// 执行脚后跟传球
public boolean heelPass() {
heelPassAttempts++;
// 模拟传球结果,成功率60%
boolean success = new Random().nextDouble() < 0.6;
if (success) {
heelPassSuccess++;
} else {
heelPassFail++;
}
return success;
}
// Getters
public String getName() { return name; }
public int getNumber() { return number; }
public int getHeelPassAttempts() { return heelPassAttempts; }
public int getHeelPassSuccess() { return heelPassSuccess; }
public int getHeelPassFail() { return heelPassFail; }
// 成功率计算
public double getSuccessRate() {
if (heelPassAttempts == 0) return 0.0;
return (double) heelPassSuccess / heelPassAttempts * 100;
}
@Override
public String toString() {
return String.format("%s(%d) - 尝试: %d次, 成功: %d次, 失败: %d次, 成功率: %.1f%%",
name, number, heelPassAttempts, heelPassSuccess, heelPassFail, getSuccessRate());
}
}
// 比赛类
static class Match {
private List<Player> homeTeam;
private List<Player> awayTeam;
private int totalHeelPasses; // 总脚后跟传球次数
private int totalSuccessful; // 总成功次数
private int totalFailed; // 总失败次数
public Match() {
homeTeam = new ArrayList<>();
awayTeam = new ArrayList<>();
totalHeelPasses = 0;
totalSuccessful = 0;
totalFailed = 0;
}
// 添加球员到某个队伍
public void addPlayer(String team, Player player) {
if (team.equalsIgnoreCase("home")) {
homeTeam.add(player);
} else if (team.equalsIgnoreCase("away")) {
awayTeam.add(player);
}
}
// 统计脚后跟传球
public void simulateHeelPassStatistic(int numberOfPasses) {
List<Player> allPlayers = new ArrayList<>();
allPlayers.addAll(homeTeam);
allPlayers.addAll(awayTeam);
Random random = new Random();
System.out.println("\n=== 脚后跟传球统计开始 ===");
System.out.println("总计模拟 " + numberOfPasses + " 次脚后跟传球\n");
for (int i = 0; i < numberOfPasses; i++) {
// 随机选择传球球员
Player passer = allPlayers.get(random.nextInt(allPlayers.size()));
// 执行脚后跟传球
boolean success = passer.heelPass();
// 更新全局统计
totalHeelPasses++;
if (success) {
totalSuccessful++;
System.out.printf("%-3d. %s(No.%d) 脚后跟传球 - [成功]%n",
i+1, passer.getName(), passer.getNumber());
} else {
totalFailed++;
System.out.printf("%-3d. %s(No.%d) 脚后跟传球 - [失败]%n",
i+1, passer.getName(), passer.getNumber());
}
}
}
// 显示统计数据
public void showStatistics() {
System.out.println("\n========== 比赛统计汇总 ==========");
// 全局统计
System.out.println("\n【全局统计】");
System.out.printf("总脚后跟传球次数: %d%n", totalHeelPasses);
System.out.printf("成功次数: %d%n", totalSuccessful);
System.out.printf("失败次数: %d%n", totalFailed);
double overallRate = totalHeelPasses > 0 ?
(double) totalSuccessful / totalHeelPasses * 100 : 0;
System.out.printf("整体成功率: %.1f%%%n", overallRate);
// 主队统计
System.out.println("\n【主队球员统计】");
int homeSuccess = 0;
int homeAttempts = 0;
System.out.println("------------------------");
for (Player p : homeTeam) {
System.out.println(p);
homeSuccess += p.getHeelPassSuccess();
homeAttempts += p.getHeelPassAttempts();
}
double homeRate = homeAttempts > 0 ?
(double) homeSuccess / homeAttempts * 100 : 0;
System.out.println("------------------------");
System.out.printf("主队合计: 尝试%d次, 成功%d次, 成功率: %.1f%%%n",
homeAttempts, homeSuccess, homeRate);
// 客队统计
System.out.println("\n【客队球员统计】");
int awaySuccess = 0;
int awayAttempts = 0;
System.out.println("------------------------");
for (Player p : awayTeam) {
System.out.println(p);
awaySuccess += p.getHeelPassSuccess();
awayAttempts += p.getHeelPassAttempts();
}
double awayRate = awayAttempts > 0 ?
(double) awaySuccess / awayAttempts * 100 : 0;
System.out.println("------------------------");
System.out.printf("客队合计: 尝试%d次, 成功%d次, 成功率: %.1f%%%n",
awayAttempts, awaySuccess, awayRate);
// 最佳传球手
Player best = findBestPlayer();
System.out.println("\n【最佳脚后跟传球手】");
if (best != null) {
System.out.printf("冠军: %s(No.%d)%n", best.getName(), best.getNumber());
System.out.printf("数据: 成功%d次, 尝试%d次, 成功率: %.1f%%%n",
best.getHeelPassSuccess(), best.getHeelPassAttempts(), best.getSuccessRate());
}
}
// 找到最佳球员
private Player findBestPlayer() {
Player best = null;
int maxSuccess = -1;
List<Player> allPlayers = new ArrayList<>();
allPlayers.addAll(homeTeam);
allPlayers.addAll(awayTeam);
for (Player p : allPlayers) {
if (p.getHeelPassSuccess() > maxSuccess) {
maxSuccess = p.getHeelPassSuccess();
best = p;
}
}
return best;
}
}
// 主方法
public static void main(String[] args) {
// 创建比赛
Match match = new Match();
// 创建球员并加入球队
// 主队球员
match.addPlayer("home", new Player("梅西", 10));
match.addPlayer("home", new Player("内马尔", 11));
match.addPlayer("home", new Player("苏亚雷斯", 9));
// 客队球员
match.addPlayer("away", new Player("C罗", 7));
match.addPlayer("away", new Player("本泽马", 9));
match.addPlayer("away", new Player("莫德里奇", 10));
// 模拟脚后跟传球统计
match.simulateHeelPassStatistic(30); // 模拟30次脚后跟传球
// 显示统计结果
match.showStatistics();
}
}
运行示例输出
=== 脚后跟传球统计开始 ===
总计模拟 30 次脚后跟传球
1. 梅西(No.10) 脚后跟传球 - [成功]
2. 内马尔(No.11) 脚后跟传球 - [成功]
3. C罗(No.7) 脚后跟传球 - [失败]
...
========== 比赛统计汇总 ==========
【全局统计】
总脚后跟传球次数: 30
成功次数: 18
失败次数: 12
整体成功率: 60.0%
【主队球员统计】
------------------------
梅西(10) - 尝试: 7次, 成功: 5次, 失败: 2次, 成功率: 71.4%
内马尔(11) - 尝试: 6次, 成功: 4次, 失败: 2次, 成功率: 66.7%
苏亚雷斯(9) - 尝试: 4次, 成功: 2次, 失败: 2次, 成功率: 50.0%
------------------------
主队合计: 尝试17次, 成功11次, 成功率: 64.7%
【客队球员统计】
------------------------
C罗(7) - 尝试: 5次, 成功: 3次, 失败: 2次, 成功率: 60.0%
本泽马(9) - 尝试: 4次, 成功: 2次, 失败: 2次, 成功率: 50.0%
莫德里奇(10) - 尝试: 4次, 成功: 2次, 失败: 2次, 成功率: 50.0%
------------------------
客队合计: 尝试13次, 成功7次, 成功率: 53.8%
【最佳脚后跟传球手】
冠军: 梅西(No.10)
数据: 成功5次, 尝试7次, 成功率: 71.4%
功能说明
这个案例包含了:
- 完整的数据统计 - 记录每个球员的脚后跟传球尝试、成功、失败次数
- 多维度分析 - 包含全局、球队、个人三个层次的统计
- 成功率计算 - 自动计算整体、球队和个人成功率
- 最佳球员评选 - 自动找出传球成功率最高的球员
- 模拟功能 - 可以模拟任意次数的比赛统计
您可以调整 simulateHeelPassStatistic(30) 中的数字来改变模拟次数,或者修改 heelPass() 方法中的成功率(当前为60%)来适应不同的比赛场景。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播