Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ===++===
- //
- // OrtizOL
- //
- // ===--===
- /*============================================================
- //
- // Clase: Estudiante.cs
- //
- // Original en: http://goo.gl/icjgjg
- //
- // Propósito: Implementar la clase Estudiante del modelo
- // del mundo.
- //
- ============================================================*/
- using System;
- namespace ElEstudiante.Modelo
- {
- /// <summary>
- /// Representa la entidad Estudiante.
- /// </summary>
- public class Estudiante
- {
- #region Campos
- /// <summary>
- /// Apellido del estudiante.
- /// </summary>
- private String apellido;
- /// <summary>
- /// Código académico del estudiante.
- /// </summary>
- private int codigo;
- /// <summary>
- /// Conjunto de cursos en los que está matriculado el estudiante.
- /// </summary>
- private Curso[] cursos;
- /// <summary>
- /// Nombre del estudiante.
- /// </summary>
- private String nombre;
- #endregion
- #region Propiedades
- /// <summary>
- /// Establece y obtiene el apellido del estudiante.
- /// </summary>
- public String Apellido
- {
- get
- {
- return apellido;
- }
- set
- {
- apellido = value;
- }
- }
- /// <summary>
- /// Establece y obtiene el código del estudiante.
- /// </summary>
- public int Codigo
- {
- get
- {
- return codigo;
- }
- set
- {
- codigo = value;
- }
- }
- /// <summary>
- /// Establece y obtiene el nombre del estudiante.
- /// </summary>
- public String Nombre
- {
- get
- {
- return nombre;
- }
- set
- {
- nombre = value;
- }
- }
- #endregion
- #region Constructor
- /// <summary>
- /// Crea una instancia de estudiante con datos básicos.
- /// </summary>
- /// <param name="nombre">Nombre del estudiante.</param>
- /// <param name="apellido">Apellido del estudiante.</param>
- /// <param name="codigo">Código académico del estudiante.</param>
- public Estudiante(string nombre, string apellido, int codigo)
- {
- this.nombre = nombre;
- this.apellido = apellido;
- this.codigo = codigo;
- cursos = new Curso[5];
- }
- #endregion
- #region Métodos
- /// <summary>
- /// Asigna un curso al estudiante.
- /// </summary>
- /// <param name="curso">Curso a asignar al estudiante.</param>
- /// <returns>true si el curso fue asignado; en caso contrario, false.</returns>
- public bool AsignarCurso(Curso curso)
- {
- for (int c = 0; c < cursos.Length; ++c)
- {
- if (cursos[c] == null)
- {
- cursos[c] = curso;
- return true;
- }
- }
- return false;
- }
- /// <summary>
- /// Busca un curso a través de su código.
- /// </summary>
- /// <param name="codigoCurso">Código del curso.</param>
- /// <returns>Instancia del curso encontrado.</returns>
- public Curso BuscarCurso(string codigoCurso)
- {
- for (int c = 0; c < cursos.Length; ++c)
- {
- if (cursos[c] != null && cursos[c].CodigoCurso.Equals(codigoCurso))
- {
- return cursos[c];
- }
- }
- return null;
- }
- /// <summary>
- /// Obtiene el curso a través de su ID.
- /// </summary>
- /// <param name="id">ID del curso.</param>
- /// <returns>Instancia del curso.</returns>
- public Curso BuscarCurso(int id)
- {
- return cursos[id - 1];
- }
- /// <summary>
- /// Calcula el promedio de notas del estudiante.
- /// </summary>
- /// <returns>Promedio de notas de los cursos del estudiante.</returns>
- public double CalcularPromedioEstudiante()
- {
- double acumuladorCursos = 0.0;
- int totalCreditos = 0;
- for (int c = 0; c < cursos.Length; ++c)
- {
- if (cursos[c] != null)
- {
- if (cursos[c].Nota != 0.0)
- {
- totalCreditos += cursos[c].Creditos;
- acumuladorCursos += cursos[c].Nota * cursos[c].Creditos;
- }
- }
- }
- if (totalCreditos != 0)
- {
- return (acumuladorCursos / totalCreditos);
- }
- else
- {
- return acumuladorCursos;
- }
- }
- /// <summary>
- /// Determina si el estudiante se haya en prueba académica.
- /// </summary>
- /// <returns>true si el estudiante está en prueba académica; false en caso contrario.</returns>
- public bool EnPrueba()
- {
- if (CalcularPromedioEstudiante() < 3.25)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /// <summary>
- /// Determina si un determinado curso se haya en el pénsum.
- /// </summary>
- /// <param name="codigoCurso">Código del curso a buscar.</param>
- /// <returns>true si el curso se haya en el pénsum; false en caso contrario.</returns>
- public bool PensumIncluyeCurso(string codigoCurso)
- {
- if (BuscarCurso(codigoCurso) != null)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /// <summary>
- /// Determina si el estudiante tiene cupo diponible para matricular más cursos.
- /// </summary>
- /// <returns>true si el estudiante puede matricular otro curso, false en caso contrario.</returns>
- public bool TieneCursosCompletos()
- {
- for (int i = 0; i < cursos.Length; ++i)
- {
- if (cursos[i] == null)
- {
- return false;
- }
- }
- return true;
- }
- #endregion
- #region Puntos de extensión
- /// <summary>
- /// Punto de extensión no. 1.
- /// </summary>
- /// <returns>Respuesta del mensaje.</returns>
- public String PuntoExtension1()
- {
- return "Respuesta 1";
- }
- /// <summary>
- /// Punto de extensión no. 2.
- /// </summary>
- /// <returns>Respuesta del mensaje.</returns>
- public String PuntoExtension2()
- {
- return "Respuesta 2";
- }
- #endregion
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement