Foros aprenderaprogramar.com
		Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: javierx0246 en 28 de Noviembre 2022, 15:47
		
			
			- 
				Hola me falta muy poco por terminar un ejercicio de c# de matrices y necesito vuestra ayuda gracias
 
 
 Lo que me falla es que cuando se alcance el maximo de entradas me diga un error diciendo que esta lleno y por estoy con un switch para los tres valores
 
 
 Enunciado del ejercicio
 
 
 
 Escribe un programa que se encargue de controlar el aforo de un Multicine:
 
 El cine tendrá tres salas (A, B, C), en las cuales se pasarán diariamente tres sesiones (1ª, 2ª, 3ª).
 El número máximo de personas de cada una de las salas es:
 Sala A = 200 personas.
 Sala B = 150 personas.
 Sala C = 125 personas.
 Tendremos un menú con dos opciones:
 Venta de entradas.
 Estadística de aforo.
 Para salir del programa se tendrá que pulsar la tecla ESC.
 
 Cada vez que se realice una venta de entradas se pedirá:
 
 El número de entradas que se van a comprar.
 La sala
 La sesión a la que se quiere asistir.
 
 Las entradas vendidas quedarán registradas en la matriz bi-dimensional.
 Si el número de entradas sobrepasa el aforo máximo de la sala, se indicará mediante un mensaje por pantalla.
 
 En la opción de estadística de aforo, se mostrará una tabla de la siguiente manera:
 
 Sesión1           Sesión2           Sesión3
 SalaA      178      100      99
 SalaB      12      50      100
 SalaC      32      101      55
 
 
 
 
 
 
 Mi codigo
 
 
 
 
 
 
 
 
 using System.Text;
 internal class Program
 {
 public static char Salas()
 {
 bool result;
 char sala;
 
 
 do
 {
 Console.WriteLine("Introduce una sala ");
 sala = char.Parse(Console.ReadLine());
 result = sala == 'A' || sala == 'B' || sala == 'C';
 if (result)
 {
 Console.WriteLine("Sala correcta");
 
 }
 else
 {
 Console.WriteLine("Sala incorrecta");
 }
 } while (!result);
 
 
 
 
 return sala;
 
 }
 public static int EncontrarSesion()
 {
 bool result;
 int Sesiones = 0;
 do
 {
 Console.WriteLine("Introduce un numero de sesion");
 Sesiones = int.Parse(Console.ReadLine());
 result = Sesiones == 1 || Sesiones == 2 || Sesiones == 3;
 
 if (result)
 {
 Console.WriteLine("Sesion encontrada");
 }
 else
 {
 Console.WriteLine("No encontrada");
 }
 } while (!result);
 return Sesiones;
 
 }
 
 public static int Sala(char sala)
 {
 int habitacion = 0;
 switch (sala)
 {
 case 'A':
 {
 habitacion = 0;
 break;
 }
 case 'B':
 {
 habitacion = 1;
 break;
 }
 case 'C':
 {
 habitacion = 2;
 break;
 }
 }
 return habitacion;
 
 }
 
 public static void VentaEntradas(int[,] aforo)
 {
 
 int entradas = 0;
 int maxForo = 0;
 int salas = Sala(Salas());
 int Sesionesa = Sesiones(EncontrarSesion());
 
 
 Console.WriteLine("Cuantas Entradas necesita");
 entradas = int.Parse(Console.ReadLine());
 
 switch (salas)
 {
 case 0:
 {
 if (aforo[salas, Sesionesa] + entradas < maxForo)
 {
 
 aforo[salas, Sesionesa] += entradas;
 maxForo = 200;
 
 }
 break;
 }
 }
 
 
 
 
 
 }
 public static void Mostrar(int[,] aforo)
 {
 for (int i = 0; i < aforo.GetLength(0); i++)
 {
 for (int j = 0; j < aforo.GetLength(1); j++)
 {
 Console.Write($"{aforo[i, j],5}");
 }
 Console.WriteLine(" ");
 }
 }
 
 public static int Sesiones(int sesion1)
 {
 int sesion = 0;
 
 switch (sesion1)
 {
 case 1:
 {
 sesion = 0;
 break;
 }
 case 2:
 {
 sesion = 1;
 break;
 }
 case 3:
 {
 sesion = 2;
 break;
 }
 }
 return sesion;
 
 }
 private static void Main(string[] args)
 {
 int[,] aforoMulticine = new int[3, 3];
 
 
 VentaEntradas(aforoMulticine);
 Mostrar(aforoMulticine);
 
 
 
 Console.ReadLine();
 
 
 }
 
 }
 
 
 
 Gracias