IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Besoin d'aide sur un exercice en POO


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Par défaut Besoin d'aide sur un exercice en POO
    BONJOUR chers membres :
    j aimerais bien que vous me passer un cout de main en ce qui concerne cet exo :c est a dire les idées interressante pour achever mon travail
    En utilisant la classe BUILDING ,
    Données membres (Protégées) :
    - Nom : Chaine de caractères.
    - Superficie : réel
    - Adresse : Chaine de caractères

    modifier la de manière à ce qu'elle vous permettra de créer la structure suivante en declarent un nouveau type ZONE pointeur sur BUILDING




    je sais surtout po si j suis dans la bonne voie ou non . voila ce j ai fais =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    #include <iostream>
    #include<stdlib.h>
    #include<string>
    using namespace std;
    class BUILDING{
    public :
            string NOM;
            float superficie;
            string adresse;
            static int count_BUILDING;
    BUILDING * m_pBUILDINGtSuivant;
     
                 BUILDING(string name,float super=0,string adr="")
                 {
                                count_BUILDING++;
                                NOM=name;
                                superficie=super;
                                adresse=adr;
                                m_pBUILDINGSuivant=0;          }
     
                 BUILDING()
                 {
                        count_BUILDING++;
                 }
     
     
                 ~BUILDING()
                 {
                        count_BUILDING--;
                }
     
                 BUILDING(BUILDING &P)
                {
                    count_BUILDING++;
                    NOM=P.NOM;
                    superficie=P.superficie;
                    adresse=P.adresse;
                }
     
                void show_count(){
                    cout<<"nombre de BUILDING "<<count_BUILDING;
                }
                virtual void affiche(){
     
                    cout<<NOM<<endl;
                    cout<<"area est "<<superficie<<endl;
                    cout<<"adresse "<<adresse<<endl;
                    cout<<"counter "<<count_BUILDING<<endl;
     
                };
     
     
          };
    int BUILDING::count_BUILDING=0;

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour,

    Comme le but à l'air d'avoir un nouveau type ZONE pointeur sur BUILDING dimension 4 x 4,
    je m'attends à pouvoir écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ZONE z1;
    z1[0][0] ; pour accéder au Building 1
    z1[0][1] ; pour accéder au Building 2
    ...
    Donc en gros, la classe ZONE devrait s'écrire comme ce qui suit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class ZONE
    {
    	public:
    		BUILDING * operator[](int x){return buildings[x];}
    	private:
    		BUILDING buildings[4][4];
    };
    ou suivant les librairies que tu peux utiliser ou non, de la version de ton compilateur,
    tu pourras remplacer le tableau à taille fixe par des std::vector , std::tr1::array, boost::array, boost::multi_array ...

    Et pour la classe BUILDING ,
    Données membres (Protégées) :
    - Nom : Chaine de caractères.
    - Superficie : réel
    - Adresse : Chaine de caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    class BUILDING 
    {
    	public:
    	  BUILDING ()
    	  :Index(++Count)
    	  {
    		Nom =  ""; 		Adresse = ""; 		Superficie = 0;
    	  }
     
    	  BUILDING (std::string nom, std::string adresse,double superficie)
    	  :Index(++Count)
    	  {
    		Nom = nom; 		Adresse = adresse;  Superficie = superficie;
    	  }
     
    	  const int Index;
     
    	  double GetSuperficie(){return Superficie;}
    	  void SetSuperficie(double superficie) {Superficie = superficie;}
    	  const std::string & GetNom(){return Nom;}
    	  void SetNom(std::string  nom) {Nom = nom;}
    	  const std::string & GetAdresse(){return Adresse;}
    	  void SetAdresse(std::string  adresse) {Adresse = adresse;}
     
    	protected:
    		std::string Nom;
    		std::string Adresse;
    		double Superficie;
    		static int Count;
    };
     
    int Building::Count = 0;
    L'utilisation :
    - des accesseurs Set/Get permet d'éviter de passer les données en public.
    - d'un compteur de BUILDING statique est très
    (ex : risque d'incrémentation pas souhaité lors d'utilisation de variable temporaire), qui ne fera plus correctement le boulot lors d'utilisation de conteneurs de la STL ou d'autres librairies.
    Pour un cas d'école, ça permettra de parler des limites de l'utilisation de variables statiques.

Discussions similaires

  1. [besoin d'aide] sur 2 ou 3 exercices réseaux
    Par toro dans le forum Développement
    Réponses: 9
    Dernier message: 12/07/2010, 21h59
  2. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  3. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  4. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo