Autor Tema: Ayuda sobre un ejercicio me falta poco por terminar un ejercicio de matrizes c#  (Leído 1123 veces)

javierx0246

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".