#include "Camion.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
Camion::Camion (int idCam, int cilindrajeCam, int puertasCam, int anioCam,
double precioCam, string marcaCam, string modeloCam,
string colorCam)
{
idCamion = idCam;
cilindrajeCamion = cilindrajeCam;
nPuertasCamion = puertasCam;
anioCamion = anioCam;
precioCamion = precioCam;
marcaCamion = marcaCam;
modeloCamion = modeloCam;
colorCamion = colorCam;
Maximo =100;
cantidadDeCamiones =0;
}
//Funciones set
void Camion::setIdCamion(int idCam)
{
idCamion = idCam;
}
void Camion::setCilindrajeCamion(int cilindrajeCam)
{
cilindrajeCamion = cilindrajeCam;
}
void Camion::setNPuertasCamion(int puertasCam)
{
nPuertasCamion = puertasCam;
}
void Camion::setanioCamion(int anioCam)
{
anioCamion = anioCam;
}
void Camion::setPrecioCamion(double precioCam)
{
precioCamion = precioCam;
}
void Camion::setMarcaCamion(string marcaCam)
{
marcaCamion = marcaCam;
}
void Camion::setModeloCamion(string modeloCam)
{
modeloCamion = modeloCam;
}
void Camion::setColorCamion(string colorCam)
{
colorCamion = colorCam;
}
//Funciones get
int Camion::getIdCamion() const
{
return idCamion;
}
int Camion::getCilindrajeCamion() const
{
return cilindrajeCamion;
}
int Camion::getnPuertasCamion() const
{
return nPuertasCamion;
}
int Camion::getanioCamion()const
{
return anioCamion;
}
double Camion::getPrecioCamion() const
{
return precioCamion;
}
string Camion::getMarcaCamion() const
{
return marcaCamion;
}
string Camion::getModeloCamion() const
{
return modeloCamion;
}
string Camion::getColorCamion() const
{
return colorCamion;
}
//Ingresa un nuevo camion
void Camion::ingresarCamion()
{
listaDeCamiones = new Camion*[Maximo];// arreglo de 100
if (cantidadDeCamiones < Maximo)
{
system("cls");
cout << "Ingrese los datos del camion\n";
cout << "Ingrese el ID del camion: ";
cin >> idCamion;
cout << "Ingrese la Marca del Camion: ";
cin >> marcaCamion;
cout << "Ingrese el Modelo del camion: ";
cin >> modeloCamion;
cout << "Ingrese el año del Camion: ";
cin >> anioCamion;
cout << "Ingrese el cilindraje del camion: ";
cin >> cilindrajeCamion;
cout << "Ingrese el numero de puertas: ";
cin >> nPuertasCamion;
cout << "Ingrese el color del camion: ";
cin >> colorCamion;
cout << "Ingrese el presio del camion: ";
cin >> precioCamion;
listaDeCamiones[cantidadDeCamiones] =
new Camion(idCamion, cilindrajeCamion,
nPuertasCamion, anioCamion,
precioCamion, marcaCamion,
modeloCamion,colorCamion);
cantidadDeCamiones++;
cout << endl <<"Los datos del camion fueron ingresados correctamente\n";
}
else
{
system("cls");
cout << "Ya no hay espacio disponible para mas camiones\n";
}
}
//Muestra los datos del camion
void Camion::flistaDeCamiones()
{
if (cantidadDeCamiones==0)
{
system("cls");
cout<<"No se a registrado ninguna Camion todavía"<<endl;
}
else
{
cout<<"..:::Lista de Camiones:::.."<<endl<<endl;
cout << setw(10)<<"Id Camion"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl;
cout<<"================================================="<<endl;
//Imprimmir todos los camiones almacenadas en el arreglo
for (int i=0; i<cantidadDeCamiones; i++)
{
listaDeCamiones[i]->imprimir(); //PROBLEMA Y NO LO IDENTIFICO
}
cout<<endl<<"*******Fin de la lista **********"<<endl<<endl;
}
}
//Busca ese camion
int Camion::buscarCamion(int codigo)
{
for (int i=0; i < cantidadDeCamiones; i++)
{
if(listaDeCamiones[i]->getIdCamion() == codigo)
{
return i;
}
}
return -1;
}
//Modifica ese Camion.
void Camion::modificarCamion()
{
if (cantidadDeCamiones == 0)
{
system("cls");
cout << "No se ha registrado ningun camion tadavia\n";
}
else
{
cout << "Modificar Camion\n\n";
int codigoCamion;
cout << "Ingrese el codigo del camion: ";
cin >> codigoCamion;
int ubicacion = buscarCamion(codigoCamion);
if (ubicacion == -1)
{
cout << "Lo sentimos ese codigo del camion no existe\n";
}
else
{
cout << "El codigo se encontro\n\n";
cout << setw(10)<<"Id"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl;
cout<<"================================================="<<endl;
listaDeCamiones[ubicacion]->imprimir();
cout << "\n\n";
cout << "Ingrese los nuevos datos del Camion\n\n";
cout << "Marca";
cin >> marcaCamion;
cout << "Modelo del camion: ";
cin >> modeloCamion;
cout << "Año del Camion: ";
cin >> anioCamion;
cout << "Cilindraje del camion: ";
cin >> cilindrajeCamion;
cout << "numero de puertas: ";
cin >> nPuertasCamion;
cout << "Color del camion: ";
cin >> colorCamion;
cout << "Presio del camion: ";
cin >> precioCamion;
listaDeCamiones[ubicacion]->setMarcaCamion(marcaCamion);
listaDeCamiones[ubicacion]->setModeloCamion(modeloCamion);
listaDeCamiones[ubicacion]->setanioCamion(anioCamion);
listaDeCamiones[ubicacion]->setCilindrajeCamion(cilindrajeCamion);
listaDeCamiones[ubicacion]->setNPuertasCamion(nPuertasCamion);
listaDeCamiones[ubicacion]->setColorCamion(colorCamion);
listaDeCamiones[ubicacion]->setPrecioCamion(precioCamion);
cout << "El camion fue modificado Exitosamente.\n";
}
}
}
void Camion::eliminarCamion()
{
if (cantidadDeCamiones == 0)
{
system("cls");
cout << "No se ha registrado ningun camion tadavia\n";
}
else
{
cout << "Eliminar Camion\n\n";
int codigoCamion;
cout << "Ingrese el codigo a eliminar: ";
cin >> codigoCamion;
int ubicacion = buscarCamion(codigoCamion);
if (ubicacion == -1)
{
cout << "Lo sentimos ese codigo del camion no existe\n";
}
else
{
cout << "El codigo se encontro\n\n";
cout << setw(10)<<"Id"<<setw(15)<<"Modelo"<<setw(15)<<"marca"<<endl;
cout<<"================================================="<<endl;
listaDeCamiones[ubicacion]->imprimir();
cout << "\n\n";
cout << "Presione enter para eliminar ese camion\n\n";
system("pause");
//Pasa a eliminar usando una copia del arreglo
Camion**temporalListaDeCamiones = new Camion*[Maximo];
int temporalCantidadDeCamiones = 0;
//Se copia el arreglo en otro arreglo exepto el que se quiere eliminar
for(int i =0; i < cantidadDeCamiones; i++)
{
if(i!=ubicacion)
{
temporalListaDeCamiones[temporalCantidadDeCamiones] = new Camion(listaDeCamiones[i]->getIdCamion(),
listaDeCamiones[i]->getCilindrajeCamion(),
listaDeCamiones[i]->getnPuertasCamion(),
listaDeCamiones[i]->getanioCamion(),
listaDeCamiones[i]->getPrecioCamion(),
listaDeCamiones[i]->getMarcaCamion(),
listaDeCamiones[i]->getModeloCamion(),
listaDeCamiones[i]->getColorCamion());
temporalCantidadDeCamiones++;
}//Fin if
}//Fin for
//Limpio la memoria usada por el arreglo principal de camiones
for(int i=0; i<cantidadDeCamiones; i++)
{
listaDeCamiones[i]->~Camion();
}
//copia el arreglo temporal al principio
cantidadDeCamiones = 0;
for(int i =0; i<temporalCantidadDeCamiones; i++)
{
listaDeCamiones[cantidadDeCamiones] = new Camion(temporalListaDeCamiones[i]->getIdCamion(),
temporalListaDeCamiones[i]->getCilindrajeCamion(),
temporalListaDeCamiones[i]->getnPuertasCamion(),
temporalListaDeCamiones[i]->getanioCamion(),
temporalListaDeCamiones[i]->getPrecioCamion(),
temporalListaDeCamiones[i]->getMarcaCamion(),
temporalListaDeCamiones[i]->getModeloCamion(),
temporalListaDeCamiones[i]->getColorCamion());
cantidadDeCamiones++;
}//Fin for
cout << "El camion fue eliminado exitosamente\n\n";
}//fin else
}
}
//Imprime los datos del Camion
void Camion::imprimir()
{
cout<<setw(10)<<idCamion<<setw(15)<<modeloCamion<<setw(15)<<marcaCamion<<endl;
}