2016-12-30 4 views
-2

私はこのことを練習しました。生徒のオブジェクトのリストを指定した クラスに保存するCourseManager5クラスを作成します。各生徒にはID、名前、スコアがあります。 enter image description here 方法は以下のとおりです:オブジェクトの配列-java-

  • CourseManager5:属性を初期化し、作成コンストラクタクラスは、ユーザが 学生を追加し、学生のデータを表示することができます...ここでUMLダイアグラムであります
  • getNStudents:現在の生徒の数を返します。
  • addStudent:与えられたオブジェクトを持つ生徒をリストに追加します。コースがいっぱいになると、 "エラー:コースが満員です"というエラーメッセージが表示されます。
  • displayStudent:インデックスiの生徒のすべてのデータを表示します。 は、次の手順を実行しますmainメソッドでTestCourseManager5と呼ばれるメインクラスを書く:
    • それはCourseManager5オブジェクトを作成します。
    • 次に、ユーザーからID、名前、およびスコアを読み取って3人の学生を追加します。
    • 次に、クラス内のすべての生徒を表示します。

私はプログラムを書く..しかし、私はこの方法displayStudentとの問題を抱えて..私はなぜありません!

もう1つは方法ですaddStudent正しいですか?

ここに私のプログラムです:

import java.util.Scanner; 
public class TestCourseManager5 { 
    public static void main(String[] args) { 
     Scanner s = new Scanner(System.in); 
     courseManager5 cm = new courseManager5(); 
     int num =0; 
     for(int i =0; i < 3;i++){ 
      System.out.println("Please enter the ID, name, and score of student "+num+":"); 
      int id = s.nextInt(); 
      String name = s.next(); 
      double score = s.nextDouble(); 
      student su = new student(id, name, score); 
      cm.addStudent(su); 
      num++;} 

     System.out.println("Student are: "); 
     for(int i=0;i<cm.getNStudent();i++){ 
     cm.displayStudent(i); 
     }}} 

public class student { 
    private int id; 
    private String name; 
    private double score;     
    public student(int id, String name, double score){ 
     this.id = id; 
     this.name = name; 
     this.score = score;} 

    public int getId(){ 
     return id;} 

    public String getName(){ 
     return name;} 

    public double getScore(){ 
     return score;}} 

public class courseManager5 { 
private student []students; 
private int nStudent; 
public static int MAX_SIZE = 100; 

public courseManager5(){ 
    students = new student[MAX_SIZE]; 
    nStudent = 0;} 

/addStudentはリストにthegivenオブジェクトと学生が追加されます。コースがいっぱいの場合は、 それはエラーメッセージを出力します。「ERROR:COURSEがいっぱいになっている」私の方法であり、正しい/あなたは配列に渡された学生を追加することなく、あなたのaddStudent方法で

public void addStudent (student newStudent){ 
    if(nStudent < MAX_SIZE) 
     nStudent++; 
    else 
     System.out.println("ERROR: COURSE IS FULL");} 

public int getNStudent(){ 
    return nStudent;} 

public void displayStudent(int i){// my problem here ! 
     System.out.println(students[i].getId()+", "+students[i].getName()+", "+students[i].getScore()); 
    } 
} 
+2

いや、何が問題なのですか? – ifly6

+0

私はdisplayStudentメソッドに問題があります。なぜ私は分かりませんか? – jeedo

+2

問題は何ですか? – ifly6

答えて

0

あなたの問題はaddStudent()にあります。あなたは学生をアレイに追加したことはありません。したがって、displayStudent()ではnullになります。試してみてください:

public void addStudent (student newStudent){ 
    if(nStudent < MAX_SIZE) 
     students[nStudent++] = newStudent; 
    else 
     System.out.println("ERROR: COURSE IS FULL");} 
+1

それは働いています..あまりにもありがとう – jeedo

0

?。これを試してください:

students[nStudent] = newStudent; 
+0

ありがとう.. ..それは働いた..私は来週試験がある..あなたはオブジェクトの配列で私を助けることは、YouTubeのどのチャンネルを知っている..私はそれについて少し知っているので? ...もう一度感謝します.. – jeedo

+0

それがうまくいくならば、答えに投票して答えとしてそれを受け入れます。 Javaの配列を理解するには、こちら[こちら](http://www.javawithus.com/tutorial/array-of-objects)とこちら[こちら](http://docs.oracle.com/)をご覧ください。com/javase/specs/jls/se7/html/jls-10.html)も同様です。 – Jayfray

関連する問題