Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created August 16, 2014 12:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/f468bc65b7b6b120127a to your computer and use it in GitHub Desktop.
Save Fhernd/f468bc65b7b6b120127a to your computer and use it in GitHub Desktop.
Ventana principal de la aplicación.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Principal.cs
//
// Original en: http://goo.gl/lpvWbR
//
// Propósito: Crear la ventana principal de la aplicación.
//
============================================================*/
using System;
using System.ComponentModel;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
using NotasCurso.Modelo;
namespace NotasCurso.GUI
{
/// <summary>
/// Formulario con la interfaz de usuario.
/// </summary>
public partial class Principal : Form
{
#region Componentes
/// <summary>
/// Control para las operaciones principales de la aplicación.
/// </summary>
private ControlAdicionales controlAdicionales;
/// <summary>
/// Control para los datos de notas de los estudiantes.
/// </summary>
private ControlDatos controlDatos;
/// <summary>
/// Control para la visualización de una imagen de un salón de clase.
/// </summary>
private ControlImagen controlImagen;
#endregion
#region Campos
/// <summary>
/// Representa un curso donde asisten 12 estudiantes.
/// </summary>
private Curso curso;
#endregion
#region Propiedades
public double Nota { get; set; }
#endregion
#region Constructores
/// <summary>
/// Crea la ventana principal de la aplicación.
/// </summary>
public Principal()
{
InitializeComponent();
ConfiguracionComponentes();
curso = new Curso();
}
#endregion
#region Métodos
/// <summary>
/// Configura cada componente integral de la ventana principal.
/// </summary>
private void ConfiguracionComponentes()
{
this.Icon = Properties.Resources.notas;
controlImagen = new ControlImagen();
controlDatos = new ControlDatos(this) { Location = new Point(353, 0) };
controlAdicionales = new ControlAdicionales(this) { Location = new Point(0, 304) };
this.Controls.Add(controlImagen);
this.Controls.Add(controlDatos);
this.Controls.Add(controlAdicionales);
}
/// <summary>
/// Cambia la nota de un estudiante en particular.
/// </summary>
/// <param name="estudiante">Número (1-12) del estudiante.</param>
public void CambiarNota(int estudiante)
{
using (DialogoNota dn = new DialogoNota(this))
{
DialogResult dr = dn.ShowDialog(this);
if (dr == System.Windows.Forms.DialogResult.OK)
{
curso.CambiarNota(estudiante, Nota);
controlDatos.RefrescarNota(estudiante, curso.ObtenerNota(estudiante));
}
}
}
/// <summary>
/// Muestra en pantalla el número de estudiantes que tienen una nota por encima del promedio.
/// </summary>
public void MostrarMayores()
{
MessageBox.Show(this, String.Format("Número de estudiantes con nota mayor al promedio ({0}): {1}",
curso.CalcularPromedio().ToString("F1"), curso.CuantosEncimaPromedio().ToString()),
"Estudiantes", MessageBoxButtons.OK, MessageBoxIcon.Information
);
}
/// <summary>
/// Muestra en pantalla el promedio de todas las notas de los 12 estudiantes.
/// </summary>
public void MostrarPromedio()
{
MessageBox.Show(this, String.Format("Promedio: {0}",
curso.CalcularPromedio().ToString("F1")),
"Estudiantes", MessageBoxButtons.OK, MessageBoxIcon.Information
);
}
#endregion
#region Puntos de Extensión
/// <summary>
/// Muestra en pantalla invocación de mensaje del punto de extensión número 1.
/// </summary>
public void PuntoExtension1()
{
MessageBox.Show(this, curso.PuntoExtension1(), "Respuesta", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// Muestra en pantalla invocación de mensaje del punto de extensión número 2.
/// </summary>
public void PuntoExtension2()
{
MessageBox.Show(this, curso.PuntoExtension2(), "Respuesta", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment