本文目录导读:

我可以帮您设计一个Java程序来统计角球数并判断哪边领先,以下是几个不同版本的实现:
版本1:简单基础版
import java.util.Scanner;
public class CornerKicks {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("=== 角球统计系统 ===");
// 输入两队角球数
System.out.print("请输入主队角球数: ");
int homeCorners = input.nextInt();
System.out.print("请输入客队角球数: ");
int awayCorners = input.nextInt();
// 统计和判断
int totalCorners = homeCorners + awayCorners;
System.out.println("\n=== 统计结果 ===");
System.out.println("主队角球数: " + homeCorners);
System.out.println("客队角球数: " + awayCorners);
System.out.println("总角球数: " + totalCorners);
// 判断哪边领先
if (homeCorners > awayCorners) {
System.out.println("🏆 主队角球领先!");
} else if (awayCorners > homeCorners) {
System.out.println("🏆 客队角球领先!");
} else {
System.out.println("⚖️ 双方角球数持平!");
}
}
}
版本2:面向对象封装版
import java.util.Scanner;
public class CornerKickTracker {
public static void main(String[] args) {
// 创建比赛对象
Match match = new Match();
match.startMatch();
}
}
class Match {
private String homeTeam;
private String awayTeam;
private int homeCorners = 0;
private int awayCorners = 0;
private Scanner input = new Scanner(System.in);
// 开始比赛
public void startMatch() {
System.out.println("⚽ 角球统计系统 ⚽");
// 输入球队名称
System.out.print("请输入主队名称: ");
homeTeam = input.nextLine();
System.out.print("请输入客队名称: ");
awayTeam = input.nextLine();
// 模拟比赛过程
simulateMatch();
// 显示最终结果
showFinalResult();
}
// 模拟比赛过程
private void simulateMatch() {
boolean matchOver = false;
int round = 1;
while (!matchOver) {
System.out.println("\n--- 第" + round + "轮 ---");
// 记录角球
recordCorner(homeTeam, true);
recordCorner(awayTeam, false);
// 显示当前比分
showCurrentScore();
// 询问是否结束比赛
System.out.print("\n是否结束比赛? (y/n): ");
String choice = input.next();
matchOver = choice.equalsIgnoreCase("y");
round++;
}
}
// 记录角球
private void recordCorner(String teamName, boolean isHome) {
System.out.print(teamName + "本轮获得角球数 (0-5): ");
int corners = getValidInput(0, 5);
if (isHome) {
homeCorners += corners;
} else {
awayCorners += corners;
}
}
// 获取有效输入
private int getValidInput(int min, int max) {
int value;
do {
value = input.nextInt();
if (value < min || value > max) {
System.out.print("请输入 " + min + "-" + max + " 之间的数: ");
}
} while (value < min || value > max);
return value;
}
// 显示当前比分
private void showCurrentScore() {
System.out.println("\n当前比分:");
System.out.println(homeTeam + ": " + homeCorners + " 角球");
System.out.println(awayTeam + ": " + awayCorners + " 角球");
if (homeCorners > awayCorners) {
System.out.println("📊 " + homeTeam + " 领先");
} else if (awayCorners > homeCorners) {
System.out.println("📊 " + awayTeam + " 领先");
} else {
System.out.println("📊 平局");
}
}
// 显示最终结果
private void showFinalResult() {
System.out.println("\n═══ 比赛总结 ═══");
showCurrentScore();
int totalCorners = homeCorners + awayCorners;
System.out.println("总角球数: " + totalCorners);
// 判断优势方
if (homeCorners > awayCorners) {
int difference = homeCorners - awayCorners;
System.out.println("🏆 " + homeTeam + " 以" + difference + "个角球优势获胜!");
} else if (awayCorners > homeCorners) {
int difference = awayCorners - homeCorners;
System.out.println("🏆 " + awayTeam + " 以" + difference + "个角球优势获胜!");
} else {
System.out.println("🤝 双方不相上下!");
}
}
}
版本3:功能增强版(含历史记录)
import java.util.ArrayList;
import java.util.Scanner;
public class AdvancedCornerTracker {
private static ArrayList<String> matchHistory = new ArrayList<>();
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println("\n=== 角球统计系统 ===");
System.out.println("1. 记录新比赛");
System.out.println("2. 查看历史统计");
System.out.println("3. 退出系统");
System.out.print("请选择: ");
int choice = input.nextInt();
switch (choice) {
case 1:
recordNewMatch(input);
break;
case 2:
showHistory();
break;
case 3:
running = false;
System.out.println("感谢使用!");
break;
default:
System.out.println("无效选择,请重新输入!");
}
}
input.close();
}
// 记录新比赛
private static void recordNewMatch(Scanner input) {
System.out.print("比赛编号: ");
String matchId = input.next();
System.out.print("主队名称: ");
String homeTeam = input.next();
System.out.print("客队名称: ");
String awayTeam = input.next();
System.out.print("主队角球数: ");
int homeCorners = input.nextInt();
System.out.print("客队角球数: ");
int awayCorners = input.nextInt();
// 生成比赛记录
String result = determineWinner(homeTeam, awayTeam, homeCorners, awayCorners);
String record = String.format("比赛%s: %s %d vs %s %d | 获胜方: %s",
matchId, homeTeam, homeCorners, awayTeam, awayCorners, result);
matchHistory.add(record);
System.out.println("✅ 比赛记录已保存!");
System.out.println(record);
}
// 判断获胜方
private static String determineWinner(String homeTeam, String awayTeam,
int homeCorners, int awayCorners) {
if (homeCorners > awayCorners) return homeTeam;
if (awayCorners > homeCorners) return awayTeam;
return "平局";
}
// 显示历史记录
private static void showHistory() {
if (matchHistory.isEmpty()) {
System.out.println("暂无比赛记录!");
return;
}
System.out.println("\n=== 历史比赛记录 ===");
int totalHomeCorners = 0;
int totalAwayCorners = 0;
int homeWins = 0;
int awayWins = 0;
int draws = 0;
for (String record : matchHistory) {
System.out.println(record);
// 统计(简化版)
if (record.contains("获胜方:")) {
String result = record.substring(record.indexOf("获胜方:") + 4).trim();
if (result.equals("平局")) {
draws++;
}
}
}
System.out.println("\n=== 总统计 ===");
System.out.println("总比赛场次: " + matchHistory.size());
System.out.println("平局场次: " + draws);
}
}
使用说明
- 版本1:最简单的控制台交互,直接输入两队角球数,程序即时判断领先方。
- 版本2:包含完整的比赛流程模拟,可以分轮次记录角球,实时显示比分。
- 版本3:高级功能,支持多场比赛记录和历史统计。
运行示例(版本1)
=== 角球统计系统 ===
请输入主队角球数: 8
请输入客队角球数: 5
=== 统计结果 ===
主队角球数: 8
客队角球数: 5
总角球数: 13
🏆 主队角球领先!
这些程序可以根据实际需求进行修改,比如增加角球时间记录、特定球员角球统计等功能,您想要哪个版本,或者需要其他功能吗?