本文目录导读:

我为您创建一个统计足球比赛中两队射门次数的Java案例,这个程序会模拟一场足球比赛的射门数据,并统计哪支球队射门更多。
import java.util.Random;
import java.util.Scanner;
public class ShotStatistics {
// 球队类
static class Team {
private String name;
private int shots;
public Team(String name) {
this.name = name;
this.shots = 0;
}
public void addShot() {
shots++;
}
public String getName() {
return name;
}
public int getShots() {
return shots;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
System.out.println("=== 足球射门统计系统 ===");
System.out.println();
// 创建两支球队
Team homeTeam = new Team("主队");
Team awayTeam = new Team("客队");
// 获取球队名称(可选)
System.out.print("请输入主队名称:");
String homeName = scanner.nextLine();
homeTeam = new Team(homeName.isEmpty() ? "主队" : homeName);
System.out.print("请输入客队名称:");
String awayName = scanner.nextLine();
awayTeam = new Team(awayName.isEmpty() ? "客队" : awayName);
System.out.println();
System.out.println("比赛开始!");
System.out.println();
// 模拟比赛射门
simulateMatch(homeTeam, awayTeam, random, scanner);
// 显示统计结果
displayStatistics(homeTeam, awayTeam);
scanner.close();
}
// 模拟比赛射门
private static void simulateMatch(Team home, Team away, Random random, Scanner scanner) {
boolean continueMatch = true;
while (continueMatch) {
System.out.println("--- 当前比分 ---");
System.out.printf("%s: %d 次射门 | %s: %d 次射门%n",
home.getName(), home.getShots(), away.getName(), away.getShots());
System.out.println();
System.out.println("选择操作:");
System.out.println("1. 主队射门");
System.out.println("2. 客队射门");
System.out.println("3. 结束比赛并查看统计");
System.out.print("请输入选择 (1-3): ");
int choice = scanner.nextInt();
scanner.nextLine(); // 消耗换行符
switch (choice) {
case 1:
home.addShot();
System.out.printf("%s 射门!%n", home.getName());
break;
case 2:
away.addShot();
System.out.printf("%s 射门!%n", away.getName());
break;
case 3:
continueMatch = false;
break;
default:
System.out.println("无效选择,请重新输入!");
}
System.out.println();
}
}
// 显示统计结果
private static void displayStatistics(Team home, Team away) {
System.out.println();
System.out.println("=== 比赛统计结果 ===");
System.out.println("━━━━━━━━━━━━━━━━━━━━━━");
System.out.printf("%-10s %10s%n", "球队", "射门次数");
System.out.println("---------------------");
System.out.printf("%-12s %8d%n", home.getName(), home.getShots());
System.out.printf("%-12s %8d%n", away.getName(), away.getShots());
System.out.println("━━━━━━━━━━━━━━━━━━━━━━");
// 判断哪队射门更多
System.out.println();
if (home.getShots() > away.getShots()) {
System.out.printf("🏆 %s 射门次数更多!%n", home.getName());
System.out.printf("%s 获得 %d 次射门,%s 获得 %d 次射门。%n",
home.getName(), home.getShots(), away.getName(), away.getShots());
} else if (away.getShots() > home.getShots()) {
System.out.printf("🏆 %s 射门次数更多!%n", away.getName());
System.out.printf("%s 获得 %d 次射门,%s 获得 %d 次射门。%n",
away.getName(), away.getShots(), home.getName(), home.getShots());
} else {
System.out.println("🤝 双方射门次数相同!");
System.out.printf("两队的射门次数都是 %d 次。%n", home.getShots());
}
// 计算总射门次数
int totalShots = home.getShots() + away.getShots();
System.out.println();
System.out.printf("比赛总射门次数:%d 次%n", totalShots);
if (totalShots == 0) {
System.out.println("⚠️ 这场比赛没有射门记录!");
} else if (totalShots < 10) {
System.out.println("📊 这是一场比较沉闷的比赛。");
} else if (totalShots < 20) {
System.out.println("📊 比赛相当激烈!");
} else {
System.out.println("📊 这是一场高强度的比赛!");
}
}
}
运行示例
=== 足球射门统计系统 ===
请输入主队名称:曼联
请输入客队名称:利物浦
比赛开始!
--- 当前比分 ---
曼联: 0 次射门 | 利物浦: 0 次射门
选择操作:
1. 主队射门
2. 客队射门
3. 结束比赛并查看统计
请输入选择 (1-3): 1
曼联 射门!
--- 当前比分 ---
曼联: 1 次射门 | 利物浦: 0 次射门
选择操作:
1. 主队射门
2. 客队射门
3. 结束比赛并查看统计
请输入选择 (1-3): 2
利物浦 射门!
...(继续模拟)...
=== 比赛统计结果 ===
━━━━━━━━━━━━━━━━━━━━━━
球队 射门次数
---------------------
曼联 8
利物浦 15
━━━━━━━━━━━━━━━━━━━━━━
🏆 利物浦 射门次数更多!
利物浦 获得 15 次射门,曼联 获得 8 次射门。
比赛总射门次数:23 次
📊 这是一场高强度的比赛!
增强版本(添加自动模拟功能)
如果您想要一个自动模拟的版本,可以使用这个增强版:
import java.util.Random;
import java.util.HashMap;
import java.util.Map;
public class AutoShotStatistics {
public static void main(String[] args) {
Random random = new Random();
System.out.println("=== 自动模拟足球射门统计 ===");
// 使用Map存储球队数据
Map<String, Integer> shotsMap = new HashMap<>();
String homeTeam = "皇马";
String awayTeam = "巴萨";
shotsMap.put(homeTeam, 0);
shotsMap.put(awayTeam, 0);
// 模拟90分钟比赛,每分钟随机射门0-2次
for (int minute = 1; minute <= 90; minute++) {
int homeShots = random.nextInt(2); // 0-1次
int awayShots = random.nextInt(2);
shotsMap.put(homeTeam, shotsMap.get(homeTeam) + homeShots);
shotsMap.put(awayTeam, shotsMap.get(awayTeam) + awayShots);
if (homeShots + awayShots > 0) {
System.out.printf("第%2d分钟: %s射门%d次, %s射门%d次%n",
minute, homeTeam, homeShots, awayTeam, awayShots);
}
}
// 显示最终统计
System.out.println();
System.out.println("=== 最终统计结果 ===");
System.out.printf("%s: %d 次射门%n", homeTeam, shotsMap.get(homeTeam));
System.out.printf("%s: %d 次射门%n", awayTeam, shotsMap.get(awayTeam));
// 判断胜负
if (shotsMap.get(homeTeam) > shotsMap.get(awayTeam)) {
System.out.printf("🏆 %s 射门次数更多!%n", homeTeam);
} else if (shotsMap.get(awayTeam) > shotsMap.get(homeTeam)) {
System.out.printf("🏆 %s 射门次数更多!%n", awayTeam);
} else {
System.out.println("🤝 双方射门次数相同!");
}
}
}
这个程序提供了两种方式:
- 手动版本:适合教学演示,用户可以控制每次射门
- 自动版本:自动模拟90分钟比赛,更接近真实场景
两个版本都清晰地展示了如何使用Java进行数据统计和比较,并给出了明确的结论。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播