Sie sind auf Seite 1von 7

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Visual_ColaCircular
{
enum Tipo { FLOAT,DOUBLE,INT,CHAR,STRING};
public partial class Form1 : Form
{//Objetos globales
Cola_Circular<float> colaFloat;
Cola_Circular<double> colaDouble;
Cola_Circular<int> colaInt;
Cola_Circular<char> colaChar;
Cola_Circular<string> colaString;
int val; int tam;//variables globales de tipo entero
public Form1()
{
InitializeComponent();
}
private void btnIniciar_Click(object sender, EventArgs e)
{
try
{

val = cbTipo.SelectedIndex;
tam = Convert.ToInt32(numUD.Value);
}
catch
{
MessageBox.Show("Falta asignar dato");
return;
}
groupBox1.Enabled = false;
groupBox2.Enabled = true;
switch (val)//Para saber con que objeto vamos a trabajar
{
case 0: colaChar = new Cola_Circular<char>(tam); break;
case 1: colaDouble = new Cola_Circular<double>(tam); break;
case 2: colaFloat = new Cola_Circular<float>(tam); break;
case 3: colaInt = new Cola_Circular<int>(tam); break;
case 4: colaString = new Cola_Circular<string>(tam); break;
}
dgv.RowCount = 1;
dgv.ColumnCount = tam;
int cont =0;
while (cont < tam)
{
dgv.Columns[cont].Width = 50;
cont++;
}
}
//Sirve para empezar de nuevo
private void rehacerToolStripMenuItem_Click(object sender, EventArgs e)
{
groupBox2.Enabled = false;
groupBox1.Enabled = true;
colaChar = null;
colaDouble = null;
colaInt = null;
colaFloat = null;
colaString = null;
dgv.Rows.Clear();
numUD.Value = 1;
lblExtraido.Text ="|";
txtDato.Clear();
}
private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();//Cierra la forma
}
private void btnAceptar_Click(object sender, EventArgs e)

{
Tipo _tipoDato = Tipo.INT;
switch (val)
{
case 0: _tipoDato = Tipo.CHAR; break;
case 1: _tipoDato = Tipo.DOUBLE; break;
case 2: _tipoDato = Tipo.FLOAT; break;
case 3: _tipoDato = Tipo.INT; break;
case 4: _tipoDato = Tipo.STRING; break;
}
switch (_tipoDato)//Segun para cada objeto global
{
case Tipo.CHAR:
{
char car;
try//Valida el tipo de dato que sea correcto si no manda un excepcion
{
car = Convert.ToChar(txtDato.Text);
}
catch
{
MessageBox.Show("Solo puros Caracteres");
txtDato.Clear();
return;
}
if (colaChar.Insertar(car))//Agrega dato
{
for (int i = 0; i < tam; i++)
dgv[i, 0].Value = colaChar[i];
}
else//Si no puede agregar es por que la cola es llena
MessageBox.Show("Cola esta llena");
txtDato.Clear();
}break;
case Tipo.DOUBLE:
{
double car;
try//Valida el tipo de dato que sea correcto si no manda un excepcion
{
car = Convert.ToDouble(txtDato.Text);
}
catch
{
MessageBox.Show("Solo puros \nNumeros Doubles\nEjemplo: 3.56");
txtDato.Clear();
return;
}
if (colaDouble.Insertar(car))//Agrega dato
{

for (int i = 0; i < tam; i++)


dgv[i, 0].Value = colaDouble[i];
}
else//Si no puede agregar es por que la cola es llena
MessageBox.Show("Cola esta llena");
txtDato.Clear();
}break;
case Tipo.FLOAT:
{
float car;
try//Valida el tipo de dato que sea correcto si no manda un excepcion
{
car = (float)Convert.ToDouble(txtDato.Text);
}
catch
{
MessageBox.Show("Solo puros \nNumeros Float\nEjemplo: 2.46");
txtDato.Clear();
return;
}
if (colaFloat.Insertar(car))//Agrega dato
{
for (int i = 0; i < tam; i++)
dgv[i, 0].Value = colaFloat[i];
}
else//Si no puede agregar es por que la cola es llena
MessageBox.Show("Cola esta llena");
txtDato.Clear();
}break;
case Tipo.INT:
{
int car;
try//Valida el tipo de dato que sea correcto si no manda un excepcion
{
car = Convert.ToInt32(txtDato.Text);
}
catch
{
MessageBox.Show("Solo puros \nNumeros Enteros");
txtDato.Clear();
return;
}
if (colaInt.Insertar(car))//Agrega dato
{
for (int i = 0; i < tam; i++)
dgv[i, 0].Value = colaInt[i];
}
else//Si no puede agregar es por que la cola es llena
MessageBox.Show("Cola esta llena");

txtDato.Clear();
}break;
case Tipo.STRING:
{
string car;
try//Valida el tipo de dato que sea correcto si no manda un excepcion
{
car = Convert.ToString(txtDato.Text);
}
catch
{
MessageBox.Show("Solo puros Cadenas\nEjemplo: Hola");
txtDato.Clear();
return;
}
if (colaString.Insertar(car))//Agrega dato
{
for (int i = 0; i < tam; i++)
dgv[i, 0].Value = colaString[i];
}
else//Si no puede agregar es por que la cola es llena
MessageBox.Show("Cola esta llena");
txtDato.Clear();
}break;
}
}
private void txtDato_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)(13))//Se activa cuando se presiona Enter
btnAceptar_Click(sender, e);
}
private void btnExtraer_Click(object sender, EventArgs e)
{
Tipo _tipoDato = Tipo.INT;
switch (val)//Para saber en cual objeto estamos trabajando
{
case 0: _tipoDato = Tipo.CHAR; break;
case 1: _tipoDato = Tipo.DOUBLE; break;
case 2: _tipoDato = Tipo.FLOAT; break;
case 3: _tipoDato = Tipo.INT; break;
case 4: _tipoDato = Tipo.STRING; break;
}
switch (_tipoDato)
{
case Tipo.CHAR:
{
char car='?';

char x = '\0';
if (colaChar.Eliminar(ref car, x))//Elimina el dato del arreglo
lblExtraido.Text = car.ToString();
else
{//Si no puede muestra que la cola esta vacia
MessageBox.Show("Cola esta Vacia");
lblExtraido.Text = "|";
}
for (int i = 0; i < tam; i++)//Un ciclo para mostrar el arreglo
dgv[i, 0].Value = colaChar[i];
} break;
case Tipo.DOUBLE:
{
double car=0.0;
double x=0.0;
if (colaDouble.Eliminar(ref car, x))//Elimina el dato del arreglo
lblExtraido.Text = car.ToString();
else
{//Si no puede muestra que la cola esta vacia
MessageBox.Show("Cola esta Vacia");
lblExtraido.Text = "|";
}
for (int i = 0; i < tam; i++)//Un ciclo para mostrar el arreglo
dgv[i, 0].Value = colaDouble[i];
} break;
case Tipo.FLOAT:
{
float car=0.0F;
float x=0.0F;
if (colaFloat.Eliminar(ref car, x))//Elimina el dato del arreglo
lblExtraido.Text = car.ToString();
else
{//Si no puede muestra que la cola esta vacia
MessageBox.Show("Cola esta Vacia");
lblExtraido.Text = "|";
}
for (int i = 0; i < tam; i++)//Un ciclo para mostrar el arreglo
dgv[i, 0].Value = colaFloat[i];
} break;
case Tipo.INT:
{
int car=0;
int x = 0;
if (colaInt.Eliminar(ref car, x))//Elimina el dato del arreglo
lblExtraido.Text = car.ToString();
else

{//Si no puede muestra que la cola esta vacia


MessageBox.Show("Cola esta Vacia");
lblExtraido.Text = "|";
}
for (int i = 0; i < tam; i++)//Un ciclo para mostrar el arreglo
dgv[i, 0].Value = colaInt[i];
} break;
case Tipo.STRING:
{
string car="";
string x="";
if (colaString.Eliminar(ref car, x))//Elimina el dato del arreglo
lblExtraido.Text = car.ToString();
else
{//Si no puede muestra que la cola esta vacia
MessageBox.Show("Cola esta Vacia");
lblExtraido.Text = "|";
}
for (int i = 0; i < tam; i++)//Un ciclo para mostrar el arreglo
dgv[i, 0].Value = colaString[i];
} break;
}
}
}
}

Das könnte Ihnen auch gefallen