本文目录导读:

我来为您创建一个Java案例,统计并比较两支球队的角球数,判断哪边领先。
方案1:基础控制台版本
import java.util.Scanner;
public class CornerKickStats {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("=== 角球数统计系统 ===");
System.out.print("请输入主队名称:");
String homeTeam = scanner.nextLine();
System.out.print("请输入客队名称:");
String awayTeam = scanner.nextLine();
// 初始化角球数
int homeCorners = 0;
int awayCorners = 0;
while (true) {
System.out.println("\n当前比分 - 角球数:");
System.out.println(homeTeam + ": " + homeCorners + " 个角球");
System.out.println(awayTeam + ": " + awayCorners + " 个角球");
System.out.print("\n输入:H(主队角球) A(客队角球) Q(退出):");
String input = scanner.nextLine().toUpperCase();
if (input.equals("Q")) {
break;
} else if (input.equals("H")) {
homeCorners++;
} else if (input.equals("A")) {
awayCorners++;
} else {
System.out.println("无效输入,请输入 H、A 或 Q");
}
}
// 输出最终结果
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("🤝 两队角球数持平!");
}
}
}
方案2:面向对象版本(更实用)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class FootballCornerTracker {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
// 创建比赛对象
Match match = createMatch();
// 开始比赛
match.startMatch();
// 显示最终结果
match.displayFinalResult();
}
private static Match createMatch() {
System.out.println("=== 足球角球数统计系统 ===");
System.out.print("请输入主队名称:");
String homeTeam = scanner.nextLine();
System.out.print("请输入客队名称:");
String awayTeam = scanner.nextLine();
return new Match(homeTeam, awayTeam);
}
}
// 比赛类
class Match {
private Team homeTeam;
private Team awayTeam;
private List<CornerEvent> cornerEvents = new ArrayList<>();
public Match(String homeName, String awayName) {
this.homeTeam = new Team(homeName);
this.awayTeam = new Team(awayName);
}
public void startMatch() {
System.out.println("\n比赛开始!");
while (true) {
displayCurrentStats();
System.out.print("\n操作:1-主队角球 2-客队角球 3-回滚 0-结束比赛:");
int choice = getIntInput();
if (choice == 0) {
break;
} else if (choice == 1) {
addCorner(homeTeam, awayTeam);
} else if (choice == 2) {
addCorner(awayTeam, homeTeam);
} else if (choice == 3) {
rollbackLastEvent();
} else {
System.out.println("无效操作,请重新选择");
}
}
}
private void addCorner(Team team, Team opponent) {
team.addCorner();
System.out.println("⚽ " + team.getName() + " 获得角球!");
// 实时判断领先情况
String leadingInfo = determineLeader();
System.out.println("📊 " + leadingInfo);
}
private void rollbackLastEvent() {
if (cornerEvents.isEmpty()) {
System.out.println("暂无事件可回滚");
return;
}
CornerEvent event = cornerEvents.remove(cornerEvents.size() - 1);
event.getTeam().removeCorner();
System.out.println("↩️ 已回滚:" + event.getTeam().getName() + " 的一个角球");
}
private void displayCurrentStats() {
System.out.println("\n--- 当前统计数据 ---");
System.out.printf("%-15s %d 个角球%n", homeTeam.getName(), homeTeam.getCorners());
System.out.printf("%-15s %d 个角球%n", awayTeam.getName(), awayTeam.getCorners());
}
public String determineLeader() {
int homeCorners = homeTeam.getCorners();
int awayCorners = awayTeam.getCorners();
if (homeCorners > awayCorners) {
return homeTeam.getName() + " 领先 " + (homeCorners - awayCorners) + " 个角球";
} else if (awayCorners > homeCorners) {
return awayTeam.getName() + " 领先 " + (awayCorners - homeCorners) + " 个角球";
} else {
return "双方角球数持平";
}
}
public void displayFinalResult() {
System.out.println("\n=========== 比赛最终统计 ===========");
System.out.printf("%-15s %d 个角球%n", homeTeam.getName(), homeTeam.getCorners());
System.out.printf("%-15s %d 个角球%n", awayTeam.getName(), awayTeam.getCorners());
System.out.println("总角球数:" + (homeTeam.getCorners() + awayTeam.getCorners()));
String leader = determineLeader();
if (leader.contains("持平")) {
System.out.println("🤝 结果:" + leader);
} else {
String[] parts = leader.split(" ");
System.out.println("🏆 结果:" + parts[0] + " 在角球数上领先!");
}
}
private int getIntInput() {
try {
return Integer.parseInt(scanner.nextLine());
} catch (NumberFormatException e) {
return -1;
}
}
// 内部事件类
private class CornerEvent {
private Team team;
public CornerEvent(Team team) {
this.team = team;
}
public Team getTeam() {
return team;
}
}
private void addCorner(Team team, Team opponent) {
team.addCorner();
cornerEvents.add(new CornerEvent(team));
}
}
// 队伍类
class Team {
private String name;
private int cornerCount;
public Team(String name) {
this.name = name;
this.cornerCount = 0;
}
public String getName() {
return name;
}
public int getCorners() {
return cornerCount;
}
public void addCorner() {
cornerCount++;
}
public void removeCorner() {
if (cornerCount > 0) {
cornerCount--;
}
}
}
方案3:带图形化界面版本(Swing GUI)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CornerKickGUI extends JFrame {
private JLabel homeLabel;
private JLabel awayLabel;
private JLabel statusLabel;
private int homeCorners = 0;
private int awayCorners = 0;
private String homeTeam = "主队";
private String awayTeam = "客队";
public CornerKickGUI() {
setTitle("角球数统计系统");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// 输入队伍名称
homeTeam = JOptionPane.showInputDialog("请输入主队名称:", "主队");
awayTeam = JOptionPane.showInputDialog("请输入客队名称:", "客队");
// 中间面板
JPanel centerPanel = new JPanel(new GridLayout(3, 1));
homeLabel = new JLabel(homeTeam + ": 0 个角球", SwingConstants.CENTER);
homeLabel.setFont(new Font("Arial", Font.BOLD, 18));
awayLabel = new JLabel(awayTeam + ": 0 个角球", SwingConstants.CENTER);
awayLabel.setFont(new Font("Arial", Font.BOLD, 18));
statusLabel = new JLabel("比赛开始!", SwingConstants.CENTER);
statusLabel.setFont(new Font("Arial", Font.PLAIN, 16));
statusLabel.setForeground(Color.BLUE);
centerPanel.add(homeLabel);
centerPanel.add(awayLabel);
centerPanel.add(statusLabel);
// 按钮面板
JPanel buttonPanel = new JPanel(new FlowLayout());
JButton homeButton = new JButton(homeTeam + " 角球");
JButton awayButton = new JButton(awayTeam + " 角球");
JButton resetButton = new JButton("重置");
homeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
homeCorners++;
updateDisplay();
}
});
awayButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
awayCorners++;
updateDisplay();
}
});
resetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
homeCorners = 0;
awayCorners = 0;
updateDisplay();
}
});
buttonPanel.add(homeButton);
buttonPanel.add(awayButton);
buttonPanel.add(resetButton);
add(centerPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
updateDisplay();
}
private void updateDisplay() {
homeLabel.setText(homeTeam + ": " + homeCorners + " 个角球");
awayLabel.setText(awayTeam + ": " + awayCorners + " 个角球");
if (homeCorners > awayCorners) {
statusLabel.setText("🏆 " + homeTeam + " 领先 " + (homeCorners - awayCorners) + " 个角球");
statusLabel.setForeground(Color.GREEN);
} else if (awayCorners > homeCorners) {
statusLabel.setText("🏆 " + awayTeam + " 领先 " + (awayCorners - homeCorners) + " 个角球");
statusLabel.setForeground(Color.GREEN);
} else {
statusLabel.setText("🤝 双方角球数持平");
statusLabel.setForeground(Color.ORANGE);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new CornerKickGUI().setVisible(true);
}
});
}
}
使用说明
控制台版用法:
- 输入主队和客队名称
- 输入 H 记录主队角球,输入 A 记录客队角球
- 输入 Q 结束比赛
- 系统自动判断哪边领先
GUI版特点:
- 可视化界面
- 实时更新数据
- 颜色提示领先状态
- 支持重置功能
运行方式:直接复制代码到Java编译器中运行即可,可以根据实际需求选择适合的版本。