• Sábado 20 de Abril de 2024, 06:38

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - eze2k

Páginas: [1]
1
C# / menu - Switch case - C#
« en: Lunes 10 de Marzo de 2014, 16:18 »
Hola, soy nueva programando en C#, podrían darme una mano con menu que intento armar y ya me he liado bastante?.
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.

Código: [Seleccionar]
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 salu2

Páginas: [1]