用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-20 10:39:45 浏览: 116
好的,以下是Java程序,可以实现记录球员信息和进球情况,以及求出金靴奖得主:
```java
import java.util.*;
class Player {
String teamName; // 球员所属队名
String name; // 球员姓名
int number; // 球员号码
int goals; // 进球数
Player(String teamName, String name, int number) {
this.teamName = teamName;
this.name = name;
this.number = number;
this.goals = 0;
}
public String toString() {
return teamName + " " + number + " " + name + " 进球数:" + goals;
}
public void addGoal() {
goals++;
}
}
class FootballGame {
ArrayList<Player> players;
FootballGame() {
players = new ArrayList<>();
}
public void addPlayer(String teamName, String name, int number) {
players.add(new Player(teamName, name, number));
}
public void addGoal(String teamName, int number) {
for (Player p : players) {
if (p.teamName.equals(teamName) && p.number == number) {
p.addGoal();
break;
}
}
}
public Player getTopScorer() {
Player topScorer = players.get(0);
for (int i = 1; i < players.size(); i++) {
if (players.get(i).goals > topScorer.goals) {
topScorer = players.get(i);
}
}
return topScorer;
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
FootballGame game = new FootballGame();
System.out.print("请输入第一支球队队名:");
String teamNameA = sc.nextLine();
System.out.print("请输入球队队员数量:");
int playerCountA = sc.nextInt();
sc.nextLine();
for (int i = 0; i < playerCountA; i++) {
System.out.printf("请输入第%d位队员球号、姓名:", i + 1);
int number = sc.nextInt();
String name = sc.next();
game.addPlayer(teamNameA, name, number);
sc.nextLine();
}
System.out.print("请输入第二支球队队名:");
String teamNameB = sc.nextLine();
System.out.print("请输入球队队员数量:");
int playerCountB = sc.nextInt();
sc.nextLine();
for (int i = 0; i < playerCountB; i++) {
System.out.printf("请输入第%d位队员球号、姓名:", i + 1);
int number = sc.nextInt();
String name = sc.next();
game.addPlayer(teamNameB, name, number);
sc.nextLine();
}
System.out.println("比赛开始");
boolean isEnd = false;
while (!isEnd) {
System.out.print("比赛是否结束?(Y/N):");
String choice = sc.nextLine();
if (choice.equals("Y")) {
isEnd = true;
} else {
System.out.print("请输入进球球队、球员号码:");
String teamName = sc.next();
int number = sc.nextInt();
game.addGoal(teamName, number);
sc.nextLine();
}
}
Player topScorer = game.getTopScorer();
System.out.println("金靴奖得主:" + topScorer);
}
}
```
上述程序中,我们定义了`Player`类和`FootballGame`类,分别用于表示球员和比赛信息。`Player`类中定义了球员的属性和方法,`FootballGame`类中定义了比赛的信息和操作方法。
在`main`函数中,我们首先通过输入来录入两支球队的球员信息,并创建一个`FootballGame`对象。然后进入比赛循环,每次询问比赛是否结束,如果未结束,就输入进球的球员信息,并将进球数加一。最后输出金靴奖得主。
注意,为了方便起见,上述程序中没有进行输入的合法性检查,实际应用中需要根据需要进行完善。
阅读全文