Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Created June 16, 2014 19:47
Show Gist options
  • Save Fhernd/de27ca76abc1990ec692 to your computer and use it in GitHub Desktop.
Save Fhernd/de27ca76abc1990ec692 to your computer and use it in GitHub Desktop.
Formulario que integra los demás controles para conformar la interfaz gráfica de usuario principal. En C#.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: Principal.cs
//
// Original en: http://goo.gl/Tnad2Y
//
//
// Propósito: Diseñar la interfaz de usuario principal
// de la aplicación.
//
============================================================*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using N1_Encuesta.Modelo;
namespace N1_Encuesta.GUI
{
public partial class Principal : Form
{
#region Campos
/// <summary>
/// Encuesta a realizar.
/// </summary>
private Encuesta encuesta;
#endregion
#region Campos (componentes de interfaz)
/// <summary>
/// Control de agregación de opiniones.
/// </summary>
private ControlAgregarOpinion controlAgregarOpinion;
/// <summary>
/// Control de visualización de resultados.
/// </summary>
private ControlResultados controlResultados;
/// <summary>
/// Control con puntos de extensión.
/// </summary>
private ControlExtension controlExtension;
#endregion
#region Constructores
/// <summary>
/// Crea el formulario.
/// </summary>
public Principal()
{
InitializeComponent();
this.Icon = Properties.Resources.encuesta;
ConfiguracionComponentes();
encuesta = new Encuesta();
}
#endregion
#region Métodos
/// <summary>
/// Configuración para los controles que componen la interfaz.
/// </summary>
private void ConfiguracionComponentes()
{
controlAgregarOpinion = new ControlAgregarOpinion(this);
controlResultados = new ControlResultados(this);
controlResultados.Location = new Point(0, 145);
controlExtension = new ControlExtension(this);
controlExtension.Location = new Point(0, 278);
this.Controls.Add(controlAgregarOpinion);
this.Controls.Add(controlExtension);
this.Controls.Add(controlResultados);
}
/// <summary>
/// Actualiza los resultados de la encuesta.
/// </summary>
public void ActualizarResultados()
{
controlResultados.ActualizarResultados();
}
/// <summary>
/// Agrega una opinión.
/// </summary>
/// <param name="rango">ID (1, 2, o 3) del rango de edades.</param>
/// <param name="estadoCivil">Estado civil del(/la) encuestado(a)</param>
/// <param name="opinion"></param>
public void AgregarOpinion(int rango, EstadoCivil estadoCivil, int opinion)
{
encuesta.AgregarOpinion(rango, opinion, estadoCivil);
}
/// <summary>
/// Calcula el número total de opiniones de los encuestados.
/// </summary>
/// <returns>Total de opiniones.</returns>
public int CalcularNumeroTotalOpiniones()
{
return encuesta.NumeroTotalOpiniones;
}
/// <summary>
/// Calcula el promedio total de opiniones sobre número de encuestados.
/// </summary>
/// <returns>Promedio total.</returns>
public double CalcularPromedioTotal()
{
return encuesta.CalcularPromedio();
}
/// <summary>
/// Calcula promedio parcial para un grupo específico.
/// </summary>
/// <param name="idRango">ID (1, 2, ó 3) del rango.</param>
/// <param name="estadoCivil">Estado civil del encuestado.</param>
/// <returns>Promedio parcial.</returns>
public double CalcularResultadosParciales(int idRango, EstadoCivil estadoCivil)
{
return encuesta.MostrarResultado(idRango, estadoCivil);
}
#endregion
#region Puntos de Extensión
/// <summary>
/// Activa el punto de extensión no. 1.
/// </summary>
public void PuntoExtension1()
{
MessageBox.Show(this, encuesta.Metodo1(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
/// Activa el punto de extensión no. 2.
/// </summary>
public void PuntoExtension2()
{
MessageBox.Show(this, encuesta.Metodo2(), "Punto de Extensión", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
#endregion
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment