< Précédent

Leçon 3 : Création de la classe cone

Dans cet exercice, vous créez la classe cone. Cette classe représente un cône tridimensionnel.
Pourquoi et quand exécuter cette tâche

Dans l'exercice précédent, vous avez utilisé les outils de développement visuels C++ pour étendre les classes circle et sphere. Dans cet exercice, vous allez utiliser les outils de développement visuels C++ pour ajouter la classe cone au projet. La classe cone, qui hérite de la classe shape3d, calcule et affiche le volume et la surface en fonction du rayon et de la hauteur du cône. Vous pouvez utiliser les outils de développement visuels C++ pour ajouter une classe au projet et pour ajouter un attribut à une classe. Pour modifier le corps de la méthode, cliquez deux fois sur la méthode dans le diagramme, puis modifiez le code source dans l'éditeur de code.

Ajout de la classe cone au projet Shapes

Vous pouvez ajouter la classe au projet à l'aide de la vue Explorateur de projets C/C++. Vous pouvez identifier toutes les relations d'héritage à l'aide de l'assistant Nouvelle classe C++.

Pour ajouter la classe cone au projet Shapes, procédez comme suit :

  1. Dans la vue Explorateur de projets C/C++, cliquez avec le bouton droit de la souris sur le projet Shapes, puis cliquez sur Nouveau > Classe.
  2. Dans la zone Nom de la fenêtre Nouvelle classe C++, entrez cone, puis cliquez sur Parcourir.
  3. Dans la fenêtre de sélection de classe de base, cliquez deux fois sur shapes3d dans la liste des types correspondants.
  4. Dans la vue Explorateur de projets C/C++, développez cone.h, cliquez sur l'élément de classe cone, puis faites-le glisser vers l'éditeur de diagrammes.
Résultats

Vous venez d'ajouter la classe cone au projet Shapes. Vous pouvez utiliser les outils de développement visuels C++ pour ajouter des classes et des attributs à la nouvelle classe. Votre diagramme doit ressembler à celui-ci :

Projet Shapes contenant la nouvelle classe Cone.

Ajout des méthodes getColor et setColor à la classe cone

La classe cone implémente les méthodes getColor et setColor qui sont définies par la classe shape de base.
Pourquoi et quand exécuter cette tâche

Pour ajouter les méthodes getColor et setColor à la classe cone, procédez comme suit :

  1. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Champ.
  2. Dans la zone Nom de la fenêtre Créer le champ C++, entrez color.
  3. Dans la liste Type, entrez string, puis cliquez sur Terminer.
  4. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  5. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez getColor.
  6. Dans la liste Type de retour, entrez string, puis cliquez sur Terminer.
  7. Dans la classe cone, cliquez deux fois sur la méthode getColor et, dans l'éditeur de code, définissez le corps de la méthode getColor comme suit : {return color;};
  8. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  9. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez setColor, puis cliquez sur Terminer.
  10. Dans la classe cone, cliquez deux fois sur la méthode setColor ; dans l'éditeur de code, indiquez void setColor(string c) pour la signature de la méthode et {color = c;}; pour le corps de la méthode.
Résultats
Vous venez d'ajouter les méthodes getColor et setColor à la classe cone.

Ajout des méthodes getSize et setSize à la classe cone

La classe cone implémente les méthodes getSize et setSize qui sont définies par la classe shape de base. La zone de taille contient la hauteur du cône.
Pourquoi et quand exécuter cette tâche

Pour ajouter les méthodes getSize et setSize à la classe cone, procédez comme suit :

  1. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Champ.
  2. Dans la zone Nom de la fenêtre Créer le champ C++, entrez size.
  3. Dans la liste Type, sélectionnez double, puis cliquez sur Terminer.
  4. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  5. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez getSize.
  6. Dans la liste Type de retour, cliquez sur la flèche vers le bas qui se trouve en regard de void, sélectionnez double, puis cliquez sur Terminer.
  7. Dans la classe cone, cliquez deux fois sur la méthode getSize et, dans l'éditeur de code, définissez le corps de la méthode getSize comme suit : {return size;};
  8. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  9. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez setSize, puis cliquez sur Terminer.
  10. Dans la classe cone, cliquez deux fois sur la méthode setSize et, dans l'éditeur de code, définissez le corps de la méthode setSize comme suit : {size = s < 0 ? 0:S;};
Résultats
Vous venez d'ajouter les méthodes getSize et setSize à la classe cone.

Ajout des méthodes getRadius et setRadius à la classe cone

La classe cone implémente les méthodes getRadius et setRadius qui sont définies par la classe shape de base. La zone de rayon contient le rayon de la base du cône. L'application utilise le rayon pour calculer la circonférence et le volume du cône.
Pourquoi et quand exécuter cette tâche

Pour ajouter les méthodes getRadius et setRadius, procédez comme suit :

  1. Dans l'éditeur de diagrammes, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Champ .
  2. Dans la zone Nom de la fenêtre Créer le champ C++, entrez radius.
  3. Dans la liste Type, cliquez sur double, puis cliquez sur Terminer.
  4. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  5. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez getRadius.
  6. Dans la liste Type de retour, sélectionnez double, puis cliquez sur Terminer.
  7. Dans la classe cone, cliquez deux fois sur la méthode getRadius et, dans l'éditeur de code, définissez le corps de la méthode getRadius comme suit : {return radius;};
  8. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  9. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez setRadius, puis cliquez sur Terminer.
  10. Dans la classe cone, cliquez deux fois sur la méthode setRadius et, dans l'éditeur de code, définissez le corps de la méthode setRadius comme suit : {radius = r < 0 ? 0:r;};
