Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / C Sharp / Pilas con C Sharp (Ejercicio Resuelto)

Pilas con C Sharp (Ejercicio Resuelto)

Autor jc mouse jueves, septiembre 25, 2014

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.

pilas

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

stack

Descargar código fuente

enjoy!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

Crea tu JLabel con hipervinculo

Crea tu JLabel con hipervinculo

Si queremos añadir un enlace web a una aplicación en java, podemos hacer uso de botones o etiquetas, incluso se puede añ...

Juego de Tragamonedas o Tragaperras

Juego de Tragamonedas o Tragaperras

El juego de las tragamonedas o tragaperras es un juego muy popular de azar que se puede encontrar tanto en los casinos o...

JToggleButton y base de datos

JToggleButton y base de datos

En este tutorial veremos una forma de trabajar con el swing  JToggleButton y una base de datos para dar respuesta a una...

Leer archivos de texto

Leer archivos de texto

En este tutorial de android, vemos como leer un archivo de texto y mostrarlo en pantalla del celular, el texto elegido e...

Ejemplo práctico de MVC java Swing con Netbeans

Ejemplo práctico de MVC java Swing con Netbeans

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la inter...

Cliente Retrofit – Web Service

Cliente Retrofit – Web Service

Continuando el post de «Introducción a Retrofit» donde realizamos una breve preparación a lo que es el uso de la librerí...

1 comentario en “Pilas con C Sharp (Ejercicio Resuelto)”

  1. Gustavo Jaen dice:

    Excelente aporte gracias

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Existe una gran cantidad de contenido sobre productividad, trucos, consejos y trabajo y más. Pero, ¿Qué pasa con esos mo...

En este post te enseño a usar una herramienta de Inteligencia Artificial para animar tus fotografias y esto completament...

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

Herramientas

Generador de Enlaces a Whatsapp