using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.IO;
using
System.Runtime.Serialization.Formatters.Binary;
namespace
Colas_VariosTipos_Visual
{
public partial class Form1 : Form
{
double
aux2;
char
aux3;
string
aux4;
string
extraer;
int n,
aux1;
int i =
0;
bool
band = true;
ColaCirc<int> ent;
ColaCirc<double> dob;
ColaCirc<char> cha;
ColaCirc<string> str;
public
Form1()
{
InitializeComponent();
textBox2.Enabled = false;
bot_agregar.Enabled = false;
bot_eliminar.Enabled = false;
}
private
void button1_Click(object
sender, EventArgs e)
{
string
s = comboBox1.Text;
switch
(s)
{
case
"Int":
try
{
aux1 = Convert.ToInt32(textBox2.Text);
band = true;
}
catch
(Exception)
{
MessageBox.Show("Ingrese un
entero");
band = false;
}
if
(band == true)
{
if (ent.insertar(aux1))
ent.mostrar(dgv1);
else
MessageBox.Show("Cola
llena,Desbordamiento");
}
break;
case
"Double":
try
{
aux2 = Convert.ToDouble(textBox2.Text);
band = true;
}
catch
(Exception)
{
MessageBox.Show("Ingrese un
doble");
band = false;
}
if
(band == true)
{
if (dob.insertar(aux2))
dob.mostrar(dgv1);
else
MessageBox.Show("Cola
llena,Desbordamiento");
}
break;
case
"Char":
try
{
aux3 = Convert.ToChar(textBox2.Text);
band = true;
}
catch
(Exception)
{
MessageBox.Show("Ingrese un
entero");
band = false;
}
if
(band == true)
{
if (cha.insertar(aux3))
cha.mostrar(dgv1);
else
MessageBox.Show("Cola
llena,Desbordamiento");
}
break;
case
"String":
if
(ent.insertar(aux1))
str.mostrar(dgv1);
else
MessageBox.Show("Cola
llena,Desbordamiento");
break;
}
textBox2.Clear();
textBox2.Focus();
}
private
void textBox1_KeyPress(object
sender, KeyPressEventArgs e)
{
if
(e.KeyChar == 13)
{
try
{
n = Convert.ToInt32(textBox1.Text);
dgv1.ColumnCount = n;
textBox2.Enabled = true;
bot_eliminar.Enabled = true;
bot_agregar.Enabled = true;
textBox1.Enabled = false;
comboBox1.Enabled = false;
textBox2.Focus();
for
(int i = 0; i < n; i++)
{
dgv1[i, 0].Value = " ";
}
}
catch
(Exception)
{
MessageBox.Show("Ingrese un numero");
}
string
s = comboBox1.Text;
switch
(s)
{
case
"Int": ent = new ColaCirc<int>(n); break;
case
"Double": dob = new ColaCirc<double>(n); break;
case
"Char": cha = new ColaCirc<char>(n); break;
case
"String": str = new ColaCirc<string>(n); break;
default:
ent = new ColaCirc<int>(n); break;
}
}
}
private
void bot_eliminar_Click(object sender, EventArgs e)
{
string
s = comboBox1.Text;
switch
(s)
{
case
"Int":
aux1 = 0;
if
(ent.eliminar(ref aux1, -1))
{
label6.Text =
aux1.ToString();
ent.mostrar(dgv1);
}
else
MessageBox.Show("Cola
vacia,Subdesbordamiento");
break;
case
"Double":
aux2 = 0.0;
if
(dob.eliminar(ref aux2, 0.0))
{
label6.Text =
aux2.ToString();
dob.mostrar(dgv1);
}
else
MessageBox.Show("Cola
vacia,Subdesbordamiento");
break;
case
"Char":
aux3 = ' ';
if
(cha.eliminar(ref aux3, ' '))
{
label6.Text =
aux3.ToString();
cha.mostrar(dgv1);
}
else
MessageBox.Show("Cola
vacia,Subdesbordamiento");
break;
case
"String":
aux4 = " ";
if
(str.eliminar(ref aux4, " "))
{
label6.Text =
aux4.ToString();
str.mostrar(dgv1);
}
else
MessageBox.Show("Cola
vacia,Subdesbordamiento");
break;
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
using
System.IO;
using
System.Runtime.Serialization.Formatters.Binary;
namespace Colas_VariosTipos_Visual
{
[Serializable]
class ColaCirc<T>
{
T[] datos;
int
tam, P, U;
bool
most;
public
ColaCirc(int n)
{
tam = n;
datos = new T[tam];
P
= U = -1;
}
public bool insertar(T dato)
{
most = true;
if
((U == tam - 1) && (P == 0) || (U + 1 == P))
return
false;
else
if (U == tam - 1)
U = 0;
else
U++;
datos[U] = dato;
if (P == -1)
P = 0;
return
true;
}
public bool eliminar(ref T
dato, T x)
{
most = false;
if
(P == -1)
return false;
dato = datos[P];
if (P == U)//Hay un solo
elemento
P = U = -1;
else
if (P == tam - 1)
{
datos[P] = x;
P = 0;
}
else
{
datos[P] = x;
P++;
}
return
true;
}
public bool
esta_vacia()
{
return (P == -1);
}
public bool
esta_llena()
{
return
(((U + 1) % tam) == P);
}
public int u
{
get
{ return U; }
}
public int p
{
get
{ return P; }
}
public
T this[int
indice]
{
get
{
return
datos[indice];
}
set
{
datos[indice] = value;
}
}
public void mostrar(DataGridView
dgv)
{
try
{
if
(most == true)
{
if
(U + 1 == tam)
{
dgv[U, 0].Value = " ";
}
else
{
dgv[U, 0].Value = " ";
}
dgv[U, 0].Value = datos[U].ToString();
}
else
dgv[p - 1, 0].Value = " ";
dgv[P, 0].Value =
datos[P].ToString();
}
catch
(Exception)
{
MessageBox.Show("Fuera del rango");
}
}
}
}
Hola que tal amigo implente tu código y no funcionó
ResponderEliminarmuchas gracias me funciono muy bien gracias y saludos
ResponderEliminarno funciona
ResponderEliminar