package Universidad;
public class Estudiante{
    //Propiedades
    private String nombre;
    private int edad;
    private String direccion;
    private String telefono;
    
    //Constructor 1
    public Estudiante(){
        this("",0,"","");
       /* nombre = "";
        edad = 0;
        direccion = "";
        telefono = "";*/
    }
    //Constructor 2
    public Estudiante(String valorNombre, int valorEdad, String valorDireccion, String valorTelefono){
        nombre = valorNombre;
        edad = valorEdad;
        direccion = valorDireccion;
        telefono = valorTelefono;
    }
    //Setters
    public void setNombre(String valorNombre){
        nombre = valorNombre;
    }
    public void setEdad(int valorEdad){ 
        edad = valorEdad;
    }
    public void setDireccion(String valorDireccion){
        direccion = valorDireccion;
    }
    public void setTelefono(String valorTelefono){
        telefono = valorTelefono;
    }
    //Getters
    public String getNombre(){
        return nombre;
    }
    public int getEdad(){
        return edad;
    }
    public String getDireccion(){
        return direccion;
    }
    public String getTelefono(){
        return telefono;
    }
}   
package Universidad;
public class Curso{
    //varibles
    private String nombre;
    private String tematica;
    private String carrera;
   //Asignamos facultades segun numero (1):Ingenieria (2):Humanidades (3):Medicina (=!):No registrado o invalida
    private int facultad;
    
    //contructor1
    public Curso(){
        this("","","",0);
    }
    //constructor2
    public Curso(String valorNombre, String valorTematica, String valorCarrera, int valorFacultad){
        nombre = valorNombre;
        tematica = valorTematica;
        carrera = valorCarrera;
        facultad = valorFacultad;
    }
    //Setters
    public void setNombre(String valorNombre){
        nombre = valorNombre; 
    }
    public void setTematica(String valorTematica){
        tematica = valorTematica;
    }
    public void setCarrera(String valorCarrera){
        carrera = valorCarrera;
    }
    public void setFacultad(int valorFacultad){
        facultad = valorFacultad;
    }
    //Setters
    public String getNombre(){
        return nombre;
    }
    public String getTematica(){
        return tematica;
    }
    public String getCarrera(){
        return carrera;
    }
    public int getFacultad(){
        return facultad;
    }
}
package Universidad;
public class Matricula{
    //propiedades 
    private int semestre;
    private int año;
    private double nota;
    private Estudiante student;
    private Curso course;
    
    //constructor
    
    public Matricula(){ 
       // this(0,0,0.0,null,null);
       semestre=0;
       año=0;
       nota=0.0;
       student=null;
       course=null;
    }
    //constructor2
    public Matricula(int valSemestre, int valAño, double valNota, Estudiante objStudent, Curso objCourse){
        semestre = valSemestre;
        año = valAño;
        nota = valNota;
        student = new Estudiante(objStudent.getNombre(), objStudent.getEdad(), objStudent.getDireccion(), objStudent.getTelefono());
        course = new Curso(objCourse.getNombre(), objCourse.getTematica(), objCourse.getCarrera(), objCourse.getFacultad());
    }
    //Setters
    public void setSemestre(int valSemestre){
        semestre = valSemestre;
    }
    public void setAño(int valAño){
        año = valAño;
    }
    public void setNota(double valNota){
        nota = valNota;
    }
    public void setStudent(Estudiante valStudent){
        student = valStudent;
    }
    public void setCourse( Curso valCourse){
        course = valCourse;
    }
    //Getters
    public int getSemestre(){
        return semestre;
    }
    public int getAño(){
        return año;
    }
    public double getNota(){
        return nota;
    }
    public Estudiante getStudent(){
        return student;
    }
    public Curso getCourse(){
        return course;
    }
    
