Desarrolle un programa en consola con un menú para el usuario que permita agregar elementos a una pila, eliminar elementos de la pila, vaciar la pila completa y mostrar la pila en pantalla, el programa solo debe aceptar números enteros del 1 al 99. Si el usuario introduce una opción que no existe o un valor erróneo el programa de avisar al usuario con un mensaje en pantalla y continuar con el programa.
¿Que es una pila?
Una PILA o STACK nos permite guardar elementos usando una estructura de tipo LIFO (last-in-first-out), es decir, el último que entra es el primero en salir, el ejemplo mas común que se maneja para entender a una PILA, es el de una pila de platos, donde el primer plato se coloca en la base y el siguiente encima de el, y así sucesivamente, cuando se retira un plato, se quita el que este más arriba, porque si tomamos otro palo, la pila se derrumbaría.
01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Text; 05 using System.Collections; 06 07 namespace conStack 08 { 09 class Program 10 { 11 static void Main(string[] args) 12 { 13 14 Stack miPila = new Stack(); 15 16 int opcion;//opcion del menu 17 18 do{ 19 Console.Clear();//se limpia consola 20 21 opcion = menu();//muestra menu y espera opción 22 23 switch (opcion) 24 { 25 case 1: 26 agregar(ref miPila); 27 break; 28 case 2: 29 eliminar(ref miPila); 30 break; 31 case 3: 32 limpiar( ref miPila); 33 break; 34 case 4: 35 imprimir(miPila); 36 break; 37 case 5: break; //salir 38 default: 39 mensaje("ERROR: la opción no es valida. Intente de nuevo."); 40 break; 41 } 42 43 } 44 while(opcion!=5); 45 46 mensaje("El programa a finalizado."); 47 } 48 49 /** añade un nuevo elemento a la pila */ 50 static void agregar( ref Stack pila ) 51 { 52 Console.Write("\n>Ingrese valor: "); 53 try 54 { 55 int valor = Convert.ToInt32(Console.ReadLine()); 56 if (valor > 99 || valor <= 0) 57 { 58 mensaje("Solo números del 1 al 99"); 59 } 60 else 61 { 62 pila.Push(valor); 63 imprimir(pila); 64 } 65 } 66 catch { 67 mensaje("Error: Solo números del 1 al 99"); 68 } 69 70 } 71 72 /** Elimina todo los elementos de la pila */ 73 static void limpiar( ref Stack pila ) 74 { 75 pila.Clear(); 76 imprimir(pila); 77 } 78 79 /** Elimina elemento de la pila */ 80 static void eliminar( ref Stack pila) 81 { 82 if (pila.Count > 0) 83 { 84 int valor = (int)pila.Pop(); 85 mensaje("Elemento " + valor + " eliminado"); 86 } 87 else { 88 imprimir(pila); 89 } 90 91 } 92 93 /** muestra menu y retorna opción */ 94 static int menu() 95 { 96 //Console.Clear(); 97 Console.WriteLine("\n Stack Menu\n"); 98 Console.WriteLine(" 1.- Agregar elemento"); 99 Console.WriteLine(" 2.- Eliminar elemento"); 100 Console.WriteLine(" 3.- Vaciar Pila"); 101 Console.WriteLine(" 4.- Ver pila"); 102 Console.WriteLine(" 5.- Termina programa"); 103 Console.Write(" JC:> Ingresa tu opción: "); 104 try 105 { 106 int valor = Convert.ToInt32( Console.ReadLine() ); 107 return valor; 108 } 109 catch { 110 return 0; 111 } 112 } 113 114 /** Muestra mensaje del programa al usuario */ 115 static void mensaje( String texto ) 116 { 117 if (texto.Length > 0) 118 { 119 Console.WriteLine("\n ======================================================="); 120 Console.WriteLine(" JC:> {0}",texto); 121 Console.WriteLine(" ======================================================="); 122 Console.WriteLine("\n JC:>Presione cualquier tecla para continuar..."); 123 Console.ReadKey(); 124 } 125 } 126 127 /** Imprime pila */ 128 static void imprimir(Stack pila) 129 { 130 if (pila.Count > 0) 131 { 132 Console.WriteLine(""); 133 foreach (int dato in pila) 134 { 135 Console.WriteLine(" | |"); 136 if( dato <10) 137 Console.WriteLine(" | 0{0} |", dato); 138 else 139 Console.WriteLine(" | {0} |", dato); 140 Console.WriteLine(" |______|"); 141 } 142 Console.WriteLine("\nPresione cualquier tecla para continuar..."); 143 Console.ReadKey(); 144 } 145 else 146 { 147 mensaje("La Pila esta vacia"); 148 } 149 } 150 } 151 }
Ejecuta el programa
Descargar código fuente
enjoy!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En este tutorial realizaremos un proyecto web de un «sitio multi lenguaje» o «web multi idiomas» como prefieran llamarlo...
En este tutorial crearemos un sencillo juego de memoria en lenguaje java. Necesitamos IDE Netbeans 7.x Editor de imágene...
La clase Canvas (Lienzo) de Android es una superficie que nos permite pintar figuras, texto e imágenes utilizando para...
En este post veremos como imprimir secciones de un formulario en java implementando la Interface Printable. La clase que...
Geany es un editor de texto para Sistemas Operativos Linux, windows y MAC que utiliza el kit de herramientas GTK+ con ca...
Entre las muchas aplicaciones que hay en la playstore de google están las galerías de fotos de chicas 🙂 que tantos nos e...
Los comentarios estan cerrados
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...
Excelente aporte gracias