2017-10-12 2 views
0

aufgerufen werden Ich habe ein Problem, dass, obwohl die Informationen eingegeben werden, wenn angezeigt wird (Option 6) zeigt es nicht die Informationen von Option 6. Ich fühle mich wie es, weil ich nicht kann füge super (courseName) in meine courseModule-Klasse ein. Jede Hilfe wird sehr geschätzt, krank lassen Sie alle relevanten Code unten.Strings werden nicht angezeigt, wenn sie an

AppMain Klasse

import java.util.*; 
public class AppMain { 
// ArrayList of students 
private static ArrayList<Student> studentList = new ArrayList<Student>(); 
// ArrayList of teachers 
private static ArrayList<Teacher> teacherList = new ArrayList<Teacher>(); 
// ArrayList of Modules 
private static ArrayList<CourseModule> ModuleList = new ArrayList<CourseModule>(); 


public static void main(String[] args) 
{ 
    menu(); 
} 

public static void menu() 
{ 




    int option = 0; 

    while(option != 7) { 

     Scanner in = new Scanner(System.in); 

     // Creates main menu 
     System.out.println("Choose an option."); 
     System.out.println("[1] Create student"); 
     System.out.println("[2] Display students"); 
     System.out.println("[3] Create Teacher"); 
     System.out.println("[4] Display Teachers"); 
     System.out.println("[5] Create Module"); 
     System.out.println("[6] Display Modules"); 
     System.out.println("[7] Exit"); 
     System.out.print("Option? "); 
     option = in.nextInt(); 

     // Switch case for dealing with choice 
     // Each case is braced {} so convinient variable names can be reused.. 
     // .. without fear of variables 'carrying over' 
     switch (option) { 
      case 1: { 
       String name; 
       int grade; 
       System.out.println("Enter name: "); 
       in.nextLine(); // Stops the program 'running' over the next line 
       name = in.nextLine(); 
       System.out.println("Enter grade: "); 
       grade = in.nextInt(); 
       if (grade <= 100 && grade >= 0) { 
        Student student = new Student(name, grade); 
        studentList.add(student); 
        //error message 
       } else { 
        System.out.println("Grade not in boundaries!\nUser not added \nEnter grade between 0-100."); 
       } 
       break; 
      } 
      case 2: { 
       Iterator<Student> itr = studentList.iterator(); 
       while (itr.hasNext()) { 
        Student student = itr.next(); 
        System.out.println(student.toString() + "\n"); 
       } 
       break; 
      } 
      case 3: { 
       String name; 
       System.out.println("Enter Teachers name: "); 
       in.nextLine(); 
       name = in.nextLine(); 
       Teacher teacher = new Teacher(name); 
       teacherList.add(teacher); 
       break; 
      } 
      case 4: { 
       // Iterators through the teachList ArrayList.. 
       // .. and prints each one with a line between 
       Iterator<Teacher> itr = teacherList.iterator(); 
       while (itr.hasNext()) { 
        Teacher teacher = itr.next(); 
        System.out.println(teacher.toString() + "\n"); 
       } 
       break; 
      } 
      case 5: { 

       String name; 
       String courseName; // defining module String 
       System.out.println("Enter Teachers name: "); 
       in.nextLine(); 
       name = in.nextLine(); 
       Teacher teacher = new Teacher(name); 
       teacherList.add(teacher); 
       System.out.println("Enter Module Name: "); 
       courseName = in.nextLine(); 
       CourseModule Module = new CourseModule(courseName, teacher); 
       ModuleList.add(Module); 
       break; 



      } 
      case 6: { 
       // Iterator<Teacher> itr = teacherList.iterator(); 
      // while (itr.hasNext()) { 
       //  Teacher teacher = itr.next(); 
      //  System.out.println(teacher.toString() + "\n"); 
      // } 
       Iterator<CourseModule> itr = ModuleList.iterator(); 
       while (itr.hasNext()) { 
        CourseModule Module = itr.next(); 
        System.out.println(Module.toString() + "\n"); 
       } 

Und herer die CourseModule Klasse

import java.util.*; 
public class CourseModule implements Course { 

String courseName; 
Teacher teacher; 
ArrayList<Student> students = new ArrayList<Student>(); 


public CourseModule (String courseName, Teacher teacher) { 

} 

@Override 
public void assignTeacher(Teacher teacher) { 


} 

@Override 
public void enrolStudent(Student student) { 

} 

Ich habe es ein Gefühl, mit dem courseModule öffentlichen courseModule zu tun, aber alles, was ich versucht habe nicht funktioniert, jede Hilfe ist sehr dankbar für 30 Minuten stecken geblieben und nirgendwo anders gefunden

+0

ist das eine Hausaufgabe? wenn es ist, bitte das Hausaufgaben-Tag – FrankK

+0

ein bisschen Arbeit von einem meiner Uni-Workshops, nur sah Ihre Bearbeitung, wusste nicht, dass eine Sache jetzt tun würde –

+0

ok, so zeigt es nicht die "[6] Display Modules "Teil oder der Teil unter dem Fall 6:? – FrankK

Antwort

3

Sie haben keinen Code in Ihrem Konstruktor, also ändern Sie zu

public CourseModule (String courseName, Teacher teacher) { 
    this.courseName = courseName; 
    this.teacher = teacher; 
} 

Sie Irgendwann brauchen

+0

Ich habe gerade diesen Dank hinzugefügt, aber jetzt, wenn Option 6 zurückgegeben wird, gibt es mir nicht die Namen der Lehrer oder den Namen des Curses, nur ein Hash? –

+0

Sie müssen eine benutzerdefinierte toString() - Methode erstellen, wenn Sie drucken möchten, was gedruckt werden soll. Ich zeige Ihnen ein Beispiel – FrankK

+0

@FrankK keine Sorgen! Ich habe gerade einen gemacht, vielen Dank für die Hilfe –

0
public class CourseModule implements Course { 

String courseName; 
Teacher teacher; 
ArrayList<Student> students = new ArrayList<Student>(); 


    public CourseModule (String courseName, Teacher teacher) { 
     this.courseName = courseName; 
     this.teacher = teacher; 
    } 

    @Override 
    public void assignTeacher(Teacher teacher) { 

    } 

    @Override 
    public void enrolStudent(Student student) { 

    } 

    public String toString(){ 
     // i don't know what method's are in your teacher class, so im just guessing here. 
     return courseName + " " + teacher.name; 
    } 
} 

Inorder auch in den anderen Methoden füllen Sie Istwerten aus der toString-Methode zu drucken, müssen Sie Ihre eigene toString Methode hinzufügen.

Verwandte Themen