C sharp - Switch - Case - Menu multiple

 
Vista:
sin imagen de perfil

Switch - Case - Menu multiple

Publicado por frik_1 (1 intervención) el 10/03/2014 16:05:02
Buenas, soy eze y aprendiendo a programar en C#.
He estado buscando algo de info sobre un menu de seleccion que no puedo terminar de armar.
Después de tanto buscar no me queda otra que preguntar porque ya le he dado vueltas y ahora me he liado aún más.
Podrían darme una mano por favor?
La idea es, tener un menu principal (menu1) en el cual tengo una opción que me lleva a un segundo menu (menu2) y teniendo la posibilidad desde este menu de volver al menu1.

A continuación adjunto el código.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
using System;
using System.Diagnostics;
 
namespace TestLog
{
	class Program
	{
 
		static void Main()
		{
			Menu();
		}
 
		static void Menu()
		{
 
			char opcion;
 
			do
			{
				Console.Clear();
				Console.WriteLine("\t************************");
				Console.WriteLine("\t*  1- OPCION1	               *");
				Console.WriteLine("\t*  2- OPCION2   		       *");
				Console.WriteLine("\t*  ..- OPCION..		       *");
				Console.WriteLine("\t*  ..- OPCION..		       *");
				Console.WriteLine("\t*  N - Configurar Parametr   *");
				Console.WriteLine("\t************************");
				Console.WriteLine("\t*  [0]- Salir                            *");
				Console.WriteLine("\t************************");
				Console.Write("Opcion: ");
				do {
					opcion = Console.ReadKey(true).KeyChar;
				} while(opcion <'0' || opcion > 'N'); //N cualquier valor dependiendo del menu 
				Console.WriteLine(opcion + "\n");
 
				switch (opcion)
				{
					case '1':
						Process.Start("cmd.exe", "dir");
						break;
 
					case '2':
						Process.Start("cmd.exe", "dir");
						break;
 
					case '3':
						funcionM();
						break;
				}
 
 
			}while (opcion!='0');
		}
		static void funcionM()
		{
			char opcion2;
			do
			{
				Console.Clear();
				Console.WriteLine("\t************************");
				Console.WriteLine("\t*         Configuracion Param  *");
				Console.WriteLine("\t************************");
				Console.WriteLine("\t* [1]- Opcion1                       *");
				Console.WriteLine("\t* [2]- OPCION2                     *");
				Console.WriteLine("\t* [3]- OPCION3                     *");
				Console.WriteLine("\t* [..]- OPCION..                     *");
				Console.WriteLine("\t* [..]- OPCION..                     *");
				Console.WriteLine("\t* [10]- Volver al menu prin    *");
				Console.WriteLine("\t* [N]- OPCIONN                     *");
				Console.WriteLine("\t************************");
				Console.Write("Opcion: ");
 
				do {
					opcion2 = Console.ReadKey(true).KeyChar;
				} while( (opcion2 <'0') || (opcion2 > '10')); //ESTO se que está mal, pero no sé cómo hacer para que me tome los valores de 2 cifras. El error que me devuelve es: Demasiados caracteres en literal de caracter - CS012
				Console.WriteLine(opcion2 + "\n");
				switch(opcion2)
				{
					case '1': //Aqui me da problemas con el Case, me dice que 1 ya fue usado antes ... :S El error que me devuelve es: Demasiados caracteres en literal de caracter - CS012
						Process.Start("cmd.exe", "dir");
						break;
 
					case '2':
						Process.Start("cmd.exe", "dir");
						break;
 
					case '12':
						Menu();
						break;
				}
			}while(!='10');
			//}
		}
		/*static void Salir()
		{
			Console.Clear();
			Console.WriteLine("Salir");
		}*/
 
	}
}

Gracias y salud2.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Switch - Case - Menu multiple

Publicado por jemp_intrepido (2 intervenciones) el 11/03/2014 22:58:07
Buenas tardes,


el do {}while{} que hace ahi, en dado caso agrega tu case dentro del ciclo

es la misma logica por cada case que usas, selecciona tu item del 2do menu y cuando dejes de usar la opcion roper el case con el brake.


Ahora bien inicias un proceso, en que momento lo finalizas????

saludos ...
www.itixmih.wordpress.com
jemp_intrepido
jempdulintre
jemp_dulce
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar