CORRECTION EXERCICE 4 TP1 C++
// fichier universite.h
#include<string.h>
#include<iostream>
using namespace std;
class UNIVERSITE
{ public:
char * Specialite, * Nom;
int NbrEtudiant;
public:
UNIVERSITE ( );
~ UNIVERSITE ( );
UNIVERSITE (UNIVERSITE &);
void Saisir ( );
void AjouterEtudiant (int);
void Afficher ( );
};
// fichier universite.cpp
#include"universite.h"
UNIVERSITE:: UNIVERSITE () // constructeur par défaut
{ NbrEtudiant = 0 ; Specialite = Nom = NULL;}
///////////////////////////////////////////////////////////
UNIVERSITE::~UNIVERSITE ()
{ if (Nom != NULL)
delete [] Nom ;
if (Specialite != NULL)
delete [] Specialite ;
}
///////////////////////////////////////////////////////////
UNIVERSITE:: UNIVERSITE (UNIVERSITE & U)
{ NbrEtudiant = U.NbrEtudiant ;
Nom = new char [strlen (U.Nom)+1] ;
strcpy (Nom, U.Nom);
Specialite = new char [strlen (U.Specialite)+1] ;
strcpy (Specialite, U.Specialite);
}
///////////////////////////////////////////////////////////
void UNIVERSITE::Saisir ( )
{ char N [1000], S [1000] ;
if (Nom != NULL) delete [] Nom ;
if (Specialite != NULL) delete []Specialite ;
cout<<"Proposer un nom pour l'université: ";
cin >> N;
Nom = new char [strlen (N)+1] ; strcpy (Nom, N);
cout<<"Proposer une spécialité pour l'université: ";
cin>>S;
Specialite = new char [strlen (S)+1] ; strcpy (Specialite, S);
cout<<"Donner le nombre des étudiants: ";
cin>>NbrEtudiant;
}
///////////////////////////////////////////////////////////
void UNIVERSITE::AjouterEtudiant (int e)
{ NbrEtudiant +=e; }
///////////////////////////////////////////////////////////
void UNIVERSITE::Afficher ( )
{ cout<<"Le nom est :"<<Nom <<endl;
cout<<"La spécialité :"<<Specialite <<endl;
cout<<"Le nombre des étudiants :"<<NbrEtudiant<<"\n";
}
///////////////////////////////////////////////////////////
//// fichier principale.cpp
#include"universite.h"
int main()
{
UNIVERSITE u1; //Instance Statique
u1.Saisir ();
u1.Afficher ();
UNIVERSITE *u2; //Instance Dynamique
u2=new UNIVERSITE ();
u2->Saisir ();
u2->Afficher ();
UNIVERSITE campus [5]; // Tableau d'instances
for (int i = 1; i <= 5; i++)
{
cout<<"Université "<<i<<"\n";
campus [i].Saisir ();
campus [i].Afficher ();
}
u2->AjouterEtudiant(6);
u2->Afficher();
delete u2 ;
getch();
}
//Partie 2//
void UNIVERSITE::fusion(UNIVERSITE u)
{ if ( !strcmp(u.Specialite, Specialite))
NbrEtudiant+=u.NbrEtudiant; }
UNIVERSITE fusion2 (UNIVERSITE u1, UNIVERSITE u2)
{ UNIVERSITE u = u1 ;
if ( !strcmp(u1.Specialite, u2.Specialite))
u.NbrEtudiant+=u2.NbrEtudiant;
return u ;
} // il faut déclarer fusion2 amie à UNIVERSITE avec le mot cle friend