Código: Seleccionar todo
/*Desarrollar un programa que oermita gestionr los vehuiculos que comercializa una empresa
los cuales puid3esn ser autos camionetas y combis
el programa debe registarr los siguientes datos:
PARA autos: Srie de morto (numero ), marca, modelo(char) y tipo(automatico o mecanico)
PARA Camioneata : Serie del motor , marca modelo tipo( abierta cerrada),
numero de psaajeros y tipo de traccion (simple o doble).
PARA combi: Sreie ,marca, modelo y cantidad de asientos.
La empresa comercializa las siguientes marcas : Toyota , Nissan y Chevrole , el prgram,a
1.-Registrar una venta de vehiculo
2.- Listado de todos los vehiculos (marca , modelo y numero de serie)
3.- Elegir una marca y mostrar los modelos y numero de serie
4.- Listado de marcas : nombre , cantidad de vehiculos y el precio mas caro de un vehiculo en e
*/
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#define MAX 10
#define DELTA 2
char *opciones[] = {"REGISTRO VENTA VEHICULO", "LISTAR VENTAS",
"LISTADO POR MARCAS", "LISTADO GENERAL POR MARCAS",
"Recorrer por monto mayor",
"Reporte estadistico por especialidad",
"Listar medicos por especialidad",
"Reporte Geriatras Hombres",
"Reporte Cardio Mujer menor a 40",
"Reporte Pediatras o Gastroenterologos menores a 35",
"Salir"};
#define CARRO 1
#define CAMIONETA 2
#define COMBI 3
char *carros[] = {"AUTO", "CAMIONETA","COMBI"};
char *marcas[] = {"NISSAN", "TOYOTA","CHEVROLET"};
char *tipoX[] = {"AUTOMATICO", "MECANICO"};
char *tipoY[] = {"ABIERTO", "CERRADO"};
char *tipoZ[] = {"SIMPLE", "DOBLE"};
int leerEntero(char *msje, int min, int max,char *error){
int num;
do{
cout<<msje; cin>>num;
if(num<min||num>max){
cout<<error<<endl;
}
}while(num<min || num>max);
return num;
}
int leerOpcion(char **opciones, char *msje, int cantidad, char *error){
int op;
for(int i=0;i<cantidad;++i){
cout << (i+1) << ".- " << opciones[i] << endl;
}
op = leerEntero(msje, 1, cantidad, error);
return op;
}
class Carro{
private:
float precio; //Al nombre de persona solo lo puede llamar la misma clase persona
int marca;
int disenio;
char modelo[MAX];
int serie;
int tipo;
int tipo2;
int nropas;
public:
float getPrecio(){
return this->precio;
}
int getMarca(){
return this->marca;
}
int getPlaca(){
return this->serie;
}
void getModelo(char *modelo){
strcpy(modelo,this->modelo);
}
void getMARCA(int &i){
i=this->marca;
}
void leer(){
cout<<"DISENIO:"<<endl;
this->disenio=leerOpcion(carros,"Elige Opcion: ",3,"Opcion Invalida");
cout<<"SERIE MOTOR: ";cin>>this->serie;
cout<<"MARCA:"<<endl;
this->marca=leerOpcion(marcas,"Elige Opcion: ",3,"Opcion Invalida");
cout<<"MODELO: ";cin>>this->modelo;
if(disenio == CARRO){
cout<<"TIPO:"<<endl;
this->tipo=leerOpcion(tipoX,"Elige Opcion: ",2,"Opcion Invalida");
}
if(disenio == CAMIONETA){
cout<<"TIPO:"<<endl;
this->tipo=leerOpcion(tipoY,"Elige Opcion: ",2,"Opcion Invalida");
cout<<"TIPO DE TRACCION:"<<endl;
this->tipo2=leerOpcion(tipoZ,"Elige Opcion: ",2,"Opcion Invalida");
cout<<"N.PASAJEROS: ";cin>>nropas;
}
if(disenio == COMBI){
cout<<"CANTIDAD DE ASIENTOS: ";cin>>nropas;
}
cout<<"PRECIO: ";cin>>precio;
}
void mostrar();
};
void Carro::mostrar(){
cout<<"DISENIO: "<<carros[this->disenio-1]<<endl;
cout<<"SERIE MOTOR: "<<this->serie<<endl;
cout<<"MARCA: "<<marcas[this->marca-1]<<endl;
cout<<"MODELO: "<<modelo;
if(this->disenio== CAMIONETA){
cout<<"TIPO: "<<tipoY[this->tipo-1]<<endl;
cout<<"TIPO TRACCION: "<<tipoZ[this->tipo2-1]<<endl;
cout<<"N.PASAJEROS: "<<nropas<<endl;
}
if(this->disenio == CARRO){
cout<<"TIPO: "<<tipoX[this->tipo-1]<<endl;
}
if (this->disenio==COMBI){
cout<<"CANTIDAD DE ASIENTOS: "<<nropas<<endl;
}
cout<<"PRECIO: "<<precio<<endl;
}
class Listamoviles{
private:
int total;
int n;
Carro * data;
public:
int getN(){
return this->n;
}
Carro & getCarro(int i){
return this->data[i];
}
void agregar(Carro &carro){
if( this->n == this->total){
this->crecer();
}
this->data[this->n] = carro;
this->n++;
}
private:
void crecer(){
Carro *aux;
this->total += DELTA;
aux = new Carro[this->total];
if( this->n > 0){
for( int i=0; i<this->n; i++){
aux[i] = this->data[i];
}
delete []this->data;
}
this->data = aux;
}
};
Listamoviles Lista;
void CASE1(){
Carro carro;
carro.leer();
Lista.agregar(carro);
}
void CASE2(){
char modelo[MAX*3];
if(Lista.getN()!=0){
cout<<"\tLISTA DE VENTAS"<<endl;
for(int i=0;i<Lista.getN();i++){
Carro &carro=Lista.getCarro(i);
cout<<"\nVENTA NRO "<<(i+1)<<endl;
cout<<"\nMARCA: "<<marcas[carro.getMarca()-1]<<endl;
carro.getModelo(modelo);
cout<<"MODELO: "<<modelo<<endl;
cout<<"NRO SERIE: "<<carro.getPlaca()<<endl;
cout<<"**********************"<<endl;
}
}
else{
cout<<"NO SE HAN REGISTRADO VENTAS"<<endl;
}
}
void CASE3(){
int marcaux;
char modelo[MAX*3];
if(Lista.getN()!=0){
cout<<"\tLISTADO DE VENTAS POR MARCA"<<endl;
cout<<"MARCAS: "<<endl;
marcaux=leerOpcion(marcas,"Elige Opcion",3,"Opcion no Valida");
for(int i=0;Lista.getN();i++){
Carro &carro=Lista.getCarro(i);
int marcaux2;
carro.getMARCA(marcaux2);
if(marcaux2 == marcaux){
cout<<"RESULTADO NRO "<<i+1<<endl;
carro.getModelo(modelo);
cout<<"MODELO: "<<modelo<<endl;
cout<<"SERIE: "<<carro.getPlaca()<<endl;
cout<<"**********************"<<endl;
}
}
}
else{
cout<<"NO HAY VENTAS REGISTRADAS"<<endl;
}
}
void CASE4(){
if(Lista.getN()!=0){
cout<<"\tLISTADO GENERAL POR MARCAS"<<endl;
int cont=0;
float mayor=0;
for(int i=0;i<3;i++){
cout<<"MARCA NRO "<<(i+1)<<": "<<marcas[i]<<endl;
for(int j=0;j<Lista.getN();j++){
Carro &carro=Lista.getCarro(i);
if(carro.getMarca()==i+1){
cont++;
if(carro.getPrecio()>mayor){
mayor=carro.getPrecio();
}
}
}
if(cont != 0){
cout<<"CANT VEHICULOS: "<<cont<<endl;
cout<<"PRECIO MAYOR: "<<mayor<<endl;
cont = 0;
mayor=0;
}
else{
cout<<"VENTA DE MARCA AUN NO REGISTRADA"<<endl;
}
cout<<"**********************"<<endl;
}
}
else{
cout<<"NO HAY VENTAS REGISTRADAS"<<endl;
}
}
void main(){
int op;
do{
op = leerOpcion(opciones, "Opcion : ", 11, "Opcion no valida");
clrscr();
switch(op){
case 1: CASE1(); break;
case 2: CASE2();break;
case 3: CASE3();break;
case 4: CASE4();break;
}
getch();
clrscr();
}while(op < 11);
}