    public void getMatricula(){
        //declaramos variables locales
        String datosMatricula;
        int datoFacultad = course.getFacultad();
        String nomFacultad="";
        //Asignamos facultades segun numero (1):Ingenieria (2):Humanidades (3):Medicina (4):Arquitectura (5):Artes (=!):No registrado o invalida
        if (datoFacultad > 0){
          switch(datoFacultad){
            case 1: nomFacultad ="Ingenieria";
                    break;
            case 2: nomFacultad ="Humanidades";
                    break;
            case 3: nomFacultad ="Medicina";
                    break;
            case 4: nomFacultad ="Arquitectura";
                    break;
            case 5: nomFacultad = "Artes";
                    break;
            default : nomFacultad = "No registrada";
          }
        }else{
            System.out.println("Facultad invalida");
            
        }
        //traemos datos de Estudiante
        
        String nomStudent = student.getNombre();
        int edadStudent = student.getEdad();
        String dirStudent = student.getDireccion();
        String telStudent = student.getTelefono(); 
        
        
        
        
       
        //Traemos datos de Curso
        String nomCourse = course.getNombre();
        String temaCourse = course.getTematica();
        String carreraCourse = course.getCarrera();
        int facultadCourse = course.getFacultad();
        
        //Mostramos la info
         System.out.println("\n\n");
         System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
         System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
         System.out.println("DATOS DE MATRICULA DEL ESTUDIANTE "+"\"" + nomStudent.toUpperCase() + "\"" + " DE LA FACULTAD DE: "+"\"" + nomFacultad.toUpperCase() +"\"");
         System.out.println("\nNOMBRE: " + nomStudent);
         System.out.println("EDAD: " + edadStudent);
         System.out.println("DIRECCIÓN: " + dirStudent);
         System.out.println("TELEFONO: " + telStudent);
         System.out.println("\n" + "DATOS DE CURSO ");
         System.out.println("NOMBRE: " + nomCourse);
         System.out.println("TEMATICA: " + temaCourse);
         System.out.println("PLAN: " + carreraCourse);
         
         //Mostramos información final
         System.out.println("\n" + "DATOS DE FINAL DE CURSO ");
         System.out.println("AÑO: " + año);
         System.out.println("SEMESTRE: " + semestre);
         System.out.println("NOTA: " + nota);
      
    }
}
package Universidad;
import java.util.Scanner;
public class CapturaDatos{
    String datoStr;
    int datoInt;
    double datoDbl;
    Scanner datoIngresado =null;
    
    public String capturaStr(){
         datoIngresado=new Scanner(System.in);
         datoStr = datoIngresado.nextLine();
         return datoStr;
    }
    public int capturaInt(){
        datoIngresado= new Scanner(System.in);
        datoInt = datoIngresado.nextInt();
        return datoInt;
    }
    public double capturaDbl(){
        datoIngresado = new Scanner(System.in);
        datoDbl = datoIngresado.nextDouble();
        return datoDbl;
    }  
    
}package Universidad;
import java.util.Scanner;
public class MainUniversidad{
    
