2011-02-07 17 views
0

JavaでLinkedListを作成する必要があります。私はすべてのノードで、8つのデータアイテムが保存されているので、次のサブジェクトがそのノードにその8つのデータアイテムを保存するときに保存します。Java LinkedListノードに複数のデータ項目を格納して表示する

私はthis答えを使用してこれをどうやって行うのか、それは正しいと思いますが、オプション4を使用するとリストには表示されません。

ありがとうございました。

import java.util.*; 

class PaqueteDeDatos 
{ 
    String Nombre; 
    String Apellido; 
    String Cedula; 
    String Direccion; 
    String Telefono; 
    String CorreoElectronico; 
    String Intensivo1; 
    String Intensivo2; 

    public PaqueteDeDatos(String a, String b, String c, String d, String e, String f, String g, String h) { 
     Nombre = a; 
     Apellido = b; 
     Cedula = c; 
     Direccion = d; 
     Telefono = e; 
     CorreoElectronico = f; 
     Intensivo1 = g; 
     Intensivo2 = h; 
    } 
} 

public class Proyecto{ 

    public static void main(String[] args) { 
     System.out.println ("┌──────────────────────────────────────────────────────────────────┐"); 
     System.out.println ("│        Manejo de listas dinamicas en Java          │"); 
     System.out.println ("├──────────────────────────────────────────────────────────────────┤"); 
     System.out.println ("│Aplicacion que controla la informacion asociada a estudiante a inscribirse en un posible curso intensivo│"); 
     System.out.println ("└──────────────────────────────────────────────────────────────────┘"); 
     //Pausa(); 
     for (int i=0; i<25; ++i) System.out.println(); 
     LinkedList<PaqueteDeDatos> ListaDeAlumnos = new LinkedList<PaqueteDeDatos>(); 
     Iterator Iterador = ListaDeAlumnos.iterator(); 
     MenuPrincipal(); 
     Scanner CapturaDeDatos = new Scanner(System.in); 
     System.out.print ("Introduzca su opcion: "); 
     char Opcion = CapturaDeDatos.next().charAt(0); 
     if ((int) Opcion !=53 && (int) Opcion !=52 && (int) Opcion !=51 && (int) Opcion !=50 && (int) Opcion !=49) { 
      System.out.println("Opcion invalida. Por favor introduzca nuevamente su eleccion..."); 
      Pausa(); 
      for (int i=0; i<25; ++i) System.out.println(); 
      MenuPrincipal(); 
      System.out.print ("Introduzca su opcion: "); 
      Opcion = CapturaDeDatos.next().charAt(0); 
     } 
     if ((int) Opcion ==49) { 
      for (int i=0; i<25; ++i) System.out.println(); 
      System.out.print ("Introduzca el nombre del alumno: "); 
      String Nombre = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca el apellido del alumno: "); 
      String Apellido = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca el numero de cedula del alumno: "); 
      String Cedula = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca la direccion de habitacion del alumno: "); 
      String Direccion = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca el telefono de contacto del alumno: "); 
      String Telefono = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca el correo electronico del alumno: "); 
      String CorreoElectronico = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.println ("A continuacion introduzca los intensivos a cursar por el alumno, basandose en la tabla superior."); 
      System.out.println ("Tenga en cuenta que solo se pueden inscribir MAXIMO 2 intensivos. Para evitar retrazos en el inicio"); 
      System.out.println ("de los intensivos, procure que los intensivos escogidos por el alumno no choquen entre si"); 
      System.out.println ("por tener los mismos horarios. Introduzca 00 (2 ceros) luego del primer intensivo, si el alumno solo"); 
      System.out.println ("va a cursar un intensivo..."); 
      System.out.println(); 
      System.out.print ("Introduzca el codigo del intensivo seleccionado por el alumno: "); 
      String Intensivo1 = CapturaDeDatos.next(); 
      System.out.println(); 
      System.out.print ("Introduzca el codigo del intensivo seleccionado por el alumno: "); 
      String Intensivo2 = CapturaDeDatos.next(); 
      System.out.println(); 
      PaqueteDeDatos Alumno = new PaqueteDeDatos (Nombre,Apellido,Cedula,Direccion,Telefono,CorreoElectronico,Intensivo1,Intensivo2); 
      ListaDeAlumnos.add(Alumno); 
      System.out.println ("Alumno inscrito exitosamente."); 
      System.out.println ("El sistema regresara al menu principal en 5 segundos..."); 
      Pausa(); 
      for (int i=0; i<25; ++i) System.out.println(); 
      MenuPrincipal(); 
      System.out.print ("Introduzca su opcion: "); 
      Opcion = CapturaDeDatos.next().charAt(0); 
     } 
//  if ((int) Opcion ==50) { 
// 
//  } 
    //  if ((int) Opcion ==51) EliminarAlumno(); 
     if ((int) Opcion ==52) { 
      while (Iterador.hasNext()) 
       System.out.println (Iterador.next()); 
      System.out.println ("Listado de alumnos mostrado exitosamente."); 
      System.out.println ("El sistema regresara al menu principal en 5 segundos..."); 
      Pausa(); 
      for (int i=0; i<25; ++i) System.out.println(); 
      MenuPrincipal(); 
      System.out.print ("Introduzca su opcion: "); 
      Opcion = CapturaDeDatos.next().charAt(0); 
     } 
     if ((int) Opcion ==53) System.exit(0); 

    } 

