GUIを使って小さな放課後クラブ管理システムを設計する必要があります(これは最初に設計されました)。システムはいくつかの機能を実行する必要があります。-瞳孔を追加する、-クラブを追加する、-指定されたクラブに瞳孔を追加する。ユーザーがクラブをクリックすると、クラブに登録されているすべての生徒が一覧表示されます。一方、ユーザーが生徒をクリックしたときに、学生が登録しているすべてのクラブをリストする必要があります。最初の2つの機能は実行され、正しく機能します。しかし、私は特定のクラブに生徒を追加するのに苦労しています。
3 に答える
与えられた基準に基づいて、
その方法に関する所与のコメントは次のとおりです。(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
。
おそらく、クラス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
おそらく初期化することを忘れないでください。
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);
これを行うと、クラブと生徒が既に存在することを発見した後、新しいクラブと新しい生徒を作成していることを簡単に確認できると思います。それは間違いのようです。