    //METODO MAIN
    public static void main (String[]args){
        
         //DATOS  POR CONSOLA//
                
        //VARIABLES
        
        Estudiante estudiante;
        Curso curso;
        Matricula matricula;
        CapturaDatos capDato;
        
        
        //Llamado de clase para capturar Strings
        
        capDato = new CapturaDatos();
         //////////////////////////////////////////////////////////////
        
        //CAPTURAMOS DATOS DE ESTUDIANTE POR CONSOLA
        
        System.out.println("\nINGRESE DATOS DE ESTUDIANTE: ");
        
        System.out.println("NOMBRE: ");
        //Scanner nomIngresado = new Scanner(System.in);
        String nom = capDato.capturaStr();
        //String nom=nomIngresado.nextLine();
        
        System.out.println("EDAD: ");
        int edad = capDato.capturaInt();
        /*Scanner edadIngresado = new Scanner(System.in);
        int edad=edadIngresado.nextInt();*/
        
        System.out.println("DIRECCION: ");
        //Scanner dirIngresado = new Scanner(System.in);
        //String direccion=dirIngresado.nextLine();
        String direccion = capDato.capturaStr();
        
        System.out.println("TELEFONO: ");
        //Scanner telIngresado = new Scanner(System.in);
        //String telefono=telIngresado.nextLine();
        String telefono = capDato.capturaStr();
        //
        
        //CREAMOS OBJETO ESTUDIANTE
        
        
        /*===================
         * //Constructor Auxiliar
        estudiante = new Estudiante();
        
        //ESTABLECEMOS VALORES PARA VARIABLES DE ESTUDIANTE USANDO METODOS Setters
        
        estudiante.setNombre(nom); 
        estudiante.setEdad(edad);
        estudiante.setDireccion(direccion);
        estudiante.setTelefono(telefono); ============*/
        
        //Constructor con parametros
        estudiante = new Estudiante(nom,edad,direccion,telefono);
        
        //OBTENEMOS Y MOSTRAMOS VALORES DE VARIABLES DE ESTUDIANTE USANDO METODOS Getters
        System.out.println("\n");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("LOS DATOS INGRESADOS SON: ");
        System.out.println("NOMBRE: " + estudiante.getNombre());
        System.out.println("EDAD: " + estudiante.getEdad());
        System.out.println("DIRECCION: " + estudiante.getDireccion());
        System.out.println("TELEFONO: " + estudiante.getTelefono());  
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        
         //////////////////////////////////////////////////////////////
             
        //CAPTURAMOS DATOS DE CURSO POR CONSOLA
        
            
        System.out.println("\nINGRESE DATOS DE CURSO: ");
         
        System.out.println("NOMBRE: ");
        //Scanner nom2Ingresado = new Scanner(System.in);
        // String nom2=nom2Ingresado.nextLine();
        String nom2 = capDato.capturaStr();
        
        System.out.println("TEMATICA: ");
        //Scanner temaIngresado = new Scanner(System.in);
        //String tema=temaIngresado.nextLine();
        String tema = capDato.capturaStr();
        
        System.out.println("CARRERA: ");
        //Scanner carreraIngresado = new Scanner(System.in);
        //String carrera=carreraIngresado.nextLine();
        String carrera = capDato.capturaStr();
        //Menu de selección para facultad      
        System.out.println("FACULTAD: ");
        
        System.out.println("+MENU:_(Ingrese un numero)+");
        System.out.println("+-------------------------+");
        System.out.println("| Ingenieria:_______ (1)  |");
        System.out.println("| Humanidades:_______(2)  |");
        System.out.println("| Medicina:__________(3)  |");
        System.out.println("| Arquitectura:______(4)  |");
        System.out.println("| Artes:_____________(5)  |");
        System.out.println("+-------------------------+");
        //Scanner facultadIngresado = new Scanner(System.in);
        //int facultad=facultadIngresado.nextInt();
        int facultad = capDato.capturaInt();
        
        //
         //CREAMOS OBJETO CURSO
        
         /*===========================
          * 
          //Constructor Auxiliar
        curso = new Curso();
        
        //ESTABLECEMOS VALORES PARA VARIABLES DE CURSO USANDO METODOS Setters
        
        curso.setNombre(nom2); 
        curso.setTematica(tema);
        curso.setCarrera(carrera);
        curso.setFacultad(facultad);
         ========================================== */
         
        //Constructor con parametros
        
        curso = new Curso(nom2,tema,carrera,facultad);
        
        //OBTENEMOS Y MOSTRAMOS VALORES DE VARIABLES DE CURSO USANDO METODOS Getters
        System.out.println("\n");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("LOS DATOS INGRESADOS SON: ");
        System.out.println("NOMBRE: " + curso.getNombre());
        System.out.println("TEMA: " + curso.getTematica());
        System.out.println("CARRERA: " + curso.getCarrera());
        System.out.println("FACULTAD: " + curso.getFacultad());
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        
         //////////////////////////////////////////////////////////////         
         
         //CAPTURAMOS DATOS DE MATRICULA POR CONSOLA
         
        System.out.println("\nINGRESE DATOS DE MATRICULA: ");
         
        System.out.println("SEMESTRE: (1) o (2)");
        //Scanner semIngresado = new Scanner(System.in);
        //int semestre=semIngresado.nextInt();
        int semestre = capDato.capturaInt();
        
        System.out.println("AÑO: ");
        //Scanner añoIngresado = new Scanner(System.in);
        //int año=añoIngresado.nextInt();
        int año = capDato.capturaInt();
        
        System.out.println("NOTA: ");
        //Scanner notaIngresado = new Scanner(System.in);
        //double nota=notaIngresado.nextDouble();
        double nota = capDato.capturaDbl();        
        //CREAMOS OBJETO MATRICULA
        /*============================
        //Constructor Auxiliar
        matricula = new Matricula();
        //ESTABLECEMOS VALORES PARA VARIABLES DE MATRICULA USANDO METODOS SETTERS
        matricula.setSemestre(semestre);
        matricula.setAño(año);
        matricula.setNota(nota);
        matricula.setStudent(estudiante);
        matricula.setCourse(curso);
        ========================================*/
        
        //Constructor con parametros
        
        matricula = new Matricula(semestre,año,nota,estudiante,curso);
        
         //OBTENEMOS Y MOSTRAMOS VALORES DE VARIABLES DE MATRICULA USANDO METODOS Getters
        System.out.println("\n");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 
        System.out.println("LOS DATOS INGRESADOS SON: ");
        System.out.println("SEMESTRE: " + matricula.getSemestre());
        System.out.println("AÑO: " + matricula.getAño());
        System.out.println("NOTA: " + matricula.getNota());
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        //LLAMAMOS AL METODO getMatricula
        
        matricula.getMatricula();   
    }
    
}        //OBTENEMOS Y MOSTRAMOS VALORES DE VARIABLES DE ESTUDIANTE USANDO METODOS Getters
        System.out.println("\n");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("LOS DATOS INGRESADOS SON: ");
        System.out.println("NOMBRE: " + estudiante.getNombre());
        System.out.println("EDAD: " + estudiante.getEdad());
        System.out.println("DIRECCION: " + estudiante.getDireccion());
        System.out.println("TELEFONO: " + estudiante.getTelefono());  
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");          //Constructor Auxiliar
        curso = new Curso();
        
        //ESTABLECEMOS VALORES PARA VARIABLES DE CURSO USANDO METODOS Setters
        
        curso.setNombre(nom2); 
        curso.setTematica(tema);
        curso.setCarrera(carrera);
        curso.setFacultad(facultad);
         ========================================== */
         
        //Constructor con parametros
        
        curso = new Curso(nom2,tema,carrera,facultad);