Vous êtes sur la page 1sur 3

#include <iostream>

#include <string>

class Etudiant {
private:
static int count; // To auto-increment the matricule
int matricule;
std::string nom;
int nbNotes;
float *TabNotes;

public:
// Constructors
Etudiant() {
matricule = ++count;
nbNotes = 0;
TabNotes = nullptr;
}

Etudiant(const std::string& name, int numNotes) {


matricule = ++count;
nom = name;
nbNotes = numNotes;
TabNotes = new float[nbNotes];
}

// Destructor
~Etudiant() {
delete[] TabNotes;
}

// Copy Constructor
Etudiant(const Etudiant &other) {
matricule = other.matricule;
nom = other.nom;
nbNotes = other.nbNotes;
TabNotes = new float[nbNotes];
for (int i = 0; i < nbNotes; i++) {
TabNotes[i] = other.TabNotes[i];
}
}

// Getters and Setters


int getMatricule() {
return matricule;
}

void setNom(const std::string& name) {


nom = name;
}

// Other member functions


void saisie() {
TabNotes = new float[nbNotes];
for (int i = 0; i < nbNotes; i++) {
std::cout << "Donner la note " << i + 1 << " : ";
std::cin >> TabNotes[i];
}
}
void affichage() {
std::cout << "- Matricule : " << matricule << std::endl;
std::cout << "- Nom : " << nom << std::endl;
std::cout << "- Nombre de notes : " << nbNotes << std::endl;
std::cout << "- Notes : ";
for (int i = 0; i < nbNotes; i++) {
std::cout << TabNotes[i] << " ";
}
std::cout << std::endl;
}

float moyenne() {
float total = 0;
for (int i = 0; i < nbNotes; i++) {
total += TabNotes[i];
}
return total / nbNotes;
}

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

bool comparer(const Etudiant &other) {


return (moyenne() == other.moyenne());
}
};

int Etudiant::count = 0; // Initialize the static count variable

int main() {
Etudiant E;
std::cout << "Creation d'un objet Etudiant E avec 3 notes" << std::endl;
std::cout << "Saisie des notes : " << std::endl;
E.saisie();
std::cout << "Affichage de l'etudiant E:" << std::endl;
E.affichage();

Etudiant E1 = E;
std::cout << "Copie de l'etudiant E dans E1" << std::endl;
std::cout << "L'affichage de l'etudiant E1:" << std::endl;
E1.affichage();

Etudiant E2("etud2", 2);


std::cout << "Creation d'un objet Etudiant E2 avec 2 notes" << std::endl;
std::cout << "Saisie des notes : " << std::endl;
E2.saisie();

std::cout << "Appel des getters :" << std::endl;


std::cout << "Le matricule de l'etudiant E2 : " << E2.getMatricule() <<
std::endl;
E2.setNom("etud2");
std::cout << "Le nom de l'etudiant E2 : " << E2.getNom() << std::endl;
std::cout << "Le nombre de notes de l'etudiant E2 : " << E2.getNbNotes() <<
std::endl;
std::cout << "La moyenne de l'etudiant E est : " << E.moyenne() << std::endl;

if (E.admis()) {
std::cout << "l'etudiant E est admis" << std::endl;
} else {
std::cout << "l'etudiant E n'est pas admis" << std::endl;
}

if (E.comparer(E2)) {
std::cout << "Les Etudiants E et E2 ont la meme moyenne" << std::endl;
} else {
std::cout << "Les Etudiants E et E2 n'ont pas la meme moyenne" <<
std::endl;
}

return 0;
}

Vous aimerez peut-être aussi