我来帮你创建一个统计脚后跟传球成功次数的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;
public Player(String name, int number) {
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public int getNumber() {
return number;
}
}
// 传球事件类
static class PassEvent {
private Player passer;
private Player receiver;
private boolean successful;
private boolean isHeelPass;
private int minute;
public PassEvent(Player passer, Player receiver, boolean successful, boolean isHeelPass, int minute) {
this.passer = passer;
this.receiver = receiver;
this.successful = successful;
this.isHeelPass = isHeelPass;
this.minute = minute;
}
public Player getPasser() {
return passer;
}
public Player getReceiver() {
return receiver;
}
public boolean isSuccessful() {
return successful;
}
public boolean isHeelPass() {
return isHeelPass;
}
public int getMinute() {
return minute;
}
}
// 比赛数据统计类
static class MatchStatistics {
private List<PassEvent> events = new ArrayList<>();
private int successfulHeelPasses = 0;
private int totalHeelPasses = 0;
public void addEvent(PassEvent event) {
events.add(event);
if (event.isHeelPass()) {
totalHeelPasses++;
if (event.isSuccessful()) {
successfulHeelPasses++;
}
}
}
public int getSuccessfulHeelPasses() {
return successfulHeelPasses;
}
public int getTotalHeelPasses() {
return totalHeelPasses;
}
public double getSuccessRate() {
return (double) successfulHeelPasses / totalHeelPasses * 100;
}
// 按球员统计传球数据
public void printPlayerStatistics() {
System.out.println("\n===== 球员传球统计 =====");
for (Player player : getPlayers()) {
int successfulCount = 0;
int totalCount = 0;
for (PassEvent event : events) {
if (event.isHeelPass() && event.getPasser().equals(player)) {
totalCount++;
if (event.isSuccessful()) {
successfulCount++;
}
}
}
if (totalCount > 0) {
System.out.printf("%s(%d号):脚后跟传球%d次,成功%d次,成功率%.1f%%%n",
player.getName(), player.getNumber(),
totalCount, successfulCount,
(double) successfulCount / totalCount * 100);
}
}
}
private List<Player> getPlayers() {
List<Player> players = new ArrayList<>();
for (PassEvent event : events) {
if (!players.contains(event.getPasser())) {
players.add(event.getPasser());
}
}
return players;
}
}
// 模拟一场比赛
public static void main(String[] args) {
// 创建球员
List<Player> players = new ArrayList<>();
players.add(new Player("梅西", 10));
players.add(new Player("C罗", 7));
players.add(new Player("内马尔", 11));
players.add(new Player("姆巴佩", 7));
players.add(new Player("德布劳内", 17));
players.add(new Player("莫德里奇", 10));
players.add(new Player("凯恩", 9));
players.add(new Player("哈兰德", 9));
// 模拟比赛
Random random = new Random();
MatchStatistics stats = new MatchStatistics();
System.out.println("===== 模拟足球比赛 - 脚后跟传球统计 =====");
System.out.println("生成100次传球事件...\n");
for (int i = 0; i < 100; i++) {
// 随机选择传球者和接球者
Player passer = players.get(random.nextInt(players.size()));
Player receiver;
// 确保传球者不等于接球者
do {
receiver = players.get(random.nextInt(players.size()));
} while (passer.equals(receiver));
// 随机决定是否是脚后跟传球(30%概率)
boolean isHeelPass = random.nextDouble() < 0.3;
// 随机决定传球是否成功(脚后跟传球成功率约70%)
boolean successful;
if (isHeelPass) {
successful = random.nextDouble() < 0.7;
} else {
successful = random.nextDouble() < 0.85;
}
// 模拟比赛时间(0-90分钟)
int minute = random.nextInt(91);
// 创建传球事件并加入统计
PassEvent event = new PassEvent(passer, receiver, successful, isHeelPass, minute);
stats.addEvent(event);
// 打印高亮的事件
if (isHeelPass) {
System.out.printf("[%d分钟] %s → %s 脚后跟传球 %s%n",
minute, passer.getName(), receiver.getName(),
successful ? "✅成功" : "❌失败");
}
}
// 输出统计结果
System.out.println("\n===== 统计数据汇总 =====");
System.out.printf("脚后跟传球总次数:%d次%n", stats.getTotalHeelPasses());
System.out.printf("脚后跟传球成功次数:%d次%n", stats.getSuccessfulHeelPasses());
System.out.printf("脚后跟传球成功率:%.1f%%%n", stats.getSuccessRate());
// 输出球员统计
stats.printPlayerStatistics();
}
}
程序运行示例输出:
===== 模拟足球比赛 - 脚后跟传球统计 =====
生成100次传球事件...
[45分钟] 姆巴佩 → 梅西 脚后跟传球 ✅成功
[12分钟] 德布劳内 → C罗 脚后跟传球 ✅成功
[67分钟] 梅西 → 内马尔 脚后跟传球 ❌失败
...
===== 统计数据汇总 =====
脚后跟传球总次数:32次
脚后跟传球成功次数:23次
脚后跟传球成功率:71.9%
===== 球员传球统计 =====
梅西(10号):脚后跟传球5次,成功4次,成功率80.0%
C罗(7号):脚后跟传球4次,成功3次,成功率75.0%
...
主要功能:
- 数据模型设计:包含球员(Player)和传球事件(PassEvent)两个类
- 随机模拟:模拟100次传球事件,其中约30%为脚后跟传球
- 成功率统计:脚后跟传球成功率约70%
- 多维度统计:
- 总传球次数统计
- 成功次数统计
- 成功率计算
- 按球员分别统计
如果你需要处理实际的比赛数据,可以将 addEvent() 方法改为从外部数据源(数据库、文件等)读取真实数据,需要我帮你调整成处理实际数据的版本吗?
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播