#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;
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;
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;
}
}
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");
}
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;
}
}
mostrarButacas();
}