C sharp - Problema c sharp "switch"

 
Vista:
sin imagen de perfil

Problema c sharp "switch"

Publicado por Augusto (1 intervención) el 01/06/2017 02:05:47
Hola gente! Tengo una duda con la funcion switch. Tengo que hacer un menu para una empresa de omnibus, y el problema es que nose como volver para atras en el menu. Les dejo el codigo. Tienen que entrar a "ARMADO DE RECORRIDOS" y les van a aparecer 4 opciones a elejir. La opcion 4 es "VOLVER". Mi pregunta es ¿como hago para volver al menu anterior? Saludos!

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
class Program
	{
		public static void Main(string[] args)
		{
 
			Console.WriteLine("********************************************************************************"
			                 +"****                                Micritos                                ****"
			                 +"********************************************************************************");
 
 
			Console.WriteLine("¡A que modulo desea ingresar?");
 
			Console.WriteLine("\n1) Armado de recorridos" +
			                  "\n2) Gestion de choferes" +
			                  "\n3) Ventas de pasaje" +
			                  "\n4) Estadisticas" +
			                  "\n5) Salir del sistema");
 
			//Uso la funcion switch para armar un menu
			int opcion=int.Parse(Console.ReadLine());
			switch(opcion)
			{
 
				case 1:
 
					Console.WriteLine("\n1) Alta de terminales" +
					                  "\n2) Alta de omnibus" +
					                  "\n3) Alta de recorridos" +
					                  "\n4) Volver");
 
 
					int opcion2=int.Parse(Console.ReadLine());
 
//Anido o creo un switch secundario para generar un sub menu de una determina opcion.(caso 1)
//Obviamente no tiene que haber un "break" en "case 1", sino me cortaria el caso y no puede continuar al switch secundario.
			switch(opcion2)
			{
 
				case 1:
					string te="", ci="";
					Console.WriteLine("Ingrese el nombre de la terminal");
					te=Console.ReadLine();
					Console.WriteLine("Ingrese el nombre de la ciudad");
					ci=Console.ReadLine();
 
					Console.WriteLine("La terminal fue dada de alta correctamente");
					break;
 
				case 2:
					string ma="", ti="";
					int mo= 0 , ca= 0;
 
					Console.WriteLine("Ingrese la marca");
					ma=Console.ReadLine();
					Console.WriteLine("Ingrese el modelo");
					mo=int.Parse(Console.ReadLine());
					Console.WriteLine("Ingrese la capacidad");
					ca=int.Parse(Console.ReadLine());
					Console.WriteLine("Ingrese el tipo");
					ti=Console.ReadLine();
					Console.WriteLine("El omnibus fue dado de alta correctamente. A la unidad se le asigno el"
					                  +" numero 5");
					break;
 
				case 3:
 
					Console.WriteLine("Ingrese las terminales del recorrido, ingrese 0 para finalizar");
					ArrayList l=new ArrayList();
					string z="1)La plata";
					string z1="\n2)Rosario";
					string z2="\n3)Bariloche";
					l.Add(z+z1+z2);
					foreach (string x in l)
					{
						Console.WriteLine(x);
					}
					int opcion3=int.Parse(Console.ReadLine());
 
 
				switch(opcion3)
				{
					case 1:
						Console.WriteLine("1) La plata");
 
					break;
			}
			break;
			}
//Una vez terminado el switch secundario, voy a colocar un break, para hacer un corte al switch secundario.
			break;
 
			}
 
			Console.ReadKey(true);
 
		}
	}
}
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

Problema c sharp "switch"

Publicado por Damian (9 intervenciones) el 06/06/2017 17:32:30
Aqui el código que buscas, te aviso que es bastante mejorable pues lo hice en un momento que tenia libre.
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
103
104
105
106
107
using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            ConsoleKeyInfo tecla;
            do
            {
                string terminal = string.Empty;
                string ciudad = string.Empty;
                string marca = string.Empty; ;
                string tipo = string.Empty;
                int modelo = 0;
                int capacidad = 0;
 
                Console.CursorVisible = false;
                UIMenu();
                tecla = Console.ReadKey(true);
                switch (tecla.Key)
                {
                    case ConsoleKey.D1:
                        Console.Clear();
                        Console.WriteLine("Entraste a Gestion de choferes.\n\n");
                        Console.WriteLine("\n1) Alta de terminales" +
                                              "\n2) Alta de omnibus" +
                                              "\n3) Alta de recorridos" +
                                              "\n4) Volver");
                        tecla = Console.ReadKey(true);
                        switch (tecla.Key)
                        {
                            case ConsoleKey.D1:
 
                                Console.WriteLine("Ingrese el nombre de la terminal");
                                terminal = Console.ReadLine();
                                Console.WriteLine("Ingrese el nombre de la ciudad");
                                ciudad = Console.ReadLine();
 
                                Console.WriteLine("La terminal fue dada de alta correctamente.\nPulsa una tecla para volver al menú.");
                                Console.ReadKey();
                                break;
                            case ConsoleKey.D2:
                                Console.WriteLine("Ingrese la marca");
                                marca = Console.ReadLine();
                                Console.WriteLine("Ingrese el modelo");
                                modelo = int.Parse(Console.ReadLine());
                                Console.WriteLine("Ingrese la capacidad");
                                capacidad = int.Parse(Console.ReadLine());
                                Console.WriteLine("Ingrese el tipo");
                                tipo = Console.ReadLine();
                                Console.WriteLine("El omnibus fue dado de alta correctamente. A la unidad se le asigno el"
                                                  + " numero 5");
                                break;
                            case ConsoleKey.D3:
 
 
                                Console.WriteLine("Ingrese la marca");
                                marca = Console.ReadLine();
                                Console.WriteLine("Ingrese el modelo");
                                modelo = int.Parse(Console.ReadLine());
                                Console.WriteLine("Ingrese la capacidad");
                                capacidad = int.Parse(Console.ReadLine());
                                Console.WriteLine("Ingrese el tipo");
                                tipo = Console.ReadLine();
                                Console.WriteLine("El omnibus fue dado de alta correctamente. A la unidad se le asigno el"
                                                  + " numero 5");
                                break;
                            case ConsoleKey.D4:
                                break;
                        }
                        break;
                    case ConsoleKey.D2:
                        Console.Clear();
                        Console.WriteLine("Entraste a Gestion de choferes.\nPulsa una tecla para volver al menú.");
                        Console.ReadKey();
                        break;
                    case ConsoleKey.D3:
                        Console.Clear();
                        Console.WriteLine("Entraste a Ventas de pasajes.\nPulsa una tecla para volver al menú.");
                        Console.ReadKey();
                        break;
                    case ConsoleKey.D4:
                        Console.Clear();
                        Console.WriteLine("Entraste a Estadisticas.\nPulsa una tecla para volver al menú.");
                        Console.ReadKey();
                        break;
                    //Se pone default que no haga nada si no es una tecla del 1 al 5.
                    default:
                        break;
                }
            } while (tecla.Key != ConsoleKey.D5);
        }
 
        //El menú que se muestra al iniciar (La interfaz gráfica por así decirlo)
        static void UIMenu()
        {
            Console.Clear();
            Console.WriteLine("\n1) Armado de recorridos" +
              "\n2) Gestion de choferes" +
              "\n3) Ventas de pasaje" +
              "\n4) Estadisticas" +
              "\n5) Salir del sistema");
        }
    }
}

Espero que te ayude, te dejo el .cs por si te sirve más así.

PD: Todos los switch llevan break eso de no ponerlo no se puede hacer.
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