Я занимаюсь программным проектом, который выглядит следующим образом:
Система, которая обрабатывает регистрацию студентов.При регистрации вы должны указать имя и фамилию, идентификационный номер, адрес, телефон, адрес электронной почты и код из 2 уроков, чтобы зарегистрироваться.Это должно быть сохранено в LinkedList.
Поскольку каждый узел в LinkedList может хранить ОДНУ данные, я решил пойти еще дальше.Используя этот ответ в качестве основы, я делаю изменение, вместо того, чтобы хранить данные 8 учеников для каждого ученика 8 в 8 последовательных узлах для каждого зачисленного ученика, я создал объект с 8 атрибутами, который хранит 8 данныхрегистрации каждого учащегося, поэтому, когда вы хотите удалить учащегося, просто удалите узел, содержащий объект, вместо удаления 8 последовательных узлов для каждого удаляемого учащегося.
Идея прекрасно работает, когда я добавляю учащегосяоднако данные об объекте, а затем об узле LinkedList, когда мне нужно показать на экране всех студентов, - это когда техника не работает.
Теоретически с помощью методов итератора .hasNext () и .Next () список будет повторяться и показывать на экране содержимое объектов, хранящихся в узлах, и это происходит ... но в хеше вместо строки (что мне нужно).Таким образом, на экране вместо того, чтобы отображать что-то вроде
Angel Pérez 15956228 7274205 skyx26@yahoo.com Caracas
Carolina Rojas 13508200 6253241 caro_caro27@hotmail.com Maracaibo
, я получаю
PaqueteDeDatos@158b649
PaqueteDeDatos@127734f
После долгих поисков мне сказали (здесь), что это происходит потому, что
И печатается материал "... @ ...", потому что это то, что вам дает версия toString по умолчанию.Если вы хотите что-то красивое, вам придется переопределить метод toString () в вашем PaqueteDeDatos
классе
Проблема в том, что я не могу использовать итератор для отображения содержимого всех узлов нав то же время, чтобы сделать переопределение .toString ()
.
Помогите мне с этим, пожалуйста, Мне нужно отобразить содержимое узлов связанного списка в виде строки, а не в виде хэша .
Пожалуйста, пожалуйста, объясните мне как можно проще, что мне нужно сделать, чтобы решить эту проблему, я не очень понимаю Java, я не могу купить книгу, чтобы понять ее, или пойти в публичную библиотеку, чтобы получить ее.У меня нет друзей, которые пишут в java, поэтому я не могу никого попросить о помощи, и мне нужно сделать это в течение следующих 24 часов.
И, пожалуйста, будьте конструктивны и добры.Мне не нужно, чтобы меня отшлепали, потому что я не следую соглашениям и не захожу на сайт java и не слежу за учебниками, прежде чем начинать кодировать в java.На самом деле я все это знаю, но это спешная ситуация, и я бегаю вслепую, пытаясь пройти этот урок, потому что мой учитель программирования совсем не учил меня НИЧЕГО.
Я использую код ниже (ТОЛЬКО ВАРИАНТЫ)1, 4 и 5 РАБОТ):
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();
LinkedList<PaqueteDeDatos> ListaDeAlumnos = new LinkedList<PaqueteDeDatos>();
while (true) {
for (int i=0; i<25; ++i) System.out.println();
MenuPrincipal();
Scanner CapturaDeDatos = new Scanner(System.in);
System.out.print ("Introduzca su opcion: ");
char Opcion = CapturaDeDatos.next().charAt(0);
if (Opcion !='1' && Opcion !='2' && Opcion !='3' && Opcion !='4' && Opcion !='5') {
System.out.println("Opcion invalida. Por favor introduzca nuevamente su eleccion...");
Pausa();
}
if (Opcion =='1') {
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();
}
// if (Opcion =='2') {
//
// }
// if (Opcion =='3') EliminarAlumno();
if ((int) Opcion =='4') {
Iterator Iterador = ListaDeAlumnos.iterator();
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 (Opcion =='5') System.exit(0);
}
}
// Metodo para la pausa en pantalla
public static void Pausa() {
try {
Thread.sleep(5000);
}
catch (InterruptedException ex) {
}
}
// Metodo para el menu principal
public 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 ();
}
}