Está en la página 1de 3

#include <iostream>

#include <string>

using namespace std;

// Estructura para almacenar información de los coches


struct Car {
int code;
string brand;
double price;
string origin;
bool sold;
};

// Función para buscar un coche por su código


int findCar(Car cars[], int n, int code) {
for (int i = 0; i < n; i++) {
if (cars[i].code == code) {
return i;
}
}
return -1;
}

// Función para agregar un coche al inventario


void addCar(Car cars[], int &n) {
if (n < 50) {
Car newCar;
cout << "Ingrese el código del coche: ";
cin >> newCar.code;
cout << "Ingrese la marca del coche: ";
cin >> newCar.brand;
cout << "Ingrese el precio del coche: ";
cin >> newCar.price;
cout << "Ingrese el origen del coche (nacional o importado): ";
cin >> newCar.origin;
newCar.sold = false;
cars[n] = newCar;
n++;
cout << "Coche agregado al inventario exitosamente." << endl;
} else {
cout << "No se pueden agregar más coches al inventario. El inventario está
lleno." << endl;
}
}

// Función para vender un coche


void sellCar(Car cars[], int n, double &moneyEarned) {
int code;
cout << "Ingrese el código del coche que desea vender: ";
cin >> code;
int index = findCar(cars, n, code);
if (index == -1) {
cout << "El coche con el código ingresado no existe." << endl;
} else if (cars[index].sold) {
cout << "El coche ya fue vendido." << endl;
} else {
cout << "¿Desea vender el coche? (S/N): ";
char confirm;
cin >> confirm;
if (confirm == 'S' || confirm == 's') {
cars[index].sold = true;
moneyEarned += cars[index].price;
cout << "Coche vendido exitosamente." << endl;
// Eliminar el coche de la lista de inventario
for (int i = index; i < n - 1; i++) {
cars[i] = cars[i+1];
}
n--;
}
}
}

// Función para modificar la información de un coche


void modifyCar(Car cars[], int n) {
int code;
cout << "Ingrese el código del coche que desea modificar: ";
cin >> code;
int index = findCar(cars, n, code);
if (index == -1) {
cout << "El coche con el código ingresado no existe." << endl;
} else {
cout << "Ingrese la nueva marca del coche: ";
cin >> cars[index].brand;
cout << "Ingrese el nuevo precio del coche: ";
cin >> cars[index].price;
cout << "Ingrese el nuevo origen del coche (nacional o importado): ";
cin >> cars[index].origin;
cout << "Información del coche modificada exitosamente." << endl;
}
}

// Función para mostrar la lista de coches


void displayCars(Car cars[], int n) {
cout << "Coches en inventario:" << endl;
for (int i = 0; i < n; i++) {
if (!cars[i].sold) { // solo mostrar coches que no han sido vendidos
cout << "Código: " << cars[i].code << endl;
cout << "Marca: " << cars[i].brand << endl;
cout << "Precio: " << cars[i].price << endl;
cout << "Origen: " << (cars[i].origin == "nacional" ? "Nacional" :
"Importado") << endl;
cout << "------------------------" << endl;
}
}
}

int main() {
Car cars[50];
int n = 0;
double moneyEarned = 0;

int choice;
do {
cout << "Ingrese una opción:" << endl;
cout << "1. Agregar coche al inventario" << endl;
cout << "2. Vender coche" << endl;
cout << "3. Modificar información de coche" << endl;
cout << "4. Mostrar lista de coches" << endl;
cout << "5. Mostrar dinero recaudado" << endl;
cin >> choice;

switch (choice) {
case 1:
addCar(cars, n);
break;
case 2:
sellCar(cars, n, moneyEarned);
break;
case 3:
modifyCar(cars, n);
break;
case 4:
displayCars(cars, n);
break;
case 5:
cout << "Dinero total ganado: " << moneyEarned << endl;
cout << "¡Hasta luego!" << endl;
break;
default:
cout << "Opción inválida." << endl;
}
} while (choice != 5);

return 0;
}

También podría gustarte