世界杯目前正在进行中,但组织者非常健忘。
他们需要一个系统来帮助他们跟踪比赛的进展,并确定哪些球队在小组中获胜,以及接下来应该进行哪些比赛。
定义一个名为FootballTeam的类。这个类将用于跟踪比赛小组赛阶段的球队进度。
这意味着我们需要能够记住或计算所有相关的统计数据。
FootballTeam类中的方法应该基于以下描述实现:
public String getName() - 返回团队的名称
public int getWins() - 返回球队获胜的场次
public int getLosses() - 返回球队输掉的场次
public int getDraws() - 返回球队平局的场次
public int getPoints() - 返回球队的得分(胜3分,平1分,负0分)
public int getGoalsFor() - 返回该队在所有比赛中的进球数
public int getGoalsAgainst() - 返回其他球队在与该队比赛时的进球数
public int addGame(Game g) - 添加该队进行的一场比赛的结果为了在测试系统中运行,您还必须添加具有以下签名的构造函数:
public FootballTeam(String name)。
以下为Java语言实现示例代码和解释,望采纳:
public class FootballTeam {
private final String name;
private int wins;
private int losses;
private int draws;
private int goalsFor;
private int goalsAgainst;
public FootballTeam(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getWins() {
return wins;
}
public int getLosses() {
return losses;
}
public int getDraws() {
return draws;
}
public int getPoints() {
return wins * 3 + draws;
}
public int getGoalsFor() {
return goalsFor;
}
public int getGoalsAgainst() {
return goalsAgainst;
}
public int getGoalDifference() {
return goalsFor - goalsAgainst;
}
public int addGame(Game game) {
if (game.getHomeTeam().equals(this.name)) {
// 更新主场比赛统计数据
goalsFor += game.getHomeTeamGoals();
goalsAgainst += game.getAwayTeamGoals();
if (game.getHomeTeamGoals() > game.getAwayTeamGoals()) {
wins++;
} else if (game.getHomeTeamGoals() < game.getAwayTeamGoals()) {
losses++;
} else {
draws++;
}
} else if (game.getAwayTeam().equals(this.name)) {
// 更新客场比赛统计数据
goalsFor += game.getAwayTeamGoals();
goalsAgainst += game.getHomeTeamGoals();
if (game.getAwayTeamGoals() > game.getHomeTeamGoals()) {
wins++;
} else if (game.getAwayTeamGoals() < game.getHomeTeamGoals()) {
losses++;
} else {
draws++;
}
}
}
}
上述代码中,FootballTeam类包含了一些记录团队信息的字段,例如团队名称、胜场次数、平局次数、负场次数、进球数等。
通过构造函数可以创建一个FootballTeam对象,并通过公共方法访问团队信息。例如,可以使用getName方法获取团队名称,使用getWins方法获取团队获胜场次数等。
此外,FootballTeam类还包含了一个addGame方法,用于向该团队添加一场比赛结果。在这个方法中,它会判断该团队是主场队还是客场队,然后根据比赛结果更新团队的统计数据。
import java.util.ArrayList;
import java.util.List;
class Game {
/**
* 进球数
*/
private int jinQiuShu;
/**
* 输球数
*/
private int shuQiuShu;
public Game(int jinQiuShu, int shuQiuShu) {
this.jinQiuShu = jinQiuShu;
this.shuQiuShu = shuQiuShu;
}
public int getJinQiuShu() {
return jinQiuShu;
}
public int getShuQiuShu() {
return shuQiuShu;
}
}
interface Team {
String getName();
int getWins();
int getLosses();
int getDraws();
int getPoints();
int getGoalsFor();
int getGoalsAgainst();
int addGame(Game g);
}
public class FootballTeam implements Team {
private String name;
private List<Game> games = new ArrayList<>();
public FootballTeam(String name) {
this.name = name;
}
@Override
public String getName() {
return this.name;
}
@Override
public int getWins() {
int count = 0;
for (int i = 0; i < games.size(); i++) {
final Game game = games.get(i);
if (game.getJinQiuShu() > game.getShuQiuShu()) {
count++;
}
}
return count;
}
@Override
public int getLosses() {
int count = 0;
for (int i = 0; i < games.size(); i++) {
final Game game = games.get(i);
if (game.getJinQiuShu() < game.getShuQiuShu()) {
count++;
}
}
return count;
}
@Override
public int getDraws() {
int count = 0;
for (int i = 0; i < games.size(); i++) {
final Game game = games.get(i);
if (game.getJinQiuShu() == game.getShuQiuShu()) {
count++;
}
}
return count;
}
@Override
public int getPoints() {
return this.getWins() * 3 + this.getDraws();
}
@Override
public int getGoalsFor() {
int sum = 0;
for (int i = 0; i < games.size(); i++) {
sum += games.get(i).getJinQiuShu();
}
return sum;
}
@Override
public int getGoalsAgainst() {
int sum = 0;
for (int i = 0; i < games.size(); i++) {
sum += games.get(i).getShuQiuShu();
}
return sum;
}
@Override
public int addGame(Game g) {
this.games.add(g);
return this.games.size();
}
}