josecarlosgutierrez2002@gmail.com

 avatar
Jose20025
c_cpp
2 years ago
14 kB
2
Indexable
Never
#include <iostream>
#include <windows.h>

using namespace std;

// Caracteres ASCII para el uso de tildes y ñ
char ei = 130, ai = 160, ui = 163, ii = 161, oi = 162, inpreg = 168, inexcl = 173, en = 164;

string cartelera[10], comestibles[6];
int precioComestibles[6];
string horario = "1. 15:00 - 17:00 /  2. 18:00 - 19:30  /  3. 20:00 - 21:30";
char butacas[5][6];

void menu();
void rayitas(int n);
void menuCartelera();
void menuComestibles();
void registroComestibles();
void compraEntradas();
void compraComestibles();
void mostrarButacas();
void registroButacas();
void registroCartelera();

int main()
{
    registroCartelera();
    registroButacas();
    registroComestibles();
    char c;

    cout << inexcl << "Holaaaa!" << endl;
    Beep(750, 200);
    Sleep(700);
    cout << "Mi nombre es Nicole, y hoy te asistir" << ei << " en CINEMAPLUS" << endl;
    Beep(750, 200);
    Sleep(700);
    cout << endl;
pregunta:
    cout << inpreg << "Desea acceder al men" << ui << " principal?" << endl;
    Beep(750, 200);
    cout << "Si[s]/No[n]" << endl;
    cout << "Respuesta: ";
    cin >> c;

    if (c == 's' || c == 'S')
    {
        menu();
    }
    else if (c == 'n' || c == 'N')
    {
        cout << inexcl << "Hasta luego!" << endl;
        Sleep(800);
        exit(1);
    }
    else
    {
        cout << "Tiene que ser exclusivamente [s] o [n]" << endl;
        cout << inexcl << "Vuelva a ingresar!" << endl;
        Sleep(1400);
        system("cls");
        goto pregunta; // Va hacia el punto de control
    }

    return 0;
}

void menu()
{
    int opcion;
    system("cls");

    string palabra = "abienvenido a cinemaplus!";

    cout << inexcl << "Bienvenid@ a CINEMAPLUS!" << endl;
    rayitas(palabra.size());
    cout << "1. Ver cartelera" << endl;
    cout << "2. Comprar comestibles" << endl;
    cout << "3. Comprar entradas" << endl;
    cout << "4. Salir" << endl;

    cout << "\nRespuesta: ";
    cin >> opcion;

    switch (opcion)
    {
    case 1:
    {
        menuCartelera();
        break;
    }

    case 2:
    {
        compraComestibles();
        break;
    }

    case 3:
    {
        compraEntradas();
        break;
    }

    case 4:
    {
        cout << endl;
        cout << inexcl << "Hasta luego!" << endl;
        Sleep(800);
        exit(1);
        break;
    }

    default:
    {
        cout << endl;
        cout << "Esa opci" << oi << "n no existe" << endl;
        cout << "Introduzca nuevamente..." << endl;
        Sleep(1500);
        menu();
        break;
    }
    }
}

void rayitas(int n)
{
    for (int i = 1; i <= n; i++)
    {
        cout << "-";
        Sleep(30);
    }
    Beep(750, 200);
    cout << endl;
}

void menuCartelera()
{
    string palabra = "Cartelera";

    system("cls");
    cout << "Cartelera" << endl;
    rayitas(palabra.size());

    for (int i = 0; i < 10; i++)
    {
        cout << i + 1 << ". " << cartelera[i] << endl;
        cout << horario << endl;
        cout << endl;
    }

    cout << "\nPresione enter para volver al men" << ui << " principal...";
    system("pause -->NULL");
    menu();
}

void registroCartelera()
{
    cartelera[0] = "The Notebook";
    cartelera[1] = "El Espacio Entre Nosotros";
    cartelera[2] = "Riesgo Bajo Cero";
    cartelera[3] = "Spider-Man: No Way Home";
    cartelera[4] = "KingsMan";
    cartelera[5] = "Venom II: Let There Be Carnage";
    cartelera[6] = "El Ingeniero";
    cartelera[7] = "Interstellar";
    cartelera[8] = "Apollo 13";
    cartelera[9] = "La Duda de Darwin";
}

void menuComestibles()
{
    string palabra = "Comestibles";

    system("cls");
    cout << "Comestibles" << endl;
    rayitas(palabra.size());

    cout << endl;
    for (int i = 0; i < 6; i++)
    {
        cout << i + 1 << ". " << comestibles[i] << endl;
        cout << "Precio: " << precioComestibles[i] << " bs." << endl;
    }
}

