Generation

fix invalid codeWed, 19 Jul 2023

#include <iostream> #include <string> #include <list> #include <vector> #include <ctime> using namespace std; const int NUM_MAQUINAS = 6; const int NUM_PS5 = 3; const int NUM_XBOX = 3; const int NUM_SWITCH = 3; const float PRECIO_PS5 = 5.0; const float PRECIO_XBOX = 6.0; const float PRECIO_SWITCH = 4.0; struct Maquina { int id; bool ocupada; string videojuego; string consola; string tiempoRestante; string horaEntrada; string horaSalida; }; vector<Maquina> maquinas(NUM_MAQUINAS); list<string> reservas; void inicializarMaquinas() { for (int i = 0; i < NUM_MAQUINAS; i++) { maquinas[i].id = i + 1; maquinas[i].ocupada = false; maquinas[i].videojuego = ""; maquinas[i].consola = ""; maquinas[i].tiempoRestante = ""; maquinas[i].horaEntrada = ""; maquinas[i].horaSalida = ""; } } void mostrarMenu() { cout << "======BIENVENIDOS A ENTRETENIMIENTO======" << endl; cout << "--------------------------------------------" << endl; cout << "1. Listar ocupación de máquinas" << endl; cout << "2. Videojuegos disponibles y consolas" << endl; cout << "3. Alquilar máquina" << endl; cout << "4. Registrar reservas" << endl; cout << "5. Gestionar pagos" << endl; cout << "6. Vender productos" << endl; cout << "7. Alquiler de mandos" << endl; cout << "8. Salir" << endl; cout << "--------------------------------------------" << endl; cout << "Ingrese su opción: "; } void listarOcupacionMaquinas() { cout << "Listado de ocupación de máquinas:" << endl; cout << "--------------------------------" << endl; for (int i = 0; i < NUM_MAQUINAS; i++) { cout << "Máquina " << maquinas[i].id << ":" << endl; if (maquinas[i].ocupada) { cout << "Estado: Ocupada" << endl; cout << "Videojuego: " << maquinas[i].videojuego << endl; cout << "Consola: " << maquinas[i].consola << endl; cout << "Tiempo restante: " << maquinas[i].tiempoRestante << endl; cout << "Hora de entrada: " << maquinas[i].horaEntrada << endl; cout << "Hora de salida: " << maquinas[i].horaSalida << endl; } else { cout << "Estado: Desocupada" << endl; } cout << "--------------------------------" << endl; } } void listarVideojuegosConsolas() { cout << "Videojuegos disponibles y consolas:" << endl; cout << "----------------------------------" << endl; cout << "1. PlayStation 5 (PS5): -- Precio S/5.00 --" << endl; cout << "- Spider-Man: Miles Morales" << endl; cout << "- Mortal Kombat" << endl; cout << "- God of War: Ragnarok" << endl; cout << "2. Xbox Series X/S: -- Precio S/6.00 --" << endl; cout << "- Halo Infinite" << endl; cout << "- Forza Horizon 5" << endl; cout << "- Fifa 2023" << endl; cout << "3. Nintendo Switch: -- Precio S/4.00 --" << endl; cout << "- The Legend of Zelda: Breath of the Wild" << endl; cout << "- Super Smash Bros." << endl; cout << "- Pokémon Sword/Shield" << endl; cout << "----------------------------------" << endl; } int buscarMaquinaDesocupada() { for (int i = 0; i < NUM_MAQUINAS; i++) { if (!maquinas[i].ocupada) { return i; } } return -1; } string obtenerHoraActual() { time_t now = time(0); tm* localTime = localtime(&now); char buffer[80]; strftime(buffer, sizeof(buffer), "%I:%M %p", localTime); return buffer; } void alquilarMaquina() { string dni, nombre, apellido; int opcionConsola, opcionVideojuego; int maquinaIndex; string tiempoActual; string horaEntrada, horaSalida; cout << "Ingrese su DNI: "; getline(cin, dni); cout << "Ingrese su nombre: "; getline(cin, nombre); cout << "Ingrese su apellido: "; getline(cin, apellido); maquinaIndex = buscarMaquinaDesocupada(); if (maquinaIndex == -1) { cout << "Lo sentimos, no hay máquinas disponibles en este momento." << endl; return; } tiempoActual = obtenerHoraActual(); cout << "Tiempo actual: " << tiempoActual << endl; cout << "Ingrese la hora de entrada (formato hh:mm AM/PM): "; cin.ignore(); getline(cin, horaEntrada); cout << "Ingrese la hora de salida (formato hh:mm AM/PM): "; getline(cin, horaSalida); listarVideojuegosConsolas(); // Mostrar las opciones de consola y videojuego cout << "Seleccione una consola: "; cin >> opcionConsola; cout << "Seleccione un videojuego: "; cin >> opcionVideojuego; // Validar las opciones seleccionadas por el usuario if (opcionConsola < 1 || opcionConsola > 3 || opcionVideojuego < 1 || opcionVideojuego > 3) { cout << "Opción inválida. Por favor, intente nuevamente." << endl; return; } // Asignar la consola y el videojuego seleccionados a la máquina string consola, videojuego; if (opcionConsola == 1) { consola = "PlayStation 5 (PS5)"; if (opcionVideojuego == 1) videojuego = "Spider-Man: Miles Morales"; else if (opcionVideojuego == 2) videojuego = "Mortal Kombat"; else if (opcionVideojuego == 3) videojuego = "God of War: Ragnarok"; } else if (opcionConsola == 2) { consola = "Xbox Series X/S"; if (opcionVideojuego == 1) videojuego = "Halo Infinite"; else if (opcionVideojuego == 2) videojuego = "Forza Horizon 5"; else if (opcionVideojuego == 3) videojuego = "Fifa 2023"; } else if (opcionConsola == 3) { consola = "Nintendo Switch"; if (opcionVideojuego == 1) videojuego = "The Legend of Zelda: Breath of the Wild"; else if (opcionVideojuego == 2) videojuego = "Super Smash Bros."; else if (opcionVideojuego == 3) videojuego = "Pokémon Sword/Shield"; } maquinas[maquinaIndex].ocupada = true; maquinas[maquinaIndex].videojuego = videojuego; maquinas[maquinaIndex].consola = consola; maquinas[maquinaIndex].tiempoRestante = "Tiempo restante calculado"; maquinas[maquinaIndex].horaEntrada = horaEntrada; maquinas[maquinaIndex].horaSalida = horaSalida; cout << "Alquiler registrado con éxito." << endl; } void registrarReservas() { string nombre, apellido, dni; string horaReserva; int maquinaIndex; cout << "Ingrese su nombre: "; getline(cin, nombre); cout << "Ingrese su apellido: "; getline(cin, apellido); cout << "Ingrese su DNI: "; getline(cin, dni); cout << "Hora de reserva: "; cin >> horaReserva; cout << "Máquinas ocupadas:" << endl; bool maquinasOcupadas = false; for (int i = 0; i < NUM_MAQUINAS; i++) { if (maquinas[i].ocupada) { maquinasOcupadas = true; cout << "Máquina " << maquinas[i].id << endl; } } if (!maquinasOcupadas) { cout << "Todas las máquinas están disponibles en este momento." << endl; return; } cout << "Ingrese el número de la máquina que desea reservar: "; cin >> maquinaIndex; maquinaIndex--; // Restamos 1 para obtener el índice correcto if (maquinaIndex < 0 || maquinaIndex >= NUM_MAQUINAS || !maquinas[maquinaIndex].ocupada) { cout << "La máquina seleccionada no está ocupada. Por favor, ingrese un número válido." << endl; return; } // Verificar si la hora de reserva es posterior a la hora de salida de la máquina string horaSalida = maquinas[maquinaIndex].horaSalida; if (horaReserva >= horaSalida) { cout << "La hora de reserva debe ser anterior a la hora de salida de la máquina." << endl; return; } cout << "Reserva registrada con éxito." << endl; cout << "Nombre: " << nombre << endl; cout << "Apellido: " << apellido << endl; cout << "DNI: " << dni << endl; cout << "Máquina reservada: " << maquinas[maquinaIndex].id << endl; cout << "Hora de reserva: " << horaReserva << endl; } void gestionarPagos(float& montoTotal) { string metodoPago; // Lógica para calcular el monto total a pagar for (int i = 0; i < NUM_MAQUINAS; i++) { if (maquinas[i].ocupada) { if (maquinas[i].consola == "PlayStation 5 (PS5)") { montoTotal += PRECIO_PS5; } else if (maquinas[i].consola == "Xbox Series X/S") { montoTotal += PRECIO_XBOX; } else if (maquinas[i].consola == "Nintendo Switch") { montoTotal += PRECIO_SWITCH; } } } // Mostrar el monto total a pagar cout << "Monto total a pagar: " << montoTotal << " soles" << endl; // Pedir el método de pago al usuario cout << "Seleccione el método de pago:" << endl; cout << "1. Efectivo" << endl; cout << "2. Billetera electronica" << endl; int opcion; cout << "Ingrese su opción: "; cin >> opcion; if (opcion == 1) { cout << "Realice el pago en caja." << endl; } else if (opcion == 2) { int tipoBilletera; cout << "Seleccione el tipo de Billetera electronica:" << endl; cout << "1. Yape" << endl; cout << "2. Plin" << endl; cout << "3. Tunki" << endl; cin >> tipoBilletera; cout << "Realice el pago con la billetera electronica: " << tipoBilletera << "." << endl; } else { cout << "Método de pago inválido. Por favor, intente nuevamente." << endl; } } void venderProductos(float& montoTotal) { string producto; int cantidad; float precio; float total = 0.0; string opcion; cout << "Lista de productos disponibles:" << endl; cout << "===Bebidas===" << endl; cout << "1 - CocaCola: S/3.00" << endl; cout << "2 - InkaCola: S/3.00" << endl; cout << "3 - Pepsi: S/2.50" << endl; cout << "4 - Oro: S/2.00" << endl; cout << "5 - Cassinelli: S/1.50" << endl; cout << "=== Snacks ===" << endl; cout << "6 - Cuate: S/1.00" << endl; cout << "7 - PiqueoSnack: S/1.00" << endl; cout << "8 - Doritos: S/1.50" << endl; cout << "9 - PapaLays: S/1.20" << endl; cout << "=== Dulces===" << endl; cout << "10 - Gomitas: S/1.20" << endl; cout << "11 - Chicles: S/0.20" << endl; cout << "12 - Trident: S/1.20" << endl; cout << "Ingrese el número del producto a vender: "; int opcionProducto; cin >> opcionProducto; if (opcionProducto < 1 || opcionProducto > 12) { cout << "Opción inválida. Por favor, intente nuevamente." << endl; return; } switch (opcionProducto) { case 1: producto = "CocaCola"; precio = 3.0; break; case 2: producto = "InkaCola"; precio = 3.0; break; case 3: producto = "Pepsi"; precio = 2.5; break; case 4: producto = "Oro"; precio = 2.0; break; case 5: producto = "Cassinelli"; precio = 1.5; break; case 6: producto = "Cuate"; precio = 1.0; break; case 7: producto = "PiqueoSnack"; precio = 1.0; break; case 8: producto = "Doritos"; precio = 1.5; break; case 9: producto = "PapaLays"; precio = 1.2; break; case 10: producto = "Gomitas"; precio = 1.2; break; case 11: producto = "Chicles"; precio = 0.2; break; case 12: producto = "Trident"; precio = 1.2; break; default: cout << "Opción inválida. Por favor, intente nuevamente." << endl; return; } cout << "Ingrese la cantidad de " << producto << " que desea comprar: "; cin >> cantidad; total = precio * cantidad; cout << "El total a pagar por " << cantidad << " " << producto << " es: S/" << total << endl; montoTotal += total; // Pedir confirmación para la compra cout << "¿Desea confirmar la compra? (S/N): "; cin >> opcion; if (opcion == "S" || opcion == "s") { cout << "Compra realizada con éxito." << endl; } else { cout << "Compra cancelada." << endl; } } void alquilerMandos(float& montoTotal) { int cantidad; int dias; float precio; float total = 0.0; cout << "Ingrese la cantidad de mandos a alquilar: "; cin >> cantidad; cout << "Ingrese la cantidad de días de alquiler: "; cin >> dias; precio = 10.0; // Precio por día de alquiler de mandos total = cantidad * dias * precio; cout << "Alquiler registrado con éxito." << endl; cout << "Cantidad de mandos: " << cantidad << endl; cout << "Cantidad de días de alquiler: " << dias << endl; cout << "Precio unitario por día: " << precio << endl; cout << "Total a pagar: " << total << " soles" << endl; montoTotal += total; } int main() { setlocale(LC_ALL, ""); int opcion; float montoTotal = 0.0; inicializarMaquinas(); do { mostrarMenu(); cin >> opcion; switch (opcion) { case 1: listarOcupacionMaquinas(); system("pause"); break; case 2: listarVideojuegosConsolas(); system("pause"); break; case 3: alquilarMaquina(); system("pause"); break; case 4: registrarReservas(); system("pause"); break; case 5: gestionarPagos(montoTotal); system("pause"); break; case 6: venderProductos(montoTotal); system("pause"); break; case 7: alquilerMandos(montoTotal); system("pause"); break; case 8: cout << "Gracias por utilizar nuestro sistema. ¡Hasta luego!" << endl; break; default: cout << "Opción inválida. Por favor, intente nuevamente." << endl; break; } system("cls"); } while (opcion != 8); cout << "Monto total recaudado: " << montoTotal << " soles" << endl; return 0; }

### Subtasks #### Task 1 - Basic (1 point) - [x] Implement the `add` function #### Task 2 - Basic (1 point) - [x] Implement the `substract` function #### Task 3 - Basic (1 point) - [x] Implement the `multiply` function #### Task 4 - Basic (1 point) - [x] Implement the `divide` function #### Task 5 - Basic (1 point) - [x] Implement the `square` function #### Task 6 - Basic (1 point) - [x] Implement the `calculate` function #### Task 7 - Basic (1 point) - [x] Implement the `doubleCalculate` function #### Task 8 - Basic (1 point) - [x] Implement the `tripleCalculate` function #### Task 9 - Basic (1 point) - [x] Implement the `simpleCalculator` function #### Task 10 - Basic (1 point) - [x] Implement the

Questions about programming?Chat with your personal AI assistant