Aunque mis conocimientos en C++ son muy básicos, he utilizado la IA de Copilot para que nos eche una mano, el código parece que se ejecute sin errores, aunque seguramente habrá que pulirlo.
#include <iostream>
using namespace std;
int main() {
int a, b, c, d;
int fila, columna;
int asientos[2][40] = {0}; // Inicializa todos los asientos a 0
cout << "Bienvenido a agencia de viajes Caelum Scooter\n";
cout << "Esperamos que su experiencia sea agradable\n";
cout << "Los paises disponibles son los siguientes:\n";
cout << "1. Grecia\n2. Italia\n3. Rusia\n4. Egipto\n5. Francia\n";
cout << "¿Cuántas personas desean viajar?: ";
cin >> a;
cout << "¿En qué clase quieres viajar?\n1.- Segunda\n2.- Primera\n";
cin >> c;
for (int i = 0; i < a; i++) {
cout << "Reserva para persona " << i + 1 << ":\n";
cout << "Elija fila (1 o 2): ";
cin >> fila;
cout << "Elija columna (1-40): ";
cin >> columna;
// Validación de rango
if (fila < 1 || fila > 2 || columna < 1 || columna > 40) {
cout << "Asiento fuera de rango. Intente de nuevo.\n";
i--; // Repetir esta iteración
continue;
}
if (asientos[fila - 1][columna - 1] == 0) {
asientos[fila - 1][columna - 1] = 1;
cout << "Reserva exitosa.\n";
} else {
cout << "Asiento ocupado. Intente otro.\n";
i--; // Repetir esta iteración
}
}
cout << "\nElija un destino (vuelos redondos):\n";
cout << "1.- Grecia $15,326\n2.- Italia $9,779\n3.- Rusia $15,600\n4.- Egipto $16,455\n5.- Francia $13,341\n6.- Cancelar\n";
cin >> b;
switch (b) {
case 1:
d = 15326 * a * c;
cout << "Su total es de: $" << d << "\n";
cout << "Gran opción: cuna de la ciencia y tecnología.\nApoláfsete to taxídi sas\n";
break;
case 2:
d = 9779 * a * c;
cout << "Su total es de: $" << d << "\n";
cout << "Gran opción: gastronomía y Coliseo.\nGodetevi il viaggio\n";
break;
case 3:
d = 15600 * a * c;
cout << "Su total es de: $" << d << "\n";
cout << "Gran opción: vodka y Plaza Roja.\nNaslazhdaytes' vashim puteshestviyem\n";
break;
case 4:
d = 16455 * a * c;
cout << "Su total es de: $" << d << "\n";
cout << "Gran opción: pirámides y cultura.\nastamtie birihlatik\n";
break;
case 5:
d = 13341 * a * c;
cout << "Su total es de: $" << d << "\n";
cout << "Gran opción: Torre Eiffel y croissants.\nProfitez de votre voyage\n";
break;
case 6:
cout << "Lo sentimos si hubo algo mal con su experiencia.\n";
return 0;
default:
cout << "Estamos trabajando en los viajes espacio-tiempo relativos. Vuelva pronto.\n";
return 0;
}
cout << "\nTicket\n";
cout << "Viaje redondo núm.: " << b << "\n";
cout << "Total: $" << d << "\n";
cout << "Boletos: " << a << "\n";
cout << "Clase: " << (c == 1 ? "Segunda" : "Primera") << "\n";
return 0;
}
---
### 🛠️ Principales correcciones realizadas
- Eliminación de `#include <conio.h>` y `#include <stdio.h>` innecesarios en C++ moderno.
- Corrección de sintaxis en bucles `for`, índices de arrays y condiciones.
- Reemplazo de `printf` y `scanf` por `cout` y `cin` para mantener coherencia con C++.
- Eliminación de estructuras mal definidas como `class Pma;` y `int funcion();`.
- Mejora de validaciones de entrada y control de errores.