void registroComestibles()
{
    comestibles[0] = "Papas";
    comestibles[1] = "Nachos";
    comestibles[2] = "Pipoca Mediana";
    comestibles[3] = "Pipoca Grande";
    comestibles[4] = "Soda Mediana";
    comestibles[5] = "Soda Grande";

    precioComestibles[0] = 15;
    precioComestibles[1] = 15;
    precioComestibles[2] = 20;
    precioComestibles[3] = 30;
    precioComestibles[4] = 10;
    precioComestibles[5] = 15;
}

void compraComestibles()
{
    int com;
    string productos[50];
    int prod = 1, monto = 0;
    int cantidades[50], precios[50];
    char res;

    menuComestibles();
    cout << endl;
pregunta3:
    cout << inpreg << "Cu" << ai << "l es tu elecci" << oi << "n?" << endl;
    cout << "Respuesta: ";
    cin >> com;

    if (com >= 0 && com < 7)
    {
        cout << "Cantidad: ";
        cin >> cantidades[prod - 1];
        cout << endl;
        cout << inexcl << "Excelente elecci" << oi << "n!" << endl;
        cout << "Producto: " << comestibles[com - 1] << endl;
        cout << "Precio: " << precioComestibles[com - 1] << " bs." << endl;
        precios[prod - 1] = precioComestibles[com - 1];
        cout << "Cantidad: " << cantidades[prod - 1] << endl;
        productos[prod - 1] = comestibles[com - 1];
        monto += (precioComestibles[com - 1] * cantidades[prod - 1]);

    pregunta:
        cout << inpreg << "Desea elegir otro producto?" << endl;
        cout << "Si[s]/No[n]" << endl;
        cout << "Respuesta: ";
        cin >> res;

        if (res == 's' || res == 'S')
        {
            while (res == 's' || res == 'S')
            {
                prod++;

            pregunta2:
                cout << inpreg << "Cu" << ai << "l es tu elecci" << oi << "n?" << endl;
                cout << "Respuesta: ";
                cin >> com;
                if (com >= 0 && com < 7)
                {
                    cout << "Cantidad: ";
                    cin >> cantidades[prod - 1];
                    cout << endl;

                    cout << inexcl << "Excelente elecci" << oi << "n!" << endl;
                    cout << "Producto: " << comestibles[com - 1] << endl;
                    cout << "Precio: " << precioComestibles[com - 1] << " bs." << endl;
                    precios[prod - 1] = precioComestibles[com - 1];
                    productos[prod - 1] = comestibles[com - 1];
                    monto += (precioComestibles[com - 1] * cantidades[prod - 1]);

                    cout << endl;
                    cout << inpreg << "Desea elegir otro producto?" << endl;
                    cout << "Si[s]/No[n]" << endl;
                    cout << "Respuesta: ";
                    cin >> res;
                }
                else
                {
                    cout << endl;
                    cout << inexcl << "El producto no existe!" << endl;
                    cout << "Introduzca nuevamente..." << endl;
                    goto pregunta2;
                }
            }
        }
        else if (res == 'n' || res == 'N')
        {
        }
        else
        {
            cout << "Tiene que ser exclusivamente [s] o [n]" << endl;
            cout << inexcl << "Vuelva a ingresar!" << endl;
            Sleep(1400);
            system("cls");
            goto pregunta; // Va hacia el punto de control
        }

        system("cls");
        string palabra = "Factura";

        rayitas(palabra.size());
        cout << "Factura" << endl;
        rayitas(palabra.size());
        cout << endl;

        for (int i = 0; i < prod; i++)
        {
            cout << "Producto " << i + 1 << ": " << productos[i] << endl;
            cout << "Cantidad: " << cantidades[i] << endl;
            cout << "Precio: " << precios[i] << " bs." << endl;
            cout << "Monto: " << cantidades[i] * precios[i] << " bs." << endl;
            cout << endl;
        }
        rayitas(palabra.size());
        cout << "Monto TOTAL a pagar: " << monto << " bs." << endl;
    }
    else
    {
        cout << endl;
        cout << inexcl << "El producto no existe!" << endl;
        cout << "Introduzca nuevamente..." << endl;
        Sleep(1500);
        goto pregunta3;
    }
}

void registroButacas()
{
    char a = 'A';
    char b;

    for (int i = 0; i < 5; i++)
    {
        b = '1';

        for (int j = 0; j < 6; j++)
        {
            if (j == 0)
            {
                butacas[i][j] = a++;
            }
            else
            {
                butacas[i][j] = b++;
            }
        }
    }
}

void mostrarButacas()
{
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 6; j++)
        {
            cout << butacas[i][j] << " ";
        }

        if (i + 1 != 5)
        {
            cout << endl;
            for (int k = 0; k < 12; k++)
            {
                cout << "-";
            }
            cout << endl;
        }
        else
        {
            cout << endl;
        }
    }
}

void compraEntradas()
{
    string palabra = "Compra de entradas";
    int pelicula, horari, entradas;
    string nombrePeli;
    string horarioOficial;
    string asientos = "";
    string c1, f1;

    system("cls");
    cout << "Compra de Entradas" << endl;
    rayitas(palabra.size());

    cout << "\nCartelera" << endl;
    rayitas(9);

    for (int i = 0; i < 10; i++)
    {
        cout << i + 1 << ". " << cartelera[i] << endl;
    }

peli:
    cout << "\nElija el n" << ui << "mero de pel" << ii << "cula a ver: ";
    cin >> pelicula;

    if (pelicula >= 1 && pelicula <= 10)
    {
        nombrePeli = cartelera[pelicula - 1];
    }
    else
    {
        cout << "Ese nombre de pelicula no existe" << endl;
        cout << "Introduzca nuevamente, por favor" << endl;
        Sleep(1500);
        goto peli;
    }

    cout << endl;
    cout << inexcl << "Wow!" << endl;
    cout << "Yo tambi" << ei << "n hubiera elegido esa pel" << ii << "cula" << endl;

pregunta:
    cout << horario << endl;
    cout << "\nPor favor, seleccione su horario: ";
    cin >> horari;

    if (horari >= 1 && horari <= 3)
    {
        if (horari == 1)
        {
            horarioOficial = "15:00 - 17:00";
        }
        else if (horari == 2)
        {
            horarioOficial = "18:00 - 19:30";
        }
        else
        {
            horarioOficial = "20:00 - 21:30";
        }
    }
    else
    {
        cout << "Esa opci" << oi << "n de horario no est" << ai << " disponible" << endl;
        cout << "Seleccione otro, por favor..." << endl;
        Sleep(800);
        goto pregunta;
    }

    cout << endl;
    cout << inpreg << "Cuantas entradas desea comprar?: ";
    cin >> entradas;

    system("cls");
    char f, c;
    int fila, columna;
    int aux = 0;

    cout << "Ahora veamos las butacas" << endl;
    for (int i = 1; i <= entradas; i++)
    {
        mostrarButacas();
        cout << endl;
    fil:
        cout << "Seleccione la fila: ";
        cin >> f;

        if (toupper(f) >= 'A' && toupper(f) <= 'E')
        {
        col:
            cout << "Seleccione la columna: ";
            cin >> c;
            if (c >= '1' && c <= '5')
            {
                switch (f)
                {

                case 'a':
                case 'A':
                {
                    fila = 0;
                    break;
                }

                case 'b':
                case 'B':
                {
                    fila = 1;
                    break;
                }

                case 'c':
                case 'C':
                {
                    fila = 2;
                    break;
                }

                case 'd':
                case 'D':
                {
                    fila = 3;
                    break;
                }

                case 'e':
                case 'E':
                {
                    fila = 4;
                    break;
                }
                }

                switch (c)
                {
                case '1':
                    columna = 1;
                    break;

                case '2':
                    columna = 2;
                    break;

                case '3':
                    columna = 3;
                    break;

                case '4':
                    columna = 4;
                    break;

                case '5':
                    columna = 5;
                    break;
                }
                c1 = c;
                f1 = toupper(f);
            }
            else
            {
                cout << "Columna incorrecta" << endl;
                cout << "Introduzca nuevamente..." << endl;
                Sleep(1500);
                goto col;
            }
        }
        else
        {
            cout << "Fila incorrecta" << endl;
            cout << "Introduzca nuevamente..." << endl;
            Sleep(1500);
            goto fil;
        }

        if (butacas[fila][columna] != 'X')
        {
            butacas[fila][columna] = 'X';
            system("cls");
            if (i + 1 != entradas)
            {
                asientos += f1 + "-" + c1 + ", ";
            }
            else
            {
                asientos += f1 + "-" + c1;
            }
        }
        else
        {
            cout << inexcl << "Oh!" << endl;
            cout << "Parece que esa butaca ya est" << ai << " ocupada, por favor, seleccione otra..." << endl;
            Sleep(1500);
            system("cls");
            mostrarButacas();
            goto fil;
        }
    }

    system("cls");
    palabra = "factura";

    rayitas(palabra.size());
    cout << "Factura" << endl;
    rayitas(palabra.size());

    cout << "Nombre de la pelicula: " << nombrePeli << endl;
    cout << "Horario: " << horarioOficial << endl;
    cout << "Cantidad de entradas: " << entradas << endl;
    cout << "Butacas: " << asientos << endl;
    cout << "\nEl costo por entrada es de 25 bs." << endl;
    cout << "El total a pagar ser" << ii << "a de: " << entradas * 25 << endl;
}