    // Metodo para la pausa en pantalla 
    private static void Pausa() { 
     try { 
      Thread.sleep(5000); 
     } 
     catch (InterruptedException ex) { 
     } 
    } 

     // Metodo para el menu principal 
    private static void MenuPrincipal() { 
     System.out.println ("╔════════════════════╗"); 
     System.out.println ("║   Menu Principal  ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║        ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║  Inscribir Alumno (1) ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║  Modificar Alumno (2) ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║  Eliminar Alumno  (3) ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║ Mostrar Alumnos Inscritos (4) ║"); 
     System.out.println ("╠════════════════════╣"); 
     System.out.println ("║  Salir del sistema (5) ║"); 
     System.out.println ("╚════════════════════╝"); 
     System.out.println(); 
    } 

} 
+0

1)変数名は小文字で始まります。 2)intにキャストしてアスキー値と比較する代わりに、実際の文字に 'Opcion'を単に比較してください。 3)あなたの実際の質問が何であるか、どこに問題があるのか​​もあまり明確ではありません。 – unholysampler

+0

1.あなたは正しいですが、私は自分のコードを理解できるようにそのようにコードします。 2.ありがとう、私はそれを忘れてしまった。 3.私が必要とするのは、6つの学生(各ノードとして)を追加することです。各自が8つのデータ項目(名、姓、SSN、住所、電話番号、電子メール、2つのレッスンの2つのコード6名の学生を追加した後、オプション4に進み、すべての学生とその個人データを表示する必要があります(6ノードすべてに含まれる8つのデータ項目すべてを表示する必要があります)。ノード内のデータ項目を削除し、ノード全体を削除することもできます... – Ashir

+0

* "自分は正しいですが、自分のコードを理解できるようにコードを作成しています" * - これは悪い練習です。人々はあなたのコードを理解することができます –

答えて

0

ご質問は本当に分かりません。しかし、ListaDeAlumnosのリストに何も表示されていないように思われる理由は、には何も入れていないということです。

要素をリストに入れたい場合は、add,insertまたはreplaceのいずれかの方法を使用する必要があります。詳細については、List javadocsまたはtutorial Javaコレクションの使用を参照してください。

+0

あなたはかなり正直な人です、ごめんなさい、私の間違い。Javaでコーディング18時間後にも、めまぐるしく感じるようになり、1行か2行を追加することを忘れてしまいます。 'ListaDeAlumnos'リストに' ListaDeAlumnos.add(Alumno);を追加するとリストに追加されますが、メニューのオプション4を選択すると、スクリーン上ではヒンジではなく、(イテレータを使用して)クラッシュします。 Iteratorの代わりに 'System.out.println(ListaDeAlumnos.getLast());'を使用した場合、私は "PaqueteDeDatos @ 1fdc96c"を取得します。もちろん、ノードの中に入れたものではありません。 – Ashir

+0

これは、イテレータを作成した後にリストを変更している可能性が高いためです。 (ConcurrentModificationExceptionが発生します)。そして、 "... @ ..."のものは、デフォルトのバージョンの 'toString'があなたに与えるものなので、印刷されます。きれいなものが必要な場合は、 'PaqueteDeDatos'クラスの' toString() 'メソッドをオーバーライドする必要があります。 –

+0

さて、私はクラッシュを解決しましたが、私はまだ... @ ...事を取り除くことはできません。私は本当にJavaを憎んでいると言いましたか?真剣にも、あなたが何を意味するのか理解できませんでした。 "何かきれいなものが必要ならば、あなたのPaqueteDeDatosクラスのtoString()メソッドをオーバーライドする必要があります" _ – Ashir

関連する問題