예제 #1
0
        static void Main(string[] args)
        {
            #region Enunciado
            //Desarrolle una clase llamada Asignatura que:
            //Tenga dos atributos privados, uno de tipo entero (el
            //identificador) y el otro de tipo decimal (la calificación).
            //Dicha clase tendrá un constructor con un parámetro de tipo
            //entero.
            //Tomando la clase SerHumano, diseñada en el ejercicio 41, se pide:
            //Modificarla para que sea abstracta y ‗padre‘ de las clases Alumno
            //y Profesor.
            //La clase Alumno tendrá tres atributos privados de tipo
            //Asignatura, un constructor con tres parámetros de tipo Asignatura
            //que inicialice los tres atributos.
            //La clase Profesor tendrá un método CalificarAlumno, que recibe un
            //parámetro de tipo Alumno y que no devuelve nada. Pondrá una
            //calificación aleatoria a cada una de las asignaturas del alumno,
            //para ello utilizar el método NextDouble de la clase Random.
            //Además tendrá un método llamado CalcularPromedio que recibe un
            //parámetro de tipo Alumno y devuelve un Double.
            //Por último, desarrollar una clase llamada Test, que en su método
            //Main:
            //Cree e inicialice tres Asignaturas.
            //Cree un Alumno con las tres Asignaturas.
            //Cree un Profesor que le ponga calificaciones al Alumno y
            //muestre por pantalla el promedio del Alumno.
            //Serializar a XML los objetos creados.
            #endregion

            //Cree e inicialice tres Asignaturas. LISTO
            //Cree un Alumno con las tres Asignaturas.
            //Cree un Profesor que le ponga calificaciones al Alumno y
            //muestre por pantalla el promedio del Alumno.
            //Serializar a XML los objetos creados.

            Asignatura mat    = new Asignatura(20);
            Asignatura lengua = new Asignatura(11);
            Asignatura compu  = new Asignatura(33);

            Alumno alumno1 = new Alumno(mat, lengua, compu);

            Profesor profe1 = new Profesor();
            profe1.CalificarAlumno(alumno1);
            Console.WriteLine("PROMEDIO:\n");
            Console.WriteLine(profe1.CalcularPromedio(alumno1));

            Console.ReadKey();
        }
예제 #2
0
        static void Main(string[] args)
        {
            #region Lo que pide
            //Cree e inicialice tres Asignaturas. LISTO
            //Cree un Alumno con las tres Asignaturas.
            //Cree un Profesor que le ponga calificaciones al Alumno y
            //muestre por pantalla el promedio del Alumno.
            //Serializar a XML los objetos creados.
            #endregion

            Asignatura Matematica      = new Asignatura();
            Asignatura Lengua          = new Asignatura();
            Asignatura EducacionFisica = new Asignatura();

            Alumno   unAlumno = new Alumno(Matematica, Lengua, EducacionFisica);
            Profesor unProfe  = new Profesor();


            unProfe.CalificarAlumno(unAlumno);
            Console.WriteLine("El Promedio es de: \n");
            Console.WriteLine(unProfe.CalcularPromedio(unAlumno));


            SerializadorXML(unAlumno.Asignatura1);
            SerializadorXML(unAlumno.Asignatura2);
            SerializadorXML(unAlumno.Asignatura3);

            SerializadorXML(unAlumno);
            SerializadorXML(unProfe);

            /*-----IMPORTANTE------
             * Si se realiza una interfaz no se debe colocar override ya que esta implicitamente
             * (solo se debe colocar la misma firma)
             * Si realizo abstracta la clase "padre", colocando un motod abstracto, obligo a las hijas que realicen lo mismo.
             * En este caso, la clase padre SerHumano tiene una interface para que no tenga que realizar en el main los metodos de
             * cada tipo de objeto.
             * Estariamos sumandole cosas a la clase Padre para asi que las hereden las hijas
             * DEBO TENER SI O SI UN CONSTRUCTOR SIN PARAMETROS LAS CLASES HIJAS si la clase padre es abstracta
             * TODAS LAS CLASES DEBEN SER PUBLIC SI TENGO LA PADRE ABSTRACTA
             * EN INTERFACES NO SE DEBE AGREGAR OVERRIDE NI MODIFICADORES
             */
        }
예제 #3
0
 public void CalificarAlumno()
 {
     this._asignatura1 = new Asignatura();
     this._asignatura2 = new Asignatura();
     this._asignatura3 = new Asignatura();
 }
예제 #4
0
 public Alumno(Asignatura asig1, Asignatura asig2, Asignatura asig3)
 {
     this._asignatura1 = asig1;
     this._asignatura2 = asig2;
     this._asignatura3 = asig3;
 }