Esta es un aplicación creada en el lenguaje de programación C# la cual consiste en registrar los datos de un hotel,ya cea las reservas activas o las reservas canceladas y que de igual forma podamos eliminar y insertar en la parte cea necesario de la lista por ej:
insertar atrás
eliminar atrás
insertar al frente
eliminar al frente
insertar en una posición n
eliminar en una posición n
en el cual hacemos uso de varios componentes como los listbox,radiobutton,textbox,datatimepicker etc.
Para empezar crearemos el formulario reserva,luego la clase nodo,reserva,lista enlazada y por ultimo programaremos nuestros componentes que hemos utilizado en el formulario.
Clase nodo:
public class Nodo
{
Object datos;//clase
Nodo izq;
Nodo der;
public Nodo()
{//nodo nulo
datos = izq = der = null;
}
public Nodo(object ob)
{// nodo solitario
datos = ob;
izq = der = null;
}
public Nodo(object ob, Nodo enlace)
{
datos = ob;
der = enlace;
}
public void setDatos(object ob)
{
datos = ob;
}
public void setizq(Nodo ob)
{
izq = ob;
}
public void setder(Nodo ob)
{
der = ob;
}
public object getdatos()
{
return datos;
}
public Nodo getizq()
{
return izq;
}
public Nodo getDer()
{
return der;
}
}
}
Clase Reserva:
class Reserva
{
public int nro;
public String cliente;
public DateTime fecha_r;
public String f_reserva;
public String t_habitacion;
public String f_pago;
public String servicios;
public Reserva() {
nro = 0;
fecha_r = DateTime.MinValue;
cliente = t_habitacion = f_pago = servicios = "";
}
public Reserva(int n,String cli,DateTime fr,String th,String fp,String ser) {
nro = n;
cliente = cli;
fecha_r = fr;
t_habitacion = th;
f_pago = fp;
servicios = ser;
}
public void SetReserva(int n, String cli, DateTime fr, String th, String fp, String ser)
{
nro = n;
cliente = cli;
fecha_r = fr;
t_habitacion = th;
f_pago = fp;
servicios = ser;
}
public void setnro(int n) { nro = n; }
public void setcliente(String cli) { cliente = cli; }
public void setfechareserva(DateTime fr) { fecha_r = fr; }
public void setthabitacion(String th) { t_habitacion = th; }
public void setfpago(String fp) {f_pago = fp; }
public void setservicios(String ser) { servicios = ser; }
public String GetReserva() {
return "Nro:" + nro + "\nCliente:" + cliente + "\nFecha de Reserva:" + f_reserva + "Tipo de Habitacon:" + t_habitacion +
"\nForma de Pago:" + f_pago + "\nServicios:" + servicios;
}
public int getnro() { return nro; }
public String getcliente() { return cliente;}
public String getfechareserva() { return f_reserva; }
public String getthabitacion() { return t_habitacion; }
public String getfpago() { return f_pago; }
public String getservicios() { return servicios; }
}
}
Clase Lista Enlazada:
class ListaEnlazada
{
protected String nombre;
protected Nodo primero;
protected Nodo ultimo;
public ListaEnlazada(String n) {
nombre = n;
primero = ultimo = null;
}
public ListaEnlazada() {
this.nombre = "Lista";
}
//metodos
public Boolean Lvacia() {
return primero == null;
}
public String getnombre(){
return nombre;
}
public Nodo getprimero() {
return primero;
}
public Nodo getultimo() {
return ultimo;
}
public void InsertFrente(Object obj) {
if (Lvacia())
primero = ultimo = new Nodo(obj);
else
primero= new Nodo(obj,primero);
}
public void InsertarAtras(Object obj) {
if (Lvacia())
primero = ultimo = new Nodo(obj);
else
ultimo = ultimo.Sgte = new Nodo(obj);
}
public Object DeleteFrente() {
Object DatoRemovido = null;
if (Lvacia())
Console.WriteLine("Vacia");
primero = primero.datos;
if (primero.Equals(ultimo))
primero = ultimo = null;
else
primero = primero.Sgte;
return DatoRemovido;
}
public Object DeleteAtras() {
Object DatoRemovido = null;
if (Lvacia()) {
Console.WriteLine("Vacia");
}
DatoRemovido = ultimo.Datos;
if (primero.Equals(ultimo))
{
primero = ultimo = null;
}
else {
Nodo Actual = primero;
while (Actual.Sgte != ultimo)
Actual = Actual.Sgte;
ultimo = Actual;
Actual.Sgte = null;
}
return DatoRemovido;
}
public Object getElementoIndice(int posicion) {
if (Lvacia())
{
return null;
}
else {
Nodo Actual = primero;
int cont = 1;
while ((Actual != null) && (cont < posicion)){
Actual = Actual.Sgte;
cont++;
}
if ((Actual != null) && (cont == posicion))
{
return Actual.Datos;
}
else {
return null;
}
}
}
public void InsertarElementoEnIndice(int posicion,Object obj){
Nodo nuevo;
Nodo actual;
if (Lvacia())
{
return;
}
else {
actual = primero;
int cont = 1;
while((actual !=null) && (cont < posicion-1)){
actual = actual.Sgte;
cont++;
}
if((actual != null) && (cont== posicion-1)){
nuevo = new Nodo(obj,actual.Sgte);
actual.Sgte = nuevo;
}
}
}
public Object DeleteElementoDeIndice(int posicion) {
Object DatoRemovido;
Nodo actual;
if (Lvacia() == true)
{
return null;
}
else {
if (posicion == 1)
{
DatoRemovido = primero.Datos;
primero = primero.Sgte;
return DatoRemovido;
}
else {
actual = primero;
int cont = 1;
while((actual != null) && (cont < posicion-1)){
actual = actual.Sgte;
cont++;
}
if ((actual != null ) && (cont == posicion -1)){
DatoRemovido = actual.Sgte.Datos;
actual.Sgte = actual.Sgte.Sgte;
return DatoRemovido;
}
}
return null;
}
}
}
}
FrmReserva:
public partial class FrmReserva : Form
{
public void combohabitacion() {
cbthabitacion.Items.Add("Simple");
cbthabitacion.Items.Add("doble");
cbthabitacion.Items.Add("Suite");
}
public String formapago() {
String fp = "";
if (rbefectivo.Checked == true)
fp = rbefectivo.Text;
else
fp = rbtargeta.Text;
return fp;
}
public String obtenerservicios() {
String serv = "";
if (chkinternet.Checked == true)
serv = serv + chkinternet.Text + ",";
if (chkpiscina.Checked == true)
serv = serv + chkpiscina.Text + ",";
if (chkrestaurant.Checked == true)
serv = serv + chkrestaurant.Text + ",";
return serv;
}
public void limpiardatos() {
txtnro.Text = "";
txtcliente.Text = "";
}
public void mostrarlista() {
if (Lista.Lvacia() == true)
{
lbactivas.Items.Clear();
lbactivas.Items.Insert(0, "Lista vacia");
}
else {
Nodo auxnodo = Lista.getprimero();
lbactivas.Items.Clear();
while (auxnodo != null) {
auxdatos = (Reserva)auxnodo.getdatos();
String separador = "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.";
lbactivas.Items.Insert(0,auxdadatos.getnro());
lbactivas.Items.Insert(1, auxdadatos.getcliente());
lbactivas.Items.Insert(2, auxdadatos.getthabitacion());
lbactivas.Items.Insert(3, auxdadatos.getfechareserva());
lbactivas.Items.Insert(4, auxdadatos.getfpago());
lbactivas.Items.Insert(5, auxdadatos.getservicios());
lbactivas.Items.Insert(6, separador);
auxnodo = auxnodo.sgte;
}
}
}
public FrmReserva()
{
InitializeComponent();
}
private void FrmReserva_Load(object sender, EventArgs e)
{
combohabitacion();
}
private void groupBox2_Enter(object sender, EventArgs e)
{
}
private void groupBox4_Enter(object sender, EventArgs e)
{
}
private void btnsalir_Click(object sender, EventArgs e)
{
this.Close();
}
private void btninsertarfrente_Click(object sender, EventArgs e)
{
String nro = "";
String cliente = "";
String tipohab = "";
DateTime fecha = DateTime.MinValue;
String formapago = "";
String serv = "";
int centinela = 1;
try
{
nro = txtnro.Text;
cliente = txtcliente.Text;
tipohab = cbthabitacion.Text;
fecha = DateTime.Parse(dtpfreserva.Text);
formapago = ObtenerFormaPago();
serv = obtenerservicios();
}
catch (Exception Ex)
{
centinela = 0;
if (MessageBox.Show(Ex.ToString() + "Ocurrio un error verifique los campos ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK) {
}
}
if (centinela == 1) {
Lista.InsertFrente(new Reserva(nro,cliente,tipohab,fecha,formapago,serv));
}
limpiardatos();
mostrarlista();
}
private void btnmostrar_Click(object sender, EventArgs e)
{
mostrarlista();
}
private void btnborrarfrente_Click(object sender, EventArgs e)
{
if (Lista.Lvacia() == true) {
lbcanceladas.Items.Clear();
lbcanceladas.Items.Insert(0,"Lista Vacia"):
}
else{
Reserva aux;
aux=(Reserva)Lista.DeleteFrente();
String separador="$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$";
lbcanceladas.Items.Insert(0, aux.getnro());
lbcanceladas.Items.Insert(1, aux.getcliente());
lbcanceladas.Items.Insert(2, aux.getthabitacion());
lbcanceladas.Items.Insert(4, aux.getfechareserva());
lbcanceladas.Items.Insert(3, aux.getfpago());
lbcanceladas.Items.Insert(5, aux.getservicios());
lbcanceladas.Items.Insert(6, separador);
}
limpiardatos();
mostrarlista();
}
private void btninsertaratras_Click(object sender, EventArgs e)
{
String nro = "";
String cliente = "";
String tipohab = "";
DateTime fecha = DateTime.MinValue;
String formapago = "";
String serv = "";
int centinela = 1;
try
{
nro = txtnro.Text;
cliente = txtcliente.Text;
tipohab = cbthabitacion.Text;
fecha = DateTime.Parse(dtpfreserva.Text);
formapago = ObtenerFormaPago();
serv = obtenerservicios();
}
catch (Exception Ex)
{
centinela = 0;
if (MessageBox.Show(Ex.ToString() + "Ocurrio un error verifique los campos ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
{
}
}
if (centinela == 1) {
Lista.InsertarAtras(nro,cliente,tipohab,fecha,formapago,serv);
}
limpiardatos();
mostrarlista();
}
private void btnborraratras_Click(object sender, EventArgs e)
{
if (Lista.Lvacia() == true)
{
lbcanceladas.Items.Clear();//limpia por completo el listbox
lbcanceladas.Items.Insert(0, "Lista vacia");//inserta el object al indice 0
}
else {
Reserva aux;
aux = (Reserva)Lista.DeleteAtras();//elimina el ultimo dato introducido en la pila
String separador = "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$";
lbcanceladas.Items.Insert(0, aux.getnro());
lbcanceladas.Items.Insert(1, aux.getcliente());
lbcanceladas.Items.Insert(2, aux.getthabitacion());
lbcanceladas.Items.Insert(4, aux.getfechareserva());
lbcanceladas.Items.Insert(3, aux.getfpago());
lbcanceladas.Items.Insert(5, aux.getservicios());
lbcanceladas.Items.Insert(6, separador);
}
limpiardatos();
mostrarlista();
}
private void btninsertarpos_Click(object sender, EventArgs e)
{
String nro = "";
String cliente = "";
String tipohab = "";
DateTime fecha = DateTime.MinValue;
String formapago = "";
String serv = "";
int centinela = 1;
try
{
nro = txtnro.Text;
cliente = txtcliente.Text;
tipohab = cbthabitacion.Text;
fecha = DateTime.Parse(dtpfreserva.Text);
formapago = ObtenerFormaPago();
serv = obtenerservicios();
}
catch (Exception Ex) {
centinela = 0;
if (MessageBox.Show(Ex.ToString() + "Ocurrio un error verifique los datos ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
{
}
}
if (centinela == 1) {
lista.insertarElementoEnIndice(indice, (new Reserva(nro,cliente,tipohab,fecha,formapago,ser)));
//se introduce el objeto de tipo de datos
}
limpiardatos();
mostrarlista();
}
private void btnborrarposicion_Click(object sender, EventArgs e)
{
if (Lista.Lvacia() == true)
{
lbcanceladas.Items.Clear();//limpia por completo el listbox
lbcanceladas.Items.Insert(0, "Lista vacia");//inserta el object al indice 0
}
else {
Reserva aux = new Reserva();
int centinela ==1;
try{
aux=(Reserva)lista.DeleteElementoDeIndice(int.Parse(txtposicion.Text));
}
catch(Exception Ex){
if (MessageBox.Show(Ex.ToString() + "Ocurrio un error verifique los datos ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
{
}
}
if(centinela==1){
tring separador = "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$";
lbcanceladas.Items.Insert(0, aux.getnro());
lbcanceladas.Items.Insert(1, aux.getcliente());
lbcanceladas.Items.Insert(2, aux.getthabitacion());
lbcanceladas.Items.Insert(4, aux.getfechareserva());
lbcanceladas.Items.Insert(3, aux.getfpago());
lbcanceladas.Items.Insert(5, aux.getservicios());
lbcanceladas.Items.Insert(6, separador
}
}
limpiardatos();
mostrarlista();
}
private void btnreservar_Click(object sender, EventArgs e)
{
btninsertaratras_Click(sender,e);
}
private void btncancelar_Click(object sender, EventArgs e)
{
btnborraratras_Click(sender ,e);
}
}
}
Bueno ese seria todo nuestro código fuente de nuestro programa para terminar con nuestra aplicación les mostrare la interfaz gráfica:
No hay comentarios:
Publicar un comentario