EVALUATION EN C++ TEST  01/ XX   

Examen C++, Examen Corrige C plus plus

Exercice 01 : Question de Cours 5pts

  1. Définir les notions suivantes : Classes , objet , polymorphisme,encapsulation,héritage.
  2. Après avoir définit le sigle POO,donner les concepts fondamentaux de la POO.

 

Exercice 02 : (3pts)

Écrire une fonction C++ qui détermine si un nombre est Parfait ou non.

Principe: Un nombre égal à la somme de ses diviseurs propres est parfait. Exemple : 6 Est Parfait car en effet 1, 2 et 3 sont les diviseurs propres de 6 et la somme de 1+2+3 = 6.

 

Exercice 03 : (12pts)

Il est demande au étudiants de la GeniusClassrooms de créer une classe C++ pour gérer les notes d’étudiants d'une Institution dans l'ouest du Cameroun.Chaque étudiant a les attributs suivants : matricule ( auto-incremente ) , monEtud ( nom de l’étudiant ) , nbrNotes ( le nombre de notes de l’étudiant ) , *tabNotes ( un tableau contenant les notes d'un étudiant ( allocation dyanmiques).

  1. Définir un constructeur d'initialisation , un constructeur avec argument et un constructeur de recopie , Etudiant ( const Etudiant & ).
  2. Définir un destructeur ~Etudiant ( ) .
  3. Définir un getters et setters.
  4. Définir la méthode void saisie( ) permettant la saisie des notes de l’étudiant.
  5. Définir la méthode void affichage( ) permettant d'afficher les informations d'un l’étudiant.
  6. Définir la méthode float moyenne( ) qui retourne le résultat de la moyenne des notes de l’étudiant.
  7. Écrire la méthode bool admis( ) qui retourne comme résultat la valeur true si un étudiant est admis et la valeur false sinon . Un étudiant est considéré comme étant admis lorsque la moyenne de ses notes est supérieure ou égale a 10.
  8. Écrire la méthode bool compare( ) qui compare deux étudiants et retourne comme résultat la valeur true si deux étudiants ont la même moyenne et la valeur false sinon.

 

Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk

 

 
 

Solution :

Exercice 01 :

Classes : Une classe en programmation orientée objet (POO) est un ensemble de variables (attributs) et de fonctions (méthodes) qui permettent de modéliser un objet ou un concept. Les classes sont les modèles qui permettent de créer des objets en POO.

Objet : Un objet est une instance d'une classe. Il est créé à partir du modèle fourni par la classe et possède des attributs et des méthodes qui lui sont propres. Les objets sont les éléments concrets que l'on manipule en POO.

Polymorphisme : Le polymorphisme est la capacité d'un objet à prendre plusieurs formes. Il permet à une méthode d'avoir plusieurs implémentations différentes selon le type de l'objet sur lequel elle est appelée. On distingue le polymorphisme statique (overloading) et le polymorphisme dynamique (overriding).

Encapsulation : L'encapsulation est un mécanisme qui permet de cacher les détails de l'implémentation d'une classe aux utilisateurs de cette classe. Elle permet de garantir que les attributs d'un objet ne peuvent être modifiés que par l'intermédiaire de méthodes de la classe.

Héritage : L'héritage est un mécanisme qui permet de définir une nouvelle classe à partir d'une classe existante en héritant de ses attributs et de ses méthodes. La classe héritée est appelée superclasse ou classe de base, et la nouvelle classe est appelée sous-classe ou classe dérivée. La sous-classe peut étendre ou spécialiser le comportement de la superclasse.

POO signifie Programmation Orientée Objet. Les concepts fondamentaux de la POO sont :

  • L'encapsulation
  • L'héritage
  • Le polymorphisme
  • Les classes et les objets

Exercice 02 :

Voici une fonction C++ qui détermine si un nombre est parfait ou non :

bool estParfait(int n) {
    int somme = 0;
    for (int i = 1; i < n; i++) {
        if (n % i == 0) {
            somme += i;
        }
    }
    return somme == n;
}

Cette fonction prend en paramètre un entier n et retourne true si n est parfait, et false sinon. Elle utilise une boucle pour calculer la somme des diviseurs propres de n, et vérifie ensuite si cette somme est égale à n. Si c'est le cas, alors n est parfait.

Exercice 03 :

#include <iostream>
#include <string>
using namespace std;

class Etudiant {
private:
    int matricule;
    string monEtud;
    int nbrNotes;
    float* tabNotes;

public:
    Etudiant() {
        matricule = 0;
        monEtud = "";
        nbrNotes = 0;
        tabNotes = NULL;
    }

    Etudiant(int mat, string nom, int nbNotes) {
        matricule = mat;
        monEtud = nom;
        nbrNotes = nbNotes;
        tabNotes = new float[nbrNotes];
    }

    Etudiant(const Etudiant& e) {
        matricule = e.matricule;
        monEtud = e.monEtud;
        nbrNotes = e.nbrNotes;
        tabNotes = new float[nbrNotes];
        for (int i = 0; i < nbrNotes; i++) {
            tabNotes[i] = e.tabNotes[i];
        }
    }

    ~Etudiant() {
        if (tabNotes != NULL) {
            delete[] tabNotes;
        }
    }

    int getMatricule() const {
        return matricule;
    }

    string getNom() const {
        return monEtud;
    }

    int getNbrNotes() const {
        return nbrNotes;
    }

    void setMatricule(int mat) {
        matricule = mat;
    }

    void setNom(string nom) {
        monEtud = nom;
    }

    void setNbrNotes(int nbNotes) {
        nbrNotes = nbNotes;
        if (tabNotes != NULL) {
            delete[] tabNotes;
        }
        tabNotes = new float[nbrNotes];
    }

    void saisie() {
        cout << "Saisie des notes pour l'etudiant " << monEtud << " (matricule " << matricule << ")" << endl;
        for (int i = 0; i < nbrNotes; i++) {
            cout << "Note " << i + 1 << " : ";
            cin >> tabNotes[i];
        }
    }

    void affichage() const {
        cout << "Etudiant " << monEtud << " (matricule " << matricule << ") : ";
        for (int i = 0; i < nbrNotes; i++) {
            cout << tabNotes[i] << " ";
        }
        cout << endl;
    }

    float moyenne() const {
        float sum = 0;
        for (int i = 0; i < nbrNotes; i++) {
            sum += tabNotes[i];
        }
        return sum / nbrNotes;
    }

    bool admis() const {
        return (moyenne() >= 10);
    }

    bool compare(const Etudiant& e) const {
        return (moyenne() == e.moyenne());
    }
};

int main() {
    Etudiant etud1(1, "Alice", 3);
    Etudiant etud2(2, "Bob", 4);

    etud1.saisie();
    etud2.saisie();

    etud1.affichage();
    etud2.affichage();

    cout << "Moyenne etudiant 1 : " << etud1.moyenne() << endl;
    cout << "Moyenne etudiant 2 : " << etud2.moyenne() << endl;

    if (etud1.admis()) {
        cout << "Etudiant 1 admis" << endl;
    }

Télécharger L'exercice Sous Forme de PDF

 
Aucune note. Soyez le premier à attribuer une note !

Commentaires

  • Benjos

    1 Benjos Le 31/01/2024

    Comment télécharger les exercices sous forme de pdf?

Ajouter un commentaire

Anti-spam