Created
August 11, 2014 13:46
-
-
Save Fhernd/a4e0a8705f213e778ced to your computer and use it in GitHub Desktop.
Ventana principal de la aplicación.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ===++=== | |
// | |
// OrtizOL | |
// | |
// ===--=== | |
/*============================================================ | |
// | |
// Clase: Principal.cs | |
// | |
// Original en: http://goo.gl/z2cUHW | |
// | |
// Propósito: Crear la ventana principal de la aplicación. | |
// | |
============================================================*/ | |
using System; | |
using System.Collections; | |
using System.ComponentModel; | |
using System.Drawing; | |
using System.Threading.Tasks; | |
using System.Windows.Forms; | |
using ElEstudiante.Modelo; | |
namespace ElEstudiante.GUI | |
{ | |
public partial class Principal : Form | |
{ | |
#region Componentes | |
/// <summary> | |
/// Control con los botones de operaciones de la aplicación. | |
/// </summary> | |
private ControlBotones controlBotones; | |
/// <summary> | |
/// Control para la visualización de los datos del estudiante. | |
/// </summary> | |
private ControlDatosEstudiante controlDatosEstudiante; | |
/// <summary> | |
/// Control para el registro de un estudiante en la Universidad. | |
/// </summary> | |
private ControlRegistroEstudiante controlRegistroEstudiante; | |
#endregion | |
#region Campos | |
/// <summary> | |
/// Representa un curso. | |
/// </summary> | |
public Curso curso; | |
/// <summary> | |
/// Representa el estudiant. | |
/// </summary> | |
private Estudiante estudiante; | |
/// <summary> | |
/// Variable auxiliar para el código de un curso. | |
/// </summary> | |
public String codigoCurso; | |
/// <summary> | |
/// Variable auxiliar para la nota de un curso. | |
/// </summary> | |
public double nota; | |
#endregion | |
#region Constructores | |
/// <summary> | |
/// Crea la ventana principal de la aplicación. | |
/// </summary> | |
public Principal() | |
{ | |
InitializeComponent(); | |
ConfiguracionComponentes(); | |
} | |
#endregion | |
#region Métodos | |
/// <summary> | |
/// Configura los componentes de interfaz esenciales de la aplicación. | |
/// </summary> | |
private void ConfiguracionComponentes() | |
{ | |
controlBotones = new ControlBotones(this); | |
controlBotones.Location = new Point(0, 210); | |
controlDatosEstudiante = new ControlDatosEstudiante(); | |
controlDatosEstudiante.Location = new Point(0, 97); | |
controlRegistroEstudiante = new ControlRegistroEstudiante(this); | |
this.Controls.Add(controlRegistroEstudiante); | |
this.Controls.Add(controlDatosEstudiante); | |
this.Controls.Add(controlBotones); | |
} | |
/// <summary> | |
/// Registra un estudiante. | |
/// </summary> | |
public void RegistrarEstudiante() | |
{ | |
string apellido = controlRegistroEstudiante.Apellido; | |
string codigo = controlRegistroEstudiante.Codigo; | |
string nombre = controlRegistroEstudiante.Nombre; | |
try | |
{ | |
if (apellido.Equals("") && codigo.Equals("") && nombre.Equals("")) | |
{ | |
MessageBox.Show(this, "Debe llenar todos los campos.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Warning); | |
} | |
else | |
{ | |
estudiante = new Estudiante(nombre, apellido, Int32.Parse(codigo)); | |
controlDatosEstudiante.Apellido = estudiante.Apellido; | |
controlDatosEstudiante.Codigo = estudiante.Codigo.ToString(); | |
controlDatosEstudiante.Nombre = estudiante.Nombre; | |
controlDatosEstudiante.Promedio = 0.0; | |
MessageBox.Show(this, "El estudiante ha sido registrado.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
} | |
catch(Exception) | |
{ | |
MessageBox.Show(this, "El valor del código debe ser numérico.", "Registro Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Error); | |
} | |
} | |
/// <summary> | |
/// Registra un curso al pénsum del estudiante. | |
/// </summary> | |
public void RegistrarCurso() | |
{ | |
// Valida que se haya creado un estudiante en el sistema: | |
if (estudiante == null) | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else if (estudiante.TieneCursosCompletos()) | |
{ | |
MessageBox.Show(this, "Los cursos del estudiante están llenos.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
using(DialogoRegistroCurso drc = new DialogoRegistroCurso(this)) | |
{ | |
drc.ShowDialog(this); | |
if (drc.DialogResult == DialogResult.OK) | |
{ | |
if (estudiante.PensumIncluyeCurso(curso.CodigoCurso)) | |
{ | |
MessageBox.Show(this, String.Format("Un curso de {0} ya ha sido asignado.", curso.CodigoCurso), "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
estudiante.AsignarCurso(curso); | |
} | |
} | |
} | |
} | |
} | |
/// <summary> | |
/// Determina si un curso está asignado al pénsum del estudiante actual. | |
/// </summary> | |
public void CursoEnPensum() | |
{ | |
if (estudiante == null) | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
using (DialogoCursoPensum dcp = new DialogoCursoPensum(this)) | |
{ | |
dcp.ShowDialog(this); | |
if (dcp.DialogResult == System.Windows.Forms.DialogResult.OK) | |
{ | |
if (estudiante.PensumIncluyeCurso(codigoCurso)) | |
{ | |
MessageBox.Show(this, String.Format("El curso {0} está incluido en el pénsum.", codigoCurso), "Pénsum Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
else | |
{ | |
MessageBox.Show(this, String.Format("El curso {0} no está incluido en el pénsum.", codigoCurso), "Pénsum Estudiante", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
} | |
} | |
} | |
} | |
/// <summary> | |
/// Determina si el estudiante se haya en prueba académica. | |
/// </summary> | |
public void EstudianteEnPrueba() | |
{ | |
double promedio = 0.0; | |
bool estaEnPrueba = false; | |
if (estudiante == null) | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
promedio = estudiante.CalcularPromedioEstudiante(); | |
estaEnPrueba = estudiante.EnPrueba(); | |
if (promedio == 0.0) | |
{ | |
MessageBox.Show(this, "Debe registrar al menos la nota de un curso.", "Cálculo Promedio", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
if (estaEnPrueba) | |
{ | |
MessageBox.Show(this, "El estudiante se encuentra en prueba, `promedio < 3.25'.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
MessageBox.Show(this, "El estudiante no se encuentra en prueba, `promedio >= 3.25'.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
} | |
} | |
} | |
/// <summary> | |
/// Registra una nota a determinado curso del pénsum del estudiante. | |
/// </summary> | |
public void RegistrarNotaCurso() | |
{ | |
if (estudiante == null) | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
using (DialogoRegistroNota drn = new DialogoRegistroNota(this)) | |
{ | |
drn.ShowDialog(this); | |
if (drn.DialogResult == System.Windows.Forms.DialogResult.OK) | |
{ | |
curso.AsignarNota(nota); | |
double promedio = estudiante.CalcularPromedioEstudiante(); | |
controlDatosEstudiante.Promedio = promedio; | |
} | |
} | |
} | |
} | |
/// <summary> | |
/// Ve el listado de cursos en el pénsum del estudiante. | |
/// </summary> | |
public void VerCursos() | |
{ | |
if (estudiante == null) | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Registro Curso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
else | |
{ | |
ArrayList cursosPensum = new ArrayList(); | |
for (int i = 1; i <= 5; ++i) | |
{ | |
if (estudiante.BuscarCurso(i) != null) | |
{ | |
cursosPensum.Add(estudiante.BuscarCurso(i)); | |
} | |
} | |
if (cursosPensum.Count != 0) | |
{ | |
using (DialogoCursos dc = new DialogoCursos()) | |
{ | |
dc.CambiarListaCursos(cursosPensum); | |
dc.ShowDialog(this); | |
} | |
} | |
} | |
} | |
#endregion | |
#region Puntos de Extensión | |
/// <summary> | |
/// Punto de extensión no. 1. | |
/// </summary> | |
public void PuntoExtension1() | |
{ | |
if (estudiante != null) | |
{ | |
MessageBox.Show(this, estudiante.PuntoExtension1(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
else | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
} | |
/// <summary> | |
/// Punto de extensión no. 2. | |
/// </summary> | |
public void PuntoExtension2() | |
{ | |
if (estudiante != null) | |
{ | |
MessageBox.Show(this, estudiante.PuntoExtension2(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information); | |
} | |
else | |
{ | |
MessageBox.Show(this, "Debe ingresar un estudiante primero.", "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); | |
} | |
} | |
#endregion | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment