0

我必须设计一个带有 GUI 的小型课后俱乐部管理系统(在开始时就已经设计好了)。该系统应该执行一些功能: - 添加学生, - 添加俱乐部, - 将学生添加到指定的俱乐部。当用户点击一个俱乐部时,它应该列出所有加入该俱乐部的学生。另一方面,当用户点击学生时,它应该列出学生加入的所有俱乐部。前两个功能已完成并正常工作。但是,我正在努力将学生添加到指定的俱乐部。

4

3 回答 3

1

根据给定的标准,

对该方法的给定评论是:(1)俱乐部和(2)学生必须已经添加到数据库中,并且(3)学生之前必须没有被添加到俱乐部。如果不满足这些条件,则该方法不应执行任何操作并返回 false。如果满足,则将学生添加到俱乐部,并且该方法返回 true 。

public boolean addPupilToClub(String clubName, String firstName, String lastName) {
    String studentID = firstName + " " + lastName;
    if (clubs.indexOf(clubName) == -1   // (1) the clubName  does not exist
        || pupils.indexOf(studentID) == -1)  // (2) OR the pupil does not exist {
          return false;
    } 

    //the rest is pseudo code

    else if (<<(3) the specified club already contains the student>>) {
          return false;
    } else { 
      //student never added to the club before
          <<insert code that adds student to club>>

          //additional check whether club is already included in master list (say, pupilsInClub?)
          //if not, add club to master list

          return true;
    }
}

理想情况下,如果您想打印出俱乐部及其学生的列表,则应该有一个俱乐部(包含学生)的主列表,例如pupilsInClub,类型为 List<Club>。然后你可以迭代pupilsInClub每个俱乐部,利用课堂上的一些方法Club来转储它的学生。

注意:您还必须确保A尚未将俱乐部添加到pupilsInClub. 如果俱乐部 A 已存在于 中pupilsInClub,只需将新学生添加到俱乐部 A。否则,您还必须将俱乐部 A 添加到pupilsInClub

于 2013-03-17T01:08:44.160 回答
0

您可能应该维护类Pupil内部的列表Club。所以在里面Club

private List<Pupil> pupils;

以及添加Pupil到此列表的方法:

public void addPupil(Pupil p) {
    pupils.add(p);
}

在该addPupilToClub方法中,这是您将 a 添加Pupil到 a 的方式Club

Club c = new Club(clubName);
Pupil p = new Pupil(firstName, lastName);
c.addPupil(p);

请记住pupilsClub构造函数中进行初始化。

于 2013-03-16T23:53:33.793 回答
0

我想你可能会因为ifaddPupilToClub. 将其分解为嵌套语句将允许您对每个语句进行评论:

public boolean addPupilToClub(String clubName, String firstName, String lastName) {
    if (clubs.indexOf(clubName) != -1) {   // the clubName exists
        if (pupils.indexOf(firstName + " " + lastName) != -1) { // the pupil exists
            if (newList.indexOf(firstName + " " + lastName)==-1)) {  // the pupil isn't in newList
                Club c=new Club(clubName);
                Pupil p = new Pupil(firstName,lastName);
                newList.add(p.getFullName());
                pupilsInClub.add(newList);
                removeDuplicates();
                System.out.println(pupilsInClub);

一旦我们这样做了,我认为在你发现俱乐部和学生已经存在之后,你会更容易看到你正在创建一个新的俱乐部和一个新的学生。这看起来像一个错误。

于 2013-03-17T00:05:44.737 回答