Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / C Sharp / Pilas con C Sharp (Ejercicio Resuelto)

Pilas con C Sharp (Ejercicio Resuelto)

Por 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

Artículos similares

Archivos binarios en Java (Lectura/Escritura)

Según Santa Wikipedia: «Un archivo binario es un archivo informático que contiene información de cualquier tipo codifica[...]

Búsqueda dinámica en JList

Un JList nos permite almacenar objetos en una lista y mostrarlos gráficamente en una serie vertical en el cual el usuari[...]

Blog MVC en PHP (Código Fuente)

En este post dejo el código fuente de un blog en PHP desarrollado siguiendo el patrón de diseño MVC (Modelo, Vista y Con[...]

Introduccion a la programacion shell

En este post veremos una muy pequeña introducción de lo que es el mundo de la programación en shell de Linux. Necesitamo[...]

SQLite: Encriptación de datos

SQLite es un sistema de gestión de bases de datos relacional,  escrita en C, si se desea hacer uso de encriptación con S[...]

Construye la interfaz de facebook

En este tutorial veremos un poco lo que es el diseño de interfaces en android, en lugar de colocar el ejemplo de uso de[...]