我必须设计一个带GUI的小型课后俱乐部管理系统(已在初学时设计)。系统应该执行一些功能: - 加一个瞳孔, - 加一个俱乐部, - 将瞳孔添加到指定的俱乐部。 当用户点击某个俱乐部时,它应该列出所有在俱乐部注册的学生。另一方面,它应列出学生在用户点击学生时注册的所有俱乐部。 前两个功能已完成并正常工作。但是,我正在努力将一名学生添加到指定的俱乐部。
答案 0 :(得分: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
。
答案 1 :(得分:0)
您应该在Pupil
课程中维护Club
列表。所以在Club
:
private List<Pupil> pupils;
将Pupil
添加到此列表的方法:
public void addPupil(Pupil p) {
pupils.add(p);
}
在addPupilToClub
方法中,您可以将Pupil
添加到Club
:
Club c = new Club(clubName);
Pupil p = new Pupil(firstName, lastName);
c.addPupil(p);
请记住在pupils
构造函数中初始化Club
。
答案 2 :(得分:0)
我认为您可能会在if
中使用如此大的addPupilToClub
条件而让自己感到困惑。将其分解为嵌套语句将允许您对每个语句进行评论:
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);
一旦我们这样做,我认为在你发现俱乐部和学生已经存在之后,你会更容易看到你正在创建一个新的俱乐部和一个新的学生。这看起来像是一个错误。