TP0 Bis : Révision du C++


Mise en situation
Le travail de ce TP se déroule seul.
Temps alloué : 6h
La programmation se fait sur PC avec le logiciel Visual Studio sous Windows.
|
Objectif
Notions du C++ : main, fonctions, tableaux, structures. |
Pré requis
Programmation C# (1er année)
Aide C : Aide ou Référence
|
Travail demandé
Un listing du code source commenté
Démonstration de l’exécutable.
|
Critères d’évaluation
Clarté de l’ algorythme, lisibilité du code, exécutable opérationnel.
|
But du TP :
Saisir des informations sur les membres d'une classe et les afficher sous des formats différents.
Créer une application permettant les choix suivants :
1 - Saisir un membre de la classe
2 - Rechercher un membre de la classe
3 - Afficher par ordre de saisie
4 - Afficher par ordre alphabetique la classe
5 - Afficher du plus jeune au plus vieux la classe
/* pour les etudiants les plus rapides */
6 - Supprimer un membre de la classe
7 – Quitter le programme
Déroulement du TP :
- Dans Visual Studio, créer un nouveau projet.
- File/new/Project
- Prendre C++ et Win32.
- Créer une application : Win32 Console Application
- Dans le fichier .cpp, copier le programme suivant et exécuter le projet :
- code
#include "stdafx.h"
#include iostream
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<"Bonjour le monde"<<"endl;
getchar();
return 0;
}
- Créer une fonction char menu() qui permet d’afficher les choix possibles.
Aidez vous de l’aide sur internet pour utiliser cette fonction.
Tant que le choix saisi n’est pas compris entre 1 et 6 bouclez et réaffichez les choix.
Pour saisir un caractère, utilisez getchar().
Tester cette fonction dans le main.
- Créer une fonction infos saisie() qui permet de renseigner une structure et de la retourner renseignée.
Vous utiliserez obligatoirement la structure suivante !
typedef struct info
{ char nom[TAILLENOM];
char prenom[TAILLEPRENOM];
int age;
}infos;
La structure infos permet de sauvegarder les informations de chaque membre de la classe.
Pour saisir une chaine de caractères ou un entier, utilisez la fonction suivante :
cin>>etudiant.nom ; //etudiant étant une instance de infos
- Créer la fonction :
void affiche(infos etudiant)
qui affiche les renseignements de etudiant .
Tester les deux fonctions.
- Dans le main, faîtes boucler la saisie du choix tant que l’on ne veut pas quitter le programme. Faire un switch pour choisir ce que l’on veut faire.
- Créer un tableau de 20 infos. Si le nombre de saisie n’excède pas la taille maxi du tableau, sauvegarder les informations saisies dans ce tableau.
- Créer la fonction qui affiche toutes les informations saisies du tableau :
void afficheSaise(infos etudiants[], int nombre)
- Créer la fonction :
int recherche(infos tab[], char nom[], int nombre)
où tab est le tableau de sauvegarde des informations saisies, nom est le nom recherché et nombre est le nombre de saisies effectuées jusqu’à présent.
Tester cette fonction en affichant toutes les informations correspondant au nom recherché. Penser au cas où le nom n’existe pas.
- Pour afficher par ordre alphabétique, il est préférable d’utiliser un tableau d’indexage lors de la saisie. Il faut avoir un tableau d’entiers qui contiendra la liste des places des informations saisies dans l’ordre alphabétique. La difficulté est de placer dans ce tableau le nouvel indexe à la bonne place. Si la place n’est pas la dernière, il faudra décaler tous les indexes suivants.
L’affichage par ordre alphabétique est alors simple à réaliser en utilisant ce tableau d’index.
void afficheAlpha(infos etudiants[], int nombre, int tableauAlpha[])
- Pour les plus rapides, réaliser la fonction de suppression d’un étudiant. Il faudra redécaler le tableau de saisie mais aussi le tableau d’indexes.

