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

Borrar código protegido en Netbeans

Borrar código protegido en Netbeans

Cuando programamos visualmente desde Netbeans, el IDE nos ayuda mucho al generar rapidamente código predefinido, sin emb...

Construye tu swing Versus para el mundial 2014

Construye tu swing Versus para el mundial 2014

Para ponerse a tono con el ambiente mundialista de Brasil 2014, en este post construiremos un swing java al que llamarem...

Conectar C Sharp con MySQL

Conectar C Sharp con MySQL

Ya tengo varios post sobre conexión a base de datos en varios lenguajes y claro no podía faltar c#, el siguiente tutoria...

Efecto de explosión al abrir un JPanel

Efecto de explosión al abrir un JPanel

En este tutorial crearemos un interesante efecto de explosión al momento de abrir un JPanel, este efecto puede extenders...

HSQLDB: Gestor de bases de datos libre en java

HSQLDB: Gestor de bases de datos libre en java

HyperSQL DataBase (HSQLDB) es un moderno administrador de bases de datos relacionales, es portátil e implementado en jav...

ArrayDeque: Cola doblemente terminada

ArrayDeque: Cola doblemente terminada

Una cola doblemente terminada o deque es una estructura de datos lineal que permite insertar y eliminar elementos por am...

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

¿Que es el Ciberbullying? Ciberbullying es la unión de dos palabras en inglés cyber + bullying, en español lo conocemos...

Tradukisto es una biblioteca para Java 8 creada para convertir números enteros o cantidades de dinero a sus equivalentes...

Las aplicaciones con IA (Inteligencia Artificial) son cada vez más comunes y se encuentran en diferentes dispositivos de...

Tink es una biblioteca de cifrado desarrollada por un grupo de criptógrafos e ingenieros de seguridad de Google lanzado...

Android Bolivia

MAUS