Exercices corrigés C++ les classes et l’héritage – Partie 1
Avec des exercices corrigés en C++, vous pratiquerez divers concepts du langage C++. Vous commencerez par des exercices C++ de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Vous pouvez utiliser l’éditeur C++ suivant pour résoudre les exercices suivants: (Cliquez sur l’onglet input si vous souhaitez entrer des valeurs, cliquez sur Run pour exécuter votre programme, le résultat sera affichée sur l’onglet output).
Exercice 1:
Écrivez une classe « Rectangle » ayant deux variables « a » et « b » et une fonction membre « surface() » qui retournera la surface du rectangle.

#include <iostream>
using namespace std;
class Rectangle {
public:
int a,b;
int surface(){
return a*b;
}
};
int main() {
Rectangle rectangle;
cout<<"Entrez la largeur(a) du rectangle :"<<endl;
cin>>rectangle.a;
cout<"Entrez la longueur(b) du rectangle:"<<endl;
cin>>rectangle.b;
cout<<"Surface : "<< rectangle.surface();
return 0;
}
Exercice 2:
Écrivez une classe « Somme » ayant deux variables « n1 » et « n2 » et une fonction membre « sum() » qui calcule la somme. Dans la méthode principale main demandez à l’utilisateur d’entrez deux entiers et passez-les au constructeur par défaut de la classe « Somme » et afficher le résultat de l’addition des deux nombres.
#include <iostream>
using namespace std;
class Somme{
public:
int n1, n2;
//constructeur par défaut
Somme(int nbr1, int nbr2){
n1=nbr1;
n2=nbr2;
cout<<"Les nombres sont initialisés.\n";
}
int sum(){
return n1 + n2;
}
};
int main (){
int n1, n2;
cout<<"Entrez le premier nombre : \n";
cin>>n1;
cout<<"Entrez le deuxième nombre : \n";
cin>>n2;
//appeler le constructeur par défaut.
Somme obj(n1,n2);
cout<<"Le résultat de l'addition est :"<< obj.sum() <<"\n";
return 0;
}
Exercice 3:
Écrivez une classe C++ appelée « Student » avec les membres suivant :
- nom (de type char),
- note1, note2 (de type int)
Le programme demande à l’utilisateur d’entrer le nom et les notes. calc_moy() calcule la note moyenne et show() affiche le nom et la note moyenne.
#include <iostream>
using namespace std;
class Student{
public:
string nom;
int note1, note2;
Student(string _nom, int _note1, int _note2){
nom = _nom;
note1 = _note1;
note2 = _note2;
}
int calc_moy(){
return (note1 + note2)/2;
}
void show(){
cout << "Étudiant: " << nom << " \n moyenne: "<< calc_moy() << endl;
}
};
int main(){
string nom;
int note1, note2;
cout << "Entrez le nom: ";
cin >> nom;
cout << "Entrez les notes de deux matiéres: ";
cin >> note1;
cin >> note2;
Student s(nom, note1, note2);
s.show();
return 0;
}
Exercice 4:
Effectuez une opération d’addition sur des nombres complexes à l’aide d’une classe C++ appelée « Complex ». Le programme doit demander la partie réelle et imaginaire de deux nombres complexes et afficher les parties réelle et imaginaire de leur somme.
Exemple:
Premier nombre Entrez la partie réelle: 1 Entrez la partie imaginaire: 4 Deuxième nombre Entrez la partie réelle: 2 Entrez la partie imaginaire: 3 La somme est 3 + 7i
#include <iostream>
using namespace std;
class Complex{
public:
double real, imag;
Complex(double r, double i){
real = r;
imag = i;
}
};
int main(){
double r1, i1;
cout << "Premier nombre \n";
cout << "Entrez la partie réelle: ";
cin >> r1;
cout << "Entrez la partie imaginaire: ";
cin >> i1;
//créer le nombre complexe 1
Complex c1(r1, i1);
cout << "Deuxième nombre\n";
double r2, i2;
cout << "Entrez la partie réelle: ";
cin >> r2;
cout << "Entrez la partie imaginaire: ";
cin >> i2;
//créer le nombre complexe 2
Complex c2(r2, i2);
// calculer la somme des deux nombres complexes c1 et c2
double r = c1.real + c2.real;
double i = c1.imag + c2.imag;
cout << "La somme est "<< r << " + " << i << "i";
return 0;
}
Exercice 5:
Créez une classe appelée « Point ». Cette classe doit avoir 2 entiers (x, y) en tant que membres privés. Le constructeur doit définir les valeurs de x et y via des paramètres. La classe doit avoir une méthode publique appelée « distance ». Cela prend un seul paramètre(Point) et renvoie la distance entre les 2 points.

Exemple:
P1 (5,6) P2 (3,2) La distance entre P1 et P2 est : 4.47214
#include <iostream>
#include <math.h>
using namespace std;
class Point {
public:
Point(double _x, double _y)
{
x = _x;
y = _y;
}
double getX()
{
return x;
}
double getY()
{
return y;
}
double distance(Point &p)
{
const double px = getX() - p.getX();
const double py = getY() - p.getY();
return sqrt(px * px + py * py);
}
private:
double x;
double y;
};
int main (){
Point p1(5, 6);
Point p2(3, 2);
cout << " P1 (" << p1.getX() << "," << p1.getY() << ")" << endl;
cout << " P2 (" << p2.getX() << "," << p2.getY() << ")" << endl;
cout << "La distance entre P1 et P2 est : " << p1.distance(p2);
return 0;
}



