Advertisement
Fhernd

Principal.cs

Aug 11th, 2014
2,115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.44 KB | None | 0 0
  1. // ===++===
  2. //
  3. //  OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: Principal.cs
  9. //
  10. // Original en: http://goo.gl/z2cUHW
  11. //
  12. // Propósito: Crear la ventana principal de la aplicación.
  13. //
  14. ============================================================*/
  15.  
  16. using System;
  17. using System.Collections;
  18. using System.ComponentModel;
  19. using System.Drawing;
  20. using System.Threading.Tasks;
  21. using System.Windows.Forms;
  22.  
  23. using ElEstudiante.Modelo;
  24.  
  25. namespace ElEstudiante.GUI
  26. {
  27.     public partial class Principal : Form
  28.     {
  29.         #region Componentes
  30.         /// <summary>
  31.         /// Control con los botones de operaciones de la aplicación.
  32.         /// </summary>
  33.         private ControlBotones controlBotones;
  34.         /// <summary>
  35.         /// Control para la visualización de los datos del estudiante.
  36.         /// </summary>
  37.         private ControlDatosEstudiante controlDatosEstudiante;
  38.         /// <summary>
  39.         /// Control para el registro de un estudiante en la Universidad.
  40.         /// </summary>
  41.         private ControlRegistroEstudiante controlRegistroEstudiante;
  42.         #endregion
  43.  
  44.         #region Campos
  45.         /// <summary>
  46.         /// Representa un curso.
  47.         /// </summary>
  48.         public Curso curso;
  49.         /// <summary>
  50.         /// Representa el estudiant.
  51.         /// </summary>
  52.         private Estudiante estudiante;
  53.         /// <summary>
  54.         /// Variable auxiliar para el código de un curso.
  55.         /// </summary>
  56.         public String codigoCurso;
  57.         /// <summary>
  58.         /// Variable auxiliar para la nota de un curso.
  59.         /// </summary>
  60.         public double nota;
  61.         #endregion
  62.  
  63.         #region Constructores
  64.         /// <summary>
  65.         /// Crea la ventana principal de la aplicación.
  66.         /// </summary>
  67.         public Principal()
  68.         {
  69.             InitializeComponent();
  70.             ConfiguracionComponentes();
  71.         }
  72.         #endregion
  73.  
  74.         #region Métodos
  75.         /// <summary>
  76.         /// Configura los componentes de interfaz esenciales de la aplicación.
  77.         /// </summary>
  78.         private void ConfiguracionComponentes()
  79.         {
  80.             controlBotones = new ControlBotones(this);
  81.             controlBotones.Location = new Point(0, 210);
  82.  
  83.             controlDatosEstudiante = new ControlDatosEstudiante();
  84.             controlDatosEstudiante.Location = new Point(0, 97);
  85.  
  86.             controlRegistroEstudiante = new ControlRegistroEstudiante(this);
  87.  
  88.             this.Controls.Add(controlRegistroEstudiante);
  89.             this.Controls.Add(controlDatosEstudiante);
  90.             this.Controls.Add(controlBotones);
  91.         }
  92.         /// <summary>
  93.         /// Registra un estudiante.
  94.         /// </summary>
  95.         public void RegistrarEstudiante()
  96.         {
  97.             string apellido = controlRegistroEstudiante.Apellido;
  98.             string codigo = controlRegistroEstudiante.Codigo;
  99.             string nombre = controlRegistroEstudiante.Nombre;
  100.  
  101.             try
  102.             {
  103.                 if (apellido.Equals("") && codigo.Equals("") && nombre.Equals(""))
  104.                 {
  105.                     MessageBox.Show(this, "Debe llenar todos los campos.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  106.                 }
  107.                 else
  108.                 {
  109.                     estudiante = new Estudiante(nombre, apellido, Int32.Parse(codigo));
  110.                     controlDatosEstudiante.Apellido = estudiante.Apellido;
  111.                     controlDatosEstudiante.Codigo = estudiante.Codigo.ToString();
  112.                     controlDatosEstudiante.Nombre = estudiante.Nombre;
  113.                     controlDatosEstudiante.Promedio = 0.0;
  114.  
  115.                     MessageBox.Show(this, "El estudiante ha sido registrado.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Information);
  116.                 }
  117.             }
  118.             catch(Exception)
  119.             {
  120.                 MessageBox.Show(this, "El valor del código debe ser numérico.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Error);
  121.             }
  122.         }
  123.         /// <summary>
  124.         /// Registra un curso al pénsum del estudiante.
  125.         /// </summary>
  126.         public void RegistrarCurso()
  127.         {
  128.             // Valida que se haya creado un estudiante en el sistema:
  129.             if (estudiante == null)
  130.             {
  131.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  132.             }
  133.             else if (estudiante.TieneCursosCompletos())
  134.             {
  135.                 MessageBox.Show(this, "Los cursos del estudiante están llenos.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  136.             }
  137.             else
  138.             {
  139.                 using(DialogoRegistroCurso drc = new DialogoRegistroCurso(this))
  140.                 {
  141.                     drc.ShowDialog(this);
  142.  
  143.                     if (drc.DialogResult == DialogResult.OK)
  144.                     {
  145.                         if (estudiante.PensumIncluyeCurso(curso.CodigoCurso))
  146.                         {
  147.                             MessageBox.Show(this, String.Format("Un curso de {0} ya ha sido asignado.", curso.CodigoCurso), "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  148.                         }
  149.                         else
  150.                         {
  151.                             estudiante.AsignarCurso(curso);
  152.                         }
  153.                     }
  154.                 }
  155.             }
  156.         }
  157.         /// <summary>
  158.         /// Determina si un curso está asignado al pénsum del estudiante actual.
  159.         /// </summary>
  160.         public void CursoEnPensum()
  161.         {
  162.             if (estudiante == null)
  163.             {
  164.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  165.             }
  166.             else
  167.             {
  168.                 using (DialogoCursoPensum dcp = new DialogoCursoPensum(this))
  169.                 {
  170.                     dcp.ShowDialog(this);
  171.  
  172.                     if (dcp.DialogResult == System.Windows.Forms.DialogResult.OK)
  173.                     {
  174.                         if (estudiante.PensumIncluyeCurso(codigoCurso))
  175.                         {
  176.                             MessageBox.Show(this, String.Format("El curso {0} está incluido en el pénsum.", codigoCurso), "Pénsum Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Information);
  177.                         }
  178.                         else
  179.                         {
  180.                             MessageBox.Show(this, String.Format("El curso {0} no está incluido en el pénsum.", codigoCurso), "Pénsum Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  181.                         }
  182.                     }
  183.                 }
  184.             }
  185.         }
  186.         /// <summary>
  187.         /// Determina si el estudiante se haya en prueba académica.
  188.         /// </summary>
  189.         public void EstudianteEnPrueba()
  190.         {
  191.             double promedio = 0.0;
  192.             bool estaEnPrueba = false;
  193.  
  194.             if (estudiante == null)
  195.             {
  196.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  197.             }
  198.             else
  199.             {
  200.                 promedio = estudiante.CalcularPromedioEstudiante();
  201.                 estaEnPrueba = estudiante.EnPrueba();
  202.  
  203.                 if (promedio == 0.0)
  204.                 {
  205.                     MessageBox.Show(this, "Debe registrar al menos la nota de un curso.", "Cálculo Promedio", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  206.                 }
  207.                 else
  208.                 {
  209.                     if (estaEnPrueba)
  210.                     {
  211.                         MessageBox.Show(this, "El estudiante se encuentra en prueba, `promedio < 3.25'.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  212.                     }
  213.                     else
  214.                     {
  215.                         MessageBox.Show(this, "El estudiante no se encuentra en prueba, `promedio >= 3.25'.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
  216.                     }
  217.                 }
  218.             }
  219.         }
  220.         /// <summary>
  221.         /// Registra una nota a determinado curso del pénsum del estudiante.
  222.         /// </summary>
  223.         public void RegistrarNotaCurso()
  224.         {
  225.             if (estudiante == null)
  226.             {
  227.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  228.             }
  229.             else
  230.             {
  231.                 using (DialogoRegistroNota drn = new DialogoRegistroNota(this))
  232.                 {
  233.                     drn.ShowDialog(this);
  234.  
  235.                     if (drn.DialogResult == System.Windows.Forms.DialogResult.OK)
  236.                     {
  237.                         curso.AsignarNota(nota);
  238.  
  239.                         double promedio = estudiante.CalcularPromedioEstudiante();
  240.  
  241.                         controlDatosEstudiante.Promedio = promedio;
  242.                     }
  243.                 }
  244.             }
  245.         }
  246.         /// <summary>
  247.         /// Ve el listado de cursos en el pénsum del estudiante.
  248.         /// </summary>
  249.         public void VerCursos()
  250.         {
  251.             if (estudiante == null)
  252.             {
  253.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  254.             }
  255.             else
  256.             {
  257.                 ArrayList cursosPensum = new ArrayList();
  258.  
  259.                 for (int i = 1; i <= 5; ++i)
  260.                 {
  261.                     if (estudiante.BuscarCurso(i) != null)
  262.                     {
  263.                         cursosPensum.Add(estudiante.BuscarCurso(i));
  264.                     }
  265.                 }
  266.  
  267.                 if (cursosPensum.Count != 0)
  268.                 {
  269.                     using (DialogoCursos dc = new DialogoCursos())
  270.                     {
  271.                         dc.CambiarListaCursos(cursosPensum);
  272.                         dc.ShowDialog(this);
  273.                     }
  274.                 }
  275.             }
  276.         }
  277.         #endregion
  278.  
  279.         #region Puntos de Extensión
  280.         /// <summary>
  281.         /// Punto de extensión no. 1.
  282.         /// </summary>
  283.         public void PuntoExtension1()
  284.         {
  285.             if (estudiante != null)
  286.             {
  287.                 MessageBox.Show(this, estudiante.PuntoExtension1(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
  288.             }
  289.             else
  290.             {
  291.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  292.             }
  293.         }
  294.         /// <summary>
  295.         /// Punto de extensión no. 2.
  296.         /// </summary>
  297.         public void PuntoExtension2()
  298.         {
  299.             if (estudiante != null)
  300.             {
  301.                 MessageBox.Show(this, estudiante.PuntoExtension2(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
  302.             }
  303.             else
  304.             {
  305.                 MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
  306.             }
  307.         }
  308.         #endregion
  309.     }
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement