Sistema de Venta de Pasajes de Bus en C++: Asientos Ejecutivos y Cama
Sistema de venta de pasajes de bus en C++
A continuación se presenta un programa en C++ que simula la venta de pasajes en un bus con 40 asientos, distribuidos en asientos Ejecutivos (E) y asientos Cama (C).
Código fuente
#include <iostream>
using namespace std;
class Asiento {
private:
char tipo; // E Ejecutivo, C Cama
bool estado; // true desocupado, false ocupado
public:
Asiento(char tipo)
{
this->tipo = tipo;
estado = true;
}
void setEstado(bool estado)
{
this->estado = estado;
}
bool getEstado()
{
return estado;
}
char getTipo()
{
return tipo;
}
void setTipo(char tipo)
{
this->tipo = tipo;
}
};
class Bus
{
private:
Asiento *lista[40];
public:
Bus()
{
int i;
for (i = 0; i < 40; i++)
{
if (i <= 9)
{
lista[i] = new Asiento('E');
}
else
{
lista[i] = new Asiento('C');
}
}
}
void comprarPasaje(int numero, char tipo)
{
if (lista[numero]->getTipo() == tipo)
{
if (lista[numero]->getEstado() == true)
{
lista[numero]->setEstado(false);
cout << "Pasaje comprado" << endl;
}
else
{
cout << "El asiento ya está ocupado" << endl;
}
}
else
{
cout << "Número no corresponde a tipo seleccionado" << endl;
}
}
void listarBus()
{
int i;
for (i = 0; i < 40; i++)
{
if (lista[i]->getEstado() == false)
{
cout << "Asiento " << i << " ocupado" << endl;
}
else
{
cout << "Asiento " << i << " desocupado" << endl;
}
}
}
int obDisponibles()
{
int disp = 0;
int i;
for (i = 0; i < 40; i++)
{
if (lista[i]->getEstado() == true)
{
disp++;
}
}
return disp;
}
};
int main()
{
Bus *b = new Bus();
b->listarBus();
while (b->obDisponibles() > 0)
{
char tipo;
int numero;
cout << "¿Qué tipo de asiento quiere?" << endl;
cin >> tipo;
cout << "¿Qué número quiere?" << endl;
cin >> numero;
b->comprarPasaje(numero, tipo);
}
system("pause");
}Descripción de las clases
Clase Asiento
Representa un asiento individual del bus. Cada asiento almacena su tipo (E o C) y su estado (desocupado o ocupado).
Clase Bus
Contiene un arreglo de 40 asientos. Los primeros 10 asientos (0 a 9) son de tipo Ejecutivo y los restantes son de tipo Cama. Además, permite comprar pasajes, listar el estado de los asientos y contar los asientos disponibles.
Funcionamiento
- Al iniciar, se muestran todos los asientos con su estado.
- El usuario ingresa el tipo de asiento deseado y el número.
- El programa valida que el número corresponda al tipo solicitado y que el asiento esté libre.
- El proceso se repite mientras existan asientos disponibles.