• Aucun résultat trouvé

Licence Sciences Technologies Santé -2

N/A
N/A
Protected

Academic year: 2022

Partager "Licence Sciences Technologies Santé -2"

Copied!
1
0
0

Texte intégral

(1)

Licence Sciences Technologies Santé -2ème année Examen Informatique – Module I4a

Partiel Mardi 26 Avril – Durée 2h

Documents autorisés : Cours, TD et Listings de TP Exercice 1 : (6points)

Un étudiant en informatique a écrit le programme donné en annexe.

1. Donnez le résultat à l'exécution de ce programme.

2. L'étudiant décide de supprimer le mot-clé virtual devant la méthode comparaison de la classe Personne. Ce changement modifie-t-il le résultat à l'exécution du programme. Justifiez votre réponse.

3. L'étudiant n'est pas satisfait de son programme, il décide de le modifier. Il écrit la méthode getNom de la classe Personne sous la forme suivante :

void Personne :: getNom() {return nom;}

Expliquez les différences de ces deux versions en donnant un exemple d'appel de ces 2 méthodes (1ère et 2ème versions) et en expliquant les différences au niveau des réservations d'espace en mémoire.

4. L'étudiant décide aussi d'ajouter des méthodes de comparaison en surchargeant les opérateurs classiques de comparaison >,

<, ==, !=, etc. Décrivez complètement en C++ la surcharge des opérateurs < et == pour la classe Personne.

5. Expliquez le constructeur avec paramètres de la classe Etudiant.

Exercice 2 : (14 points)

Dans le cadre du développement des programmes d'échanges internationaux et de mobilité des étudiants et des enseignants, le service des relations internationales souhaite disposer d'un logiciel lui permettant de faire des statistiques sur les nombres des étudiants et leurs destinations dans le cadre de ces échanges.

Une première version du logiciel permet de saisir et d'analyser les résultats d'une enquête menée au sein de l'université.

Le questionnaire comporte les informations suivantes : le nom, le prénom de l'étudiant, sa filière, le pays dans lequel il est allé, la durée de son séjour et le type de financement qu'il avait parmi les quatre suivants : Erasmus, Leonardo, Conseil Régional, Autre.

Le logiciel devra permettre :

d'ajouter les résultats d'un questionnaire,

de donner les pourcentages d'étudiants pour chaque catégorie de financement,

de donner les pourcentages d'étudiants pour chaque destination.

d'afficher l'ensemble de tous les questionnaires.

1. Décrivez en C++ l'entête de la classe CQuestionnaire (sans le corps des méthodes), avec au minimum des méthodes d'observation des attributs, de saisie et d'affichage et des constructeurs.

2. Décrivez complètement en C++ le constructeur avec paramètre et la méthode d'affichage.

Pour gérer l'ensemble des questionnaires, on décide d'utiliser un tableau de questionnaires de taille MAX et un tableau des pays où sont allés les étudiants.

(On supposera que ces tableaux sont sauvegardés et restaurés à la fin et au début de l'application.)

L'ajout d'un questionnaire se passe de la façon suivante : les informations concernant l'étudiant (nom, prénom) et son séjour (durée, financement) sont saisies puis sa destination (pays). On vérifie alors si le pays d'échange est déjà dans le tableau et si non on l'ajoute.

3. Décrivez en C++ la classe CEchanges (sans le corps des méthodes) avec au minimum un constructeur par défaut, et des méthodes pour les fonctionnalités attendues du logiciel.

4. Décrivez complètement en C++ la méthode d'ajout d'un questionnaire.

5. Décrivez complètement en C++ la méthode de calcul des pourcentages d'étudiants pour chaque catégorie de financement.

6. En utilisant le menu ci-dessous et les classes que vous avez décrites, donner le programme principal de l'application.

int menu(void)

{ int choix;

cout << "0 Fin" << endl;

cout << "1 Ajout d'un questionnaire" << endl;

cout << "2 Répartition par financement" << endl;

cout << "3 Répartition par destination" << endl;

cout << "4 Affichage de tous les questionnaires" << endl;

do

{cout << "choix ? ";

cin >> choix;

}

while (choix <0 || choix > 4);

return choix;

}

(2)

ANNEXE

class Personne {

char nom[80];

public:

Personne();

Personne(char *);

char *getNom(char*);

void setNom(char*);

virtual bool comparaison(Personne);

void test_comp(Personne);

};

Personne::Personne() { strcpy(nom, "");}

Personne::Personne(char *n) { strcpy(nom, n);}

char * Personne :: getNom(char* n) { strcpy(n, nom);

return n;

}

void Personne :: setNom(char* n) { strcpy(nom,n);

}

bool Personne :: comparaison(Personne p) {

cout << "Comparaison des Personnes " << endl;

if (strcmp(nom,p.nom) <0) return true;

else return false;

}

void Personne:: test_comp(Personne p) {

cout << "Résultat de la comparaison"<< endl;

if (comparaison(p))

cout << nom << " " << p.nom << endl;

else

cout << p.nom << " " << nom << endl;

}

class Etudiant : public Personne {

char numEtu[80];

public:

Etudiant();

Etudiant(char*, char*);

char *getNumEtu(char*);

void setNumEtu(char*);

bool comparaison(Personne);

};

Etudiant::Etudiant() {}

Etudiant::Etudiant(char *n, char*

num):Personne(n) {strcpy(numEtu,num);}

char * Etudiant :: getNumEtu(char* n) { strcpy(n, numEtu);

return n;

}

void Etudiant :: setNumEtu(char* n) { strcpy(numEtu,n);}

bool Etudiant :: comparaison(Personne e) { char n1[80],n2[80];

cout << "Comparaison des Etudiants" << endl;

if (strcmp(getNom(n1),e.getNom(n2)) >0) return true;

else return false;

}

void main(void)

{ Personne p1("Dupont");

Personne p2("Durand");

p1.test_comp(p2);

Etudiant e1("Boulot", "abc123");

Etudiant e2("Couturier","aaa123");

e1.test_comp(e2);

}

(3)

Références

Documents relatifs

sous puis remettez dans le bon ordre chacune des photos afin de montrer comment se construit

19h (10h 30min cours magistraux - 1h 30min travaux dirigés - 4h travaux pratiques - 3h travail en accompagnement) 2 crédits ECTS. Code de

PAGE 25 l CONTENU DES ENSEIGNEMENTS - S3 - Parcours Biologie Biologie cellulaire animale et végétale.. Animal and plant

 Plusieurs approches sont utilisées en sciences sociales, on distinguera dans cette perspective les approches de type diachronique,.. fonctionnaliste, structural, systémique,

• Si non classé en rang utile : passage en 2 e année de licence (Sciences pour la santé ou disciplinaire si validation du bloc disciplinaire). — Non admissible aux oraux :

Quelles sont leurs formes, leurs couleurs et leurs dimensions?. Quels autres détails pouvez-vous mettre

117decrirephoto1; décrivez cette photo en détail ; répondez aux questions?. Qui est

118decrirephoto2; décrivez cette photo en détail ; répondez aux questions?. Qui