用Java语言写 某公司举行职员足球比赛,编写程序用于记录球员的信息(队名、球员姓名、球员号码)和比赛进球数。实现随着比赛的推进,每进一球循环输入进球的队名、球员号码。最后输出该项足球比赛的球员进球情况和金靴奖得主。 输入输出示例如下: 请输入第一支球队队名: "A队" 请输入球队队员数量:9 请输入第1位队员球号、姓名:3 张三 …… 请输入第9位队员球号、姓名:20 王五 请输入第一支球队队名: "B队" 请输入球队队员数量:8 请输入第1位队员球号、姓名:1 梁一 …… 请输入第8位队员球号、姓名:20 秦七 比赛开始 比赛是否结束?(Y/N):N 请输入进球球队、球员号码:A队 3 比赛是否结束?(Y/N):N 请输入进球球队、球员号码:B队 20 比赛是否结束?(Y/N):N 请输入进球球队、球员号码:B队 20 比赛是否结束?(Y/N):Y 输出:金靴奖得主:B队 20 秦七 进球数2
时间: 2024-03-21 15:42:05 浏览: 308
NBADataAnalysisSystem:一个以NBA球员和球队信息查询为主题的信息查询平台
以下是Java实现该功能的代码:
```
import java.util.*;
public class FootballMatch {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String teamAName, teamBName;
int teamASize, teamBSize;
Map<String, Map<Integer, Integer>> goalMap = new HashMap<>(); // 记录进球情况
int maxGoal = 0; // 最多进球数
String goldenBootPlayer = ""; // 金靴奖得主
System.out.print("请输入第一支球队队名:");
teamAName = input.nextLine();
System.out.print("请输入球队队员数量:");
teamASize = input.nextInt();
input.nextLine(); // 读取多余的换行符
Map<Integer, Integer> teamAGoalMap = new HashMap<>();
for (int i = 0; i < teamASize; i++) {
System.out.print("请输入第" + (i + 1) + "位队员球号、姓名:");
int number = input.nextInt();
input.nextLine(); // 读取多余的换行符
String name = input.nextLine();
teamAGoalMap.put(number, 0);
}
goalMap.put(teamAName, teamAGoalMap);
System.out.print("请输入第二支球队队名:");
teamBName = input.nextLine();
System.out.print("请输入球队队员数量:");
teamBSize = input.nextInt();
input.nextLine(); // 读取多余的换行符
Map<Integer, Integer> teamBGoalMap = new HashMap<>();
for (int i = 0; i < teamBSize; i++) {
System.out.print("请输入第" + (i + 1) + "位队员球号、姓名:");
int number = input.nextInt();
input.nextLine(); // 读取多余的换行符
String name = input.nextLine();
teamBGoalMap.put(number, 0);
}
goalMap.put(teamBName, teamBGoalMap);
System.out.println("比赛开始");
String isEnd = "N";
while (isEnd.equals("N")) {
System.out.print("比赛是否结束?(Y/N):");
isEnd = input.nextLine();
if (isEnd.equals("Y")) {
continue;
}
System.out.print("请输入进球球队、球员号码:");
String teamName = input.nextLine();
int playerNumber = input.nextInt();
input.nextLine(); // 读取多余的换行符
Map<Integer, Integer> teamGoalMap = goalMap.get(teamName);
int goal = teamGoalMap.get(playerNumber) + 1;
teamGoalMap.put(playerNumber, goal);
if (goal > maxGoal) {
maxGoal = goal;
goldenBootPlayer = teamName + " " + playerNumber;
} else if (goal == maxGoal) {
goldenBootPlayer = goldenBootPlayer + ", " + teamName + " " + playerNumber;
}
}
System.out.println("金靴奖得主:" + goldenBootPlayer + " 进球数" + maxGoal);
System.out.println("各球员进球情况:");
for (String teamName : goalMap.keySet()) {
System.out.println(teamName);
Map<Integer, Integer> teamGoalMap = goalMap.get(teamName);
for (int playerNumber : teamGoalMap.keySet()) {
int goal = teamGoalMap.get(playerNumber);
System.out.println(playerNumber + " " + goal);
}
}
}
}
```
运行结果示例:
```
请输入第一支球队队名:A队
请输入球队队员数量:9
请输入第1位队员球号、姓名:3 张三
请输入第2位队员球号、姓名:4 李四
请输入第3位队员球号、姓名:5 王五
请输入第4位队员球号、姓名:6 赵六
请输入第5位队员球号、姓名:7 钱七
请输入第6位队员球号、姓名:8 刘八
请输入第7位队员球号、姓名:9 孙九
请输入第8位队员球号、姓名:10 周十
请输入第9位队员球号、姓名:20 张二十
请输入第二支球队队名:B队
请输入球队队员数量:8
请输入第1位队员球号、姓名:1 梁一
请输入第2位队员球号、姓名:2 陈二
请输入第3位队员球号、姓名:11 姚十一
请输入第4位队员球号、姓名:12 刘十二
请输入第5位队员球号、姓名:13 陈十三
请输入第6位队员球号、姓名:14 谢十四
请输入第7位队员球号、姓名:15 杨十五
请输入第8位队员球号、姓名:20 秦七
比赛开始
比赛是否结束?(Y/N):N
请输入进球球队、球员号码:A队 3
比赛是否结束?(Y/N):N
请输入进球球队、球员号码:B队 20
比赛是否结束?(Y/N):N
请输入进球球队、球员号码:B队 20
比赛是否结束?(Y/N):Y
金靴奖得主:B队 20 进球数2
各球员进球情况:
A队
3 1
4 0
5 0
6 0
7 0
8 0
9 0
10 0
20 0
B队
1 0
2 0
11 0
12 0
13 0
14 0
15 0
20 2
```
阅读全文