mécanisme d'agrégation et héritage
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

mécanisme d'agrégation et héritage



  1. #1
    invite63fa6979

    mécanisme d'agrégation et héritage


    ------

    bonsoir,

    j'ai un exercice à faire et je souhaiterais SVP , vous confirmez si mes réponses sont justes et les réponses aux questions que je n'ai pas su faire.

    Mécanisme d’agrégation et héritage
    On dispose du diagramme de classes suivant:
    C%2B%2B.png (159,2 Ko)
    1/ Déclarer la définition des classes CAutomobile, CMoteur, CMoteurEssence dans un fichier d’entête personnalisé. Écrire dans un fichier .cpp propre à chaque classe, son constructeur et sa méthode Afficher( ).
    Attention : vous avez une agrégation.
    2/ Compléter la fonction principale suivante afin d’afficher les caractéristiques d’un objet MonAuto:
    - Prix: 11500
    - Couleur: Blanche
    - NumImmatriculation: CR-340-AB
    - de moteur: MonMoteurà
    main() {
    CMoteur MonMoteur(110, «31AB47K») ;
    CAutomobile MonAuto(..............) ; // A compléter
    ........... // A compléter
    }
    Tester votre programme.
    d) Le monde de l’électrique dans le secteur automobile étant pour l’instant très succinct, j’opte pour une motorisation de type « Essence ».
    Un objet NouvelAuto de caractéristiques :
    - Prix: 11500
    - Couleur: Blanche
    - NumImmatriculation: CR-340-AB
    Moteur essence: CMoteurEssence *NouveauMoteur ; PuissanceDynamique: 175
    NumSerie: 68FH222S
    VolumeReservoir: 60
    NbreSoupape: 4
    Coder puis tester votre programme nouveau programme afin d’afficher les caractéristiques ci-dessus.

    1/ Class CMoteur
    {
    private :
    int puissanceDynamique ;
    string NumSerie ;
    public :
    CMoteur ( ) ;
    CMoteur (int , string ) ;
    ~CMoteur ( ) ;
    bool demarrer ( ) ;
    bool arreter ( ) ;
    void afficher ( ) ;
    } ;
    #include<iostream.h>
    #include ‘’Moteur.h’’
    CMoteur : :CMoteur ( )
    {
    cout<< ‘’Destruction du moteur ‘’<<this<< ‘’∖n ;
    }
    CMoteur : :CMoteur (int PD, string N)
    {
    puissanceDynamique = PD ;
    NumSerie=N ;
    }
    boolCMoteur : : demarrer ( )
    {
    cout<< ‘’ ∖n CMoteur demarre’’ << endl ;
    }
    boolCMoteur : : arreter( )
    {
    cout<< ‘’∖n CMoteurarrete’’ <<endl ;
    }
    voidCMoteur : : afficher( )
    {
    cout<< ‘’ les caractéristiques du moteur sont : ∖n’’ ;
    cout<<’’ puissanceDynamique’’<<puissanc eDynamique<<’’∖n’’ ;
    cout<<’’NumSerie’’<<NumSerie<< ’’∖n’’ ;
    }
    #include ‘’Moteur.h’’
    classCautomobile
    {
    private :
    int prix ;
    string couleur ;
    stringNumImmatriculation ;
    CMoteur*LeMoteur ;
    Public :
    CAutomobile( ) ;
    CAutomobile(int,string,string, int,string) ;
    ~CAutomobile( ) ;
    void avancer ( ) ;
    void reculer ( ) ;
    void afficher ( ) ;
    } ;
    CAutomobile : :CAutomobile ( )
    {
    }
    CAutomobile : :CAutomobile (intpri,stringcoul,stringNI,in tPD,stringN)
    {
    prix=pri ;
    couleur=coul ;
    NumImmatriculation=NI ;
    Le Moteur=newCMoteur(PD,N) ;
    }
    CAutomobile : :~CAutomobile ( )
    {
    deleteLeMoteur ;
    }
    void automobile : : avancer ( )
    {
    cout<< ‘’∖n automobile avance ‘’ << endl ;
    }
    void automobile : : reculer ( )
    {
    cout<< ‘’∖n automobile recule ‘’<<endl ;
    }
    voidCautomobile : : afficher ( )
    {
    cout<< ‘’prix ‘’<<prix<<’’couleur’’<<couleur <<’’NumImmatriculation’’<<NumI mmatriculation
    ’’∖n’’ ;
    }

    #include<iostream>
    #include<estring>
    #include ‘’ Moteur.h’’

    usingnamespacestd ;

    classCMoteurEssence : public CMoteur
    {
    private :
    int Volume Reservoir ;
    intNbre Soupape ;
    CMoteur*unMoteur
    Public :
    CMoteurEssence( ) ;
    CMoteurEssence(int, string,int,int) ;
    ~CMoteurEssence( )
    void vidanger ( ) ;
    void afficher ( ) ;
    } ;

    CMoteur : :CMoteurEssence (intPD,stringNS,intVR,int Nb)
    {
    volumereservoir=VR
    NbreSoupape=Nb ;
    Le Moteur = new CMoteur*[NbreSoupape] ;
    For (int i= 0 ; i<NbreSoupape ;i++)
    {
    Le Moteur[i]= NULL;
    }
    }
    voidCMoteur : : Vidanger ( )
    {
    }
    voidCMoteur : : Afficher ( )
    {
    CMoteur *CeMoteur=newCMoteur( ) ;
    For (int j=0 ;j<NbreSoupape ; j++)
    {
    CeMoteur→Afficher() ;
    }
    }
    delete (Ce Moteur) ;
    }

    Merci pour votre aide

    -----
    Images attachées Images attachées  

  2. #2
    invite0bbe92c0

    Re : mécanisme d'agrégation et héritage

    Bonjour

    En dehors du fait que vous pourriez préciser dans le titre qu'il s'agit de C++ (pour éviter à ceux pour lesquels ce langage c'est de l'hébreux de perdre leur temps) et que vous n'avez pas utilisé de balise code (icone # de l'éditeur avancé), ce qui rend le dit code illisible, deux trois trucs me chagrinent :
    - Moteur devrait être a priori une classe abstraite
    - Pourquoi l'instancier dans les classes dérivées ???? (si vous l'aviez déclarée "abstraite", cette erreur n'aurait pas passé le stade de de la compilation).
    - je ne comprends rien à la boucle sur le nombre de soupape .... quel interêt ?

    Pour le reste, je renonce à la lecture tant que les balises CODE n'auront pas été mise en place.

  3. #3
    JPL
    Responsable des forums

    Re : mécanisme d'agrégation et héritage

    Citation Envoyé par Bluedeep Voir le message
    vous n'avez pas utilisé de balise code (icone # de l'éditeur avancé), ce qui rend le dit code illisible
    De toutes façons le pseudo-code n'était pas indenté au départ. La balise Code n'aurait rien changé.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  4. #4
    invite0bbe92c0

    Re : mécanisme d'agrégation et héritage

    Citation Envoyé par JPL Voir le message
    De toutes façons le pseudo-code n'était pas indenté au départ. La balise Code n'aurait rien changé.
    Ouaip. Mais ca ne change rien au reste.

    Et aussi pourquoi dans le constructeur mettre un message qui informe de la destruction de l'instance :
    Code:
    CMoteur : :CMoteur ( ) 
    {
    cout<< ‘’Destruction du moteur ‘’<<this<< ‘’∖n ;
    }

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Héritage équitable
    Par roro222 dans le forum Science ludique : la science en s'amusant
    Réponses: 13
    Dernier message: 03/11/2013, 19h04
  2. Héritage
    Par invitecc87dbce dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 27/05/2012, 20h32
  3. L'héritage
    Par vanos dans le forum Science ludique : la science en s'amusant
    Réponses: 5
    Dernier message: 03/04/2012, 01h59
  4. Enigme: L'héritage.
    Par invite3bc71fae dans le forum Science ludique : la science en s'amusant
    Réponses: 345
    Dernier message: 23/09/2004, 22h30