链接列表,学生到主题

时间:2017-06-12 03:12:00

标签: java arrays linked-list

我正在尝试注册学生和科目,然后将学生添加到某个科目。所有这些都使用Java中的链接列表。

到目前为止,我可以添加学生和科目,并显示他们的列表,但我无法“链接”他们并显示学生正在学习什么科目。

代码在这里:

$('.itemview').click(function (e) {
    e.preventDefault();
    var uid = $(this).data('id');
    $.ajax({
        type: "POST",
        url: "resources/controllers/get.php",
        data: 'id='+uid,
        dataType: "json",
        success: function (data) {
            if (data.success) {
                console.log(data.result);
                console.log(data.result.id);
            } else {
                alert("error");
            }
        }
    });
});
package examenfinal;

/**
 *
 * @author USUARIO
 */
public class Alumno {
    private int ID;
    private String Nombre;
    private int Carne;

    public Alumno(int Id, String nombre, int carne) {
        this.ID = Id;
        this.Nombre = nombre;
        this.Carne = carne;
    }

    public int getID() {
        return ID;
    }

    public void setID(int Id) {
        this.ID = Id;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String nombre) {
        this.Nombre = nombre;
    }

    public int getCarne() {
        return Carne;
    }

    public void setCarne(int carne) {
        this.Carne = carne;
    }

    @Override
    public String toString() {
        return "Alumno{" + "ID=" + ID + ", Nombre=" + Nombre + ", Carne=" + Carne + '}';
    }


}
package examenfinal;
import java.util.LinkedList;
/**
 *
 * @author USUARIO
 */
public class Curso {
    private int Codigo;
    private String Nombre;
    private int Ciclo;
    private int Año;
    private LinkedList<Alumno> Asignar;

    public Curso() {
    }


    public Curso(int codigo, String nombre, int ciclo, int año) {
        this.Codigo = codigo;
        this.Nombre = nombre;
        this.Ciclo = ciclo;
        this.Año = año;
    }

    public int getCodigo() {
        return Codigo;
    }

    public void setCodigo(int Codigo) {
        this.Codigo = Codigo;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public int getCiclo() {
        return Ciclo;
    }

    public void setCiclo(int Ciclo) {
        this.Ciclo = Ciclo;
    }

    public int getAño() {
        return Año;
    }

    public void setAño(int Año) {
        this.Año = Año;
    }

    public void RegristrarAlumno(int carne, String nombre, int id){
        Asignar.add(new Alumno(carne, nombre, id));
    }

    public LinkedList<Alumno> getAsignar() {
        return Asignar;
    }    
}
package examenfinal;
import java.util.LinkedList;
/**
 *
 * @author USUARIO
 */
public class Universidad {
    private LinkedList<Alumno> Inscritos;
    private LinkedList<Curso> Cursos;


    public Universidad()
    {
        Inscritos = new LinkedList<>();
        Cursos = new LinkedList<>();
    }            


    public void Crear_Curso(int cod_curso, String nombre, int ciclo, int año){
        this.Cursos.add(new Curso(cod_curso, nombre, ciclo, año));
    }
    public void Crear_Alumno(int id, String nombre, int carne){
        this.Inscritos.add(new Alumno(id, nombre, carne));
    }
    public void Asignar_Alumno_a_Curso(Curso curso, Alumno alumno){
        curso.RegristrarAlumno(0, alumno.getNombre(), 0);
    }
    public LinkedList<Curso> getCursos(){
        return Cursos;
    }
    public LinkedList<Alumno> getInscritos(){
        return Inscritos;
    }
}
package examenfinal;
import java.util.LinkedList;
import java.util.Scanner;
import java.util.*;
/**
 *
 * @author USUARIO
 */
public final class InterfaceConsola {
    private Alumno alumno1;
    private Curso curso1;
    private Universidad universidad1;
    private Scanner in= new Scanner(System.in);        
    private int Opcion;

    public void CrearCurso(){
        System.out.println("INFORMACION DEL CURSO");

        int Id;
        String Nombre; 
        int Ciclo;
        int Año;

        System.out.println("CODIGO: ");
        Id=(in.nextInt());
        System.out.println("NOMBRE: ");
        Nombre = (in.next());
        System.out.println("CICLO: ");
        Ciclo = (in.nextInt());
        System.out.println("AÑO: ");
        Año = (in.nextInt());

        universidad1.Crear_Curso(Id, Nombre, Ciclo, Año);

    }

    public void CrearAlumno(){
        System.out.println("\nINGRESE LA INFORMACION DEL ALUMNO");
        System.out.println("\nID: ");
        int Id;
        String Nombre;
        int Carne;

        Id = (in.nextInt());
        System.out.println("\nNOMBRE: ");
        Nombre = (in.next());
        System.out.println("\nNO. CARNE: ");
        Carne = (in.nextInt());
        universidad1.Crear_Alumno(Id, Nombre, Carne);



    }
    public void MostrarCursos()
    {
        System.out.println("CURSOS REGISTRADOS: ");
        LinkedList<Curso> Cursos = universidad1.getCursos();



        Iterator it =Cursos.iterator();
        while (it.hasNext())                   
        {
            Curso cursoActual = (Curso) it.next();
            System.out.println(cursoActual.getNombre());
        }

    }

    public void MostrarAlumnos()
    {
        System.out.println("ALUMNOS REGISTRADOS: ");
        LinkedList<Alumno> Alumnos = universidad1.getInscritos();

        Iterator it =Alumnos.iterator();
        while (it.hasNext())                   
        {
            Alumno AlumnoActual = (Alumno) it.next();
            System.out.println(AlumnoActual.getNombre());
        }

    }

    public void AsignarAlumnos(){
    }

    public int Menu()
    {

       System.out.println("UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA");
       System.out.println("\tMENU");
       System.out.println("\n1.   INGRESAR ALUMNO");
       System.out.println("2.   MOSTRAR ALUMNOS INSCRITOS");
       System.out.println("3.   CREAR CURSO");
       System.out.println("4.   MOSTRAR CURSOS");
       System.out.println("5.   ASIGNAR ALUMNOS POR CURSO");
       System.out.println("6.   MOSTRAR ALUMNOS POR CURSO");
       System.out.println("7.   SALIR");
       System.out.println("SELECCIONE UNA OPCION: ");
       return in.nextInt();

    }

   public InterfaceConsola(){       
       universidad1= new Universidad();
   }

   public void Operacion()
   {
     int opcion = Menu();
       while (opcion!= 7)
       {
           if (opcion == 1)
               CrearAlumno();

           if (opcion == 2)
               MostrarAlumnos();

           if (opcion == 3)
               CrearCurso();

           if (opcion == 4)
               MostrarCursos(); 

           if (opcion == 5)
               AsignarAlumnos(); 

           opcion = Menu();
       }
   }
}

2 个答案:

答案 0 :(得分:0)

您需要重构Curso以接受现有的Alumno

public void RegristrarAlumno(Alumno alumno){
   Asignar.add(alumno);
}   

您的InterfaceConsola#AsignarAlumnos下一步,您必须要求学生身份证明, 从LinkedList中检索学生。

public void AsignarAlumnos(){
   System.out.println("\nINGRESE LA ID DEL ALUMNO");
   int alumnoId = in.nextInt();
   System.out.println("\nINGRESE LA ID DEL CURSO");
   int cursoId = in.nextInt();
   List<Alumno> insrictos = universidad1.getInscritos();
   Alumno alumno = null;
   for(Iterator<Alumno> iteratorDelInstrictos = instritos.iterator(); iteratorDelInsritos.hasNext();){
      Alumno testAlumno = iteratorDelInsritos.next();
      if(testAlumno.getId() == alumnoId ){
          alumno = testAlumno;
          break;
      }
   }

   if(alumno == null){
      System.out.println("Alumno not found);
      return;
   }

   Curso curso = null;
   for(Iterator<Curso> iteratorDelCursos = universidad.getCursos().iterator(); iteratorDelCursos.hasNext();){
      Curso testCurso = iteratorDelCursos.next();
      if(testCurso.getCodigo() == cursoId){
          curso = testCurso;
          break;
      }
   }
   if(curso == null){
      System.out.println("Curso not found);
      return;
   }
   curso.RegristrarAlumno(alumno);

此外,您还需要遵循Java命名准则(所有变量都是小写),并为迭代器使用泛型。

答案 1 :(得分:0)

对这个问题的理解不多并考虑 -

  

Alumno必须是学生,Curso可能是主题

每个Curso似乎都附加了一个Alumno列表。

private LinkedList<Alumno> Asignar

要修改/创建此列表,您需要

private Universidad universidad1 = new Universidad();
universidad1.getCursos().get(i).getAsignar().add(new Alumno());

其中i是您愿意更新的Curso的索引,您可以将new Alumno()替换为要添加到的Alumno实例Curso中的列表。