Résultats
Vous venez d'ajouter les méthodes getRadius et setRadius à la classe cone.

Ajout des méthodes surfaceArea et volume à la classe cone

La classe cone implémente les méthodes surfaceArea et volume qui sont définies par la classe shapes3d. La formule qui calcule la surface d'un cône est πr² + πrs, où s=(r2 + h2)1/2. Celle qui permet de calculer le volume d'un cône est 1/3 x πr²h.
Pourquoi et quand exécuter cette tâche

Pour ajouter les méthodes surfaceArea et volume à la classe cone, procédez comme suit :

  1. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  2. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez surfaceArea.
  3. Dans la liste Type de retour, sélectionnez double, puis cliquez sur Terminer.
  4. Dans la classe cone, cliquez deux fois sur la méthode surfaceArea et, dans l'éditeur de code, définissez le corps de la méthode surfaceArea comme suit : {return pi * radius * (radius + (pow(pow(radius,2) + pow(size,2),0.5)));};
  5. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  6. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez volume, puis cliquez sur Terminer.
  7. Dans la classe cone, cliquez deux fois sur la méthode volume et, dans l'éditeur de code, définissez le corps de la méthode volume comme suit : {return 0.333 * pi * (pow(radius,2) * size);};
Résultats
Vous venez d'ajouter les méthodes surfaceArea et volume à la classe cone.

Ajout des méthodes set et print à la classe cone

La classe cone implémente les méthodes set et print qui sont définies par la classe shape de base.
Pourquoi et quand exécuter cette tâche

Pour ajouter les méthodes set et print à la classe cone, procédez comme suit :

  1. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  2. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez print, puis cliquez sur Terminer.
  3. Dans la classe cone, cliquez deux fois sur la méthode print et, dans l'éditeur de code, définissez le corps de la méthode print comme suit :
    { cout  << "Cone:"
    			<< "\n\tLength = " << getSize()
    			<< "\n\tArea   = " << surfaceArea()
    			<< "\n\tVolume = " << volume()
    			<< "\n\tColor  = " << getColor()
    			<< "\n\n";
    };
  4. Dans l'éditeur de diagrammes, dans le diagramme classdiagram.dnx, cliquez avec le bouton droit de la souris sur la classe cone, puis cliquez sur Ajouter C/C++ > Méthode.
  5. Dans la zone Nom de la fenêtre Créer la méthode C++, entrez set, puis cliquez sur Terminer.
Résultats
Vous venez d'ajouter les méthodes print et set à la classe cone.

Edition du fichier cone.cpp

Le fichier classe cone.cpp contient l'implémentation de la méthode set, ainsi que le constructeur et le destructeur. Vous modifiez le corps de la méthode set pour inviter l'utilisateur à indiquer la taille et le rayon du cône. Vous devez également modifier le constructeur par défaut afin de définir les valeurs initiales de la nouvelle classe cone.
Pourquoi et quand exécuter cette tâche

Pour éditer le fichier cone.cpp, procédez comme suit :

  1. Dans la vue Explorateur de projets C++, cliquez deux fois sur la classe cone.cpp.
  2. Dans la classe cone.cpp de l'éditeur de code, définissez le corps du constructeur par défaut comme suit : {color="Transparent"; radius=0; size=0;}
  3. Dans la section de déclaration de méthode, définissez le corps de la méthode set comme suit :
    void cone::set()	{
    	double size;
    	double radius;
    	string color;
    	
    	cout << "Entrez la hauteur du cône : ";
    	cin >> size; 
    	setSize(size);
    	
    	cout << "Entrez le rayon de la base du cône : ";
    	cin >> radius; 
    	setRadius(radius);
    	
    	cout << "Entrez la couleur du cône : ";
    	cin >> color;
    	setColor(color);
    }
  4. Pour sauvegarder le projet, cliquez sur Fichier > Sauvegarder.
Résultats
Vous venez de terminer le projet Shapes en ajoutant la méthode set dans le fichier classe cone.cpp.

Exécution de l'application étendue

Avant de lancer l'application, vous devez ajouter l'instruction include à la classe main.cpp, de sorte que celle-ci contienne la nouvelle classe cone. Vous pouvez lancer l'application et instancier la nouvelle classe cone en modifiant la classe main.cpp.
Pourquoi et quand exécuter cette tâche

Pour lancer l'application, procédez comme suit :

  1. Dans la vue Explorateur de projets C++, cliquez deux fois sur la classe main.cpp.
  2. Dans la section de déclaration de la classe, sous #include "tetrahedron.h", ajoutez l'instruction include suivante : #include "cone.h"
  3. Dans l'éditeur de code, ajoutez le code suivant au corps principal de la classe :
    //instanciation et exécution de la classe cone
    		cone c;
    		c.print();
    		c.set();
    		c.print();
  4. Pour sauvegarder et générer le projet, cliquez sur Fichier > Sauvegarder.
  5. Cliquez sur Exécuter.
Résultats
Le programme affiche la taille, la couleur, la surface et le volume de la forme conique et vous invite à entrer des valeurs pour la nouvelle instance de cone.
< Précédent

Vos commentaires