首页新闻找找看学习计划

项目中相互协作的类的设计

0
悬赏园豆:10 [已关闭问题] 关闭于 2018-01-06 03:44

项目任务是要处理一个田径赛事的比赛结果。需要实现的功能包括:
1. 添加比赛项目
要求用户输入新比赛项目姓名和其允许尝试的次数,来添加比赛项目。大致如下
Command> add event
Event name: long jump
Attempts allowed: 3
Long jump added

2. 添加参赛者:
要求用户输入新参赛者姓名,其队伍名称和选手编号,来添加参赛者。大致如下
Command> add participant
First name: Ada
Last name: Wang
Number: 001
Team: Computing
Ada Lovelace from Computing with number 100 added

3. 添加结果
要求用户输入某选手编号,比赛项目名称和结果值来添加结果。大致如下
Command> add result
Number: 001
Event: long jump
Results for Ada Wang from Computing in long jump: 4.53

4. 输出某个参赛者的成绩单
要求用户输入某选手编号,来获取他在各个项目中的成绩。大致如下
Command> participant
Number: 001
Results for Ada Wang in 100 meters: 15.0
Results for Ada Wang in long jump: 0.0, 83.5, 52.0

5. 输出某个比赛项目的成绩单并按结果排序(成绩相同者名次相同,他们按字母顺序排)
Command> long jump
Results for Long jump
1 7,00 Ada Wang Computing
1 7,00 Alan Computing
1 7,00 Donald Sf
4 6,00 Joan Mash
4 6,00 William Sf
6 4,00 Tricia Sf

 

以上是功能要求。我根据要求设计了各个类的结构大致如下:


public class Participant {
private String firstName, lastName,team;
private int number;
private ArrayList<Result> results;
public Participant(String firstName, String lastName, String team, int number) {
}
get set 方法。。
}

public class Event {
private String name;
private int attemptsAllowed;
public Event1(String name,int attemptsAllowed) {
this.name=name;
this.attemptsAllowed=attemptsAllowed;
}
get set 方法。。
}


public class Result{
private Participant participant;
private int participantNumber;
private int participantName;
private Event event;
private double resultValue;


public Result(Participant participant, Event event, double resultValue) {
super();
this.participantNumber = participant.participantNumber;
this.participantName = participant.getParticipantName;
this.eventName = event.getEventName;
this.resultValue = resultValue;
}

根据要求,结果对象需要体现参赛者编号及姓名及队伍名称,还需要体现比赛项目Event类的eventName,这样就需要Result类有个构造函数的参数有这些因素,所以我就按上面的方式设计了及各类的结构。这样设计总觉得有点奇怪,好像ArrayList<Result> results不该设计在Participant类里,因为结果列表也涉及到Event类的eventName。另外,在Result类里存在getParticipantName和getParticipantNumber属性也很奇怪。本人java初学者大菜鸟,请能者大神不吝赐教指点迷津,非常感谢!

jinleiDev的主页 jinleiDev | 初学一级 | 园豆:142
提问于:2018-01-05 19:46
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册