elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Arrays de objetos con listas en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Arrays de objetos con listas en c++  (Leído 1,925 veces)
tenji

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Arrays de objetos con listas en c++
« en: 27 Agosto 2011, 17:59 pm »

Hola a todos, escribo en el foro para saber si me pudieran ayudar con un ejercicio. Dice asi:
Crear una clase Automóvil cuyos atributos serán: matricula, cilindrada, consumo y marca. Escribir el/los constructores necesarios para esta clase.
•   Crear una clase Coche, hija publica de Automóvil que contenga Nº de puertas y todos los atributos heredados de la clase automóvil. Define el constructor.
•   Crear una clase Motocicleta, hija publica de Automóvil, sus atributos serán los heredados de la clase automóvil. Define el constructor.
•   Gestiona un concesionario con un máximo de 25 motocicletas y 75 coches organizados en arrays de objetos. Obtener un listado de las motocicletas y los coches de los que disponemos.

Bien, mi codigo es este:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#define MC 2000

using namespace std;
class Automovil{
                char matricula, marca;
                int cilindrada, consumo;
                Automovil *sig;
      public:
                Automovil();
                Automovil(char ma,char mar, int ci, int con);
                               void ver_automovil();
      } ;
     
class Coche:virtual public Automovil{
      int numpuertas;
      public:
             Coche():Automovil(){numpuertas=0;}
             Coche(char ma,char mar, int ci, int con,int numpu):Automovil(ma,mar,ci,con){numpuertas=numpu;};
      } ;
     
class Motocicleta:virtual public Automovil{
      public:
             Motocicleta():Automovil(){};
             Motocicleta(char ma,char mar, int ci, int con):Automovil(ma,mar,ci,con){};
   };
     
class Lista{
      private:
              Automovil *lauto;
      public:
             Lista(){lauto=NULL;}
             void alta_coche();
             void alta_moto();
             int val(int min, int max);
             void cadenas(char *a);
             void ver_lista_coche();
             void ver_lista_moto();
           };

void Lista::ver_lista_moto(){
     Automovil *aux= lauto;
     while(aux){
                aux->ver_automovil();
               
                   }
   }         
             
void Lista::ver_lista_coche(){
     Automovil *aux= lauto;
     while(aux){
                aux->ver_automovil();
               
                   }
   }
   
void Lista::alta_moto(){
        char ma;char mar;
        int ci; int con;int ok;int i;
        do {
            ok=1;
            cout<<"Introduzca la marca de la moto:\t";
            cadenas(&ma);
            cout<<"Introduzca la matricula de la moto:\t";
            cadenas(&mar);
            cout<<"Introduzca la cilindrada de la moto:\t";
            ci=val(4,8);
            cout<<"Introduzca el consumo de la moto:\t";
            con=val(4,8);
           
            }while(!ok);

         }       

void Lista::alta_coche(){
        char ma;char mar;
        int ci; int con;int numpu;int ok;int i;
        do {
            ok=1;
            cout<<"Introduzca la marca del vehiculo:\t";
            cadenas(&ma);
            cout<<"Introduzca la matricula del vehiculo:\t";
            cadenas(&mar);
            cout<<"Introduzca el numero de puertas del vehiculo:\t";
            numpu=val(4,8);
            cout<<"Introduzca la cilindrada del vehiculo:\t";
            ci=val(4,8);
            cout<<"Introduzca el consumo del vehiculo:\t";
            con=val(4,8);
                        }while(!ok);

         }

int Lista:: val(int min, int max){
    long re;
    do{
         cin>>re;
         if(re<min||re>max)
         cout<<"Error\t";
       
      }while(re<min||re>max);
    return re;
    }
   
void Lista::cadenas(char *a){
         char b[MC];
         int n;
         fflush(stdin);
         fgets(b,MC-1,stdin);
         n=strlen(b);
         b[n-1]='\0';
         strcpy(a,b);
          }
         
void Automovil::ver_automovil(){
     int tipo;
     switch(tipo){
     case 1:cout<<"COCHE";
     break;
     default:
             cout<<"MOTO";
             break;}
             cout<<"MARCA:"<<marca<<endl;
             cout<<"MATRICULA"<<matricula<<endl;
             cout<<"CONSUMO"<<consumo<<endl;
             cout<<"CILINDRADA"<<cilindrada<<endl;
    }
     
 void sel(int tipo, Lista *lista){
             switch(tipo){
             case 1: lista->alta_moto();
             break;
             case 2: lista->alta_coche();
             break;
             case 3: lista->ver_lista_moto();
             break;
             case 4: lista->ver_lista_coche();
             break;
             default:
             break;
             }

 }

int main()
{
    int res,i;
    Lista *lista;
    Motocicleta motos[25];
    for(i=0;i<25;i++)
    motos[i]=new Motocicleta;
    Coche coches[75];
    for(i=0;i<75;i++)
    coches[i]=new Coche;
    do{
    cout<<"*****************BIENVENIDOS AL CONCESIONARIO MONGOCONGO*************"<<endl;
    cout<<"1.Alta moto"<<endl;
    cout<<"2.Alta coche"<<endl;
    cout<<"3.ver motos"<<endl;
    cout<<"4.ver coches"<<endl;
            res = val(1,4);
            sel(res,lista);
            }while(res!=4);

    system("PAUSE");
    return 0;
}

Necesito saber como almacenar las motos y los coches (previa creacion de ambas claro).
Agradeceria que me dijeran todos los fallos posibles, trucos, consejos...que me ayuden a ir al grano y evitar quebraderos de cabeza.

Muchas gracias y espero tener respuesta.
Un saludo
Tenji



En línea

tenji

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Arrays de objetos con listas en c++
« Respuesta #1 en: 30 Agosto 2011, 13:37 pm »

Para que os deis cuenta de hasta que punto se programar, me he dado cuenta de que si lo que piden es almacenar la informacion en arrays ¿para que quiero una lista?.
Aunque obviando eso, el programa me sigue sin ir. ¿Alguien puede ayudarme?
NUevo codigo:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
#define MC 2000

using namespace std;
class Automovil{
                char matricula[MC], marca[MC];
                int cilindrada, consumo;
               
      public:
                Automovil(){
                            strcpy(matricula,"");
                            strcpy(marca,"");
                            cilindrada=0;
                            consumo=0;
                        }
                Automovil(char *ma,char *mar, int ci, int con){
                            strcpy(matricula,ma);
                            strcpy(marca,mar);
                            cilindrada=ci;
                            consumo=con;
                             
                               }
                              int val(int min, int max);
                              void cadenas(char *a);
                               
                  } ;
     
class Coche:virtual public Automovil{
      int numpuertas;
      public:
             Coche():Automovil(){numpuertas=0;}
             Coche(char *ma,char *mar, int ci, int con,int numpu):Automovil(ma,mar,ci,con){numpuertas=numpu;};
             void ver_coche();
             void alta_coche();
      } ;
     
class Motocicleta:virtual public Automovil{
      public:
             Motocicleta():Automovil(){};
             Motocicleta(char *ma,char *mar, int ci, int con):Automovil(ma,mar,ci,con){};
             void ver_moto();
             void alta_moto();
   };


   
void Motocicleta::alta_moto(){
        char ma;char mar;
        int ci; int con;int ok;int i;
        do {
            ok=1;
            cout<<"Introduzca la marca de la moto:\t";
            cadenas(&ma);
            cout<<"Introduzca la matricula de la moto:\t";
            cadenas(&mar);
            cout<<"Introduzca la cilindrada de la moto:\t";
            ci=val(4,8);
            cout<<"Introduzca el consumo de la moto:\t \n";
            con=val(4,8);
           
            }while(!ok);
   
         }

void Coche::alta_coche(){
        char ma;char mar;
        int ci; int con;int numpu;int ok;int i;
        do {
            ok=1;
            cout<<"Introduzca la marca del vehiculo:\t";
            cadenas(&ma);
            cout<<"Introduzca la matricula del vehiculo:\t";
            cadenas(&mar);
            cout<<"Introduzca el numero de puertas del vehiculo:\t";
            numpu=val(4,8);
            cout<<"Introduzca la cilindrada del vehiculo:\t";
            ci=val(4,8);
            cout<<"Introduzca el consumo del vehiculo:\t\n";
            con=val(4,8);
                        }while(!ok);
         } 

int Automovil:: val(int min, int max){
    long re;
    do{
         cin>>re;
         if(re<min||re>max)
         cout<<"Error\t";
       
      }while(re<min||re>max);
    return re;
    }
   
void Automovil::cadenas(char *a){
         char b[MC];
         int n;
         fflush(stdin);
         fgets(b,MC-1,stdin);
         n=strlen(b);
         b[n-1]='\0';
         strcpy(a,b);
          }
         
         
void Coche::ver_coche(){
     cout<<"COCHE\n";
     cout<<"MARCA: \n"<<marca<<endl;
     cout<<"MATRICULA \n"<<matricula<<endl;
     cout<<"CONSUMO \n"<<consumo<<endl;
     cout<<"CILINDRADA \n"<<cilindrada<<endl;
     cout<<"NUMERO DE PUERTAS \n"<<numpuertas<<endl;
                  }
                     
void Motocicleta::ver_moto(){
cout<<"MOTO\n";
cout<<"MARCA: \n"<<marca<<endl;
cout<<"MATRICULA \n"<<matricula<<endl;
cout<<"CONSUMO \n"<<consumo<<endl;
cout<<"CILINDRADA \n"<<cilindrada<<endl;
}


int sel(int tipo ){
             switch(tipo){
             case 1: alta_moto();
             break;
             case 2: alta_coche();
             break;
             case 3: //¿QUE DEBO PONER?;
             break;
             case 4: //¿QUE DEBO PONER?;
             break;
             default:
             break;
             }
 
}
int main(int argc, char *argv[])
{
   int res; int i;

    Motocicleta motos[25];
    for(i=0;i<25;i++)
    motos[i]=new Motocicleta;
    Coche coches[75];
    for(i=0;i<75;i++)
    coches[i]=new Coche;
    do{
    cout<<"*****************BIENVENIDOS AL CONCESIONARIO MONGOCONGO*************"<<endl;
    cout<<"1.Alta moto"<<endl;
    cout<<"2.Alta coche"<<endl;
    cout<<"3.ver motos"<<endl;
    cout<<"4.ver coches"<<endl;
            res = val(1,4);
            sel(res);
            }while(res!=4);
    system("PAUSE");
    return 0;
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
se puede ordenar arrays de objetos??
Java
shurfin 3 5,329 Último mensaje 26 Marzo 2008, 16:18 pm
por shurfin
Ayuda Acerca De Listas y Listas Circulares (Revienta Memoria :S)
Programación C/C++
Gerik 0 5,177 Último mensaje 12 Septiembre 2010, 01:49 am
por Gerik
Duda con arrays dentro de arrays « 1 2 »
PHP
Servia 11 6,831 Último mensaje 10 Marzo 2011, 09:04 am
por Servia
Php Insertar Objetos de Arrays en Tabla de Mysql
Desarrollo Web
Slikp 2 2,024 Último mensaje 5 Octubre 2016, 03:47 am
por Slikp
Cómo crear arrays de objetos
Java
b14 1 1,676 Último mensaje 15 Marzo 2017, 03:33 am
por 6hiii
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines