1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
int main()
{
//il nous faut un tableau d'éleves
vector<string> eleves;
//un "flag" pour savoir si la liste a été modifiée
bool modifie=false;//par defaut, elle ne l'a pas ete ;)
//le nom du profil en cours
string profile;
//le nom du fichier d'enregistrement de la classe
string classename;
//et une valeur pour récupérer le choix
int choix;
//on va boucler jusqu'à ce que l'utilisateur choisisse de quitter
do
{
//on récupère le choix de l'utilisateur grace à la fonction menu
choix=menu();
//Chacun des choix possible provoquera l'appel d'une fonction
// différente
switch(choix)
{
case 1://crée le profil utilisateur
profile=CreeProfil();//à implémenter ;)
break;
case 2://modifie le profil utilisateur
ModifProfil(profile);//à implémenter ;)
break;
case 3://crée une nouvelle classe
/* la fonction verifiera si la classe en cours a ete modifiée
* et en proposera l'enregistrement avant de la vider
*/
CreerClasse(eleves,classename,modifie);//à implémenter
modifie=false;//Une classe à peine créée n'a d'office pas été
//modifiée ;)
break;
case 4:
EnregistreClasse(eleves,classename);//à implémenter
modifie=false;//tout de suite apres enregistrement, la classe
//du fichier et celle qui est en mémoire sont
//identiques ;)
break;
case 5://charger une autre classe
/* propose d'enregistrer la classe si elle a été modifée
* avant de charger la nouvelle classe
*/
ChargerClasse(eleves,classename,modifie);//a implementer
modifier=false;// tout de suite apres chargement d'une
// nouvelle classe, la classe du fichier et
// celle qui est en mémoire sont identiques ;)
break;
case 6:
/* l'utilisation peut, pour une série de raisons, décider de
* ne pas ajouter un élève apres avoir demandé à le faire
* ou l'insertion peut échouer ...
* la fonction renvoie donc vrai si l'ajout a eu lieu et false
* sinon...
* si le flag était à vrai avant la tentative d'ajout, il doit
* etre vrai apres, mais, s'il était à faux avant, il doit
* changer en fonction du résultat de la fonction ;)
*/
bool recup=AjoutEleve(eleves);//à implementer
modifie=modifie || recup;
break;
case 7: //supprime un éleve de la classe
/* il faut suivre le meme raisonnement pour la suppression
* d'un éleve que pour son ajout ;)
*/
bool recup=SuppressEleve(eleves);//à implémenter
modifie=modifie||recup;
break;
case 8://Permet de modifier les données d'un élève ;)
/* Encore une fois, le flag doit etre modifé en fonction de la
* réussite de la fonction ;)
*/
bool recup=ModifieEleve(eleves);//à implémenter ;)
break;
case 9: //choisi un éleve à interroger
/* Il ne semble pas logique de supprimer un eleve de la classe
* quand il a été interrogé
*/
InterrogerEleve(eleves);//à implémenter ;)
/* plus loin, je proposerai une strucutre pour les éleves...
* si elle t'agrée, il sera intéressant de signaler que
* la classe a été modifiée ;)
*/
case 10://affiche la liste des élèves de la classe
AfficheClasse(eleves);
break;
default://correspond à choix==0;)
Quitter(eleves,classename,profile,modifie);//à implémenter
}
}while(choix != 0)
return 0;
} |
Partager