bonjour,
je débute dans le c++ et j'ai un probleme avec un menu.
voici mon code:
Code :
- #include <iostream>
- #include <string>
- #include <map>
- using namespace std;
- int main()
- {
- map<string, string> repertoire;
- map<string, string>::iterator it;
- string nom, num;
- int choix;
- do {
- system("cls" );
- cout << "------------------------------" << endl;
- cout << "Répertoire telephonique" << endl;
- cout << "------------------------------" << endl;
- cout << " Nouvelle personne ..........1" << endl;
- cout << " Enlever une personne .......2" << endl;
- cout << " Rechercher un numéro .......3" << endl;
- cout << " Rechercher une personne.....4" << endl;
- cout << " Afficher le repertoire......5" << endl;
- cout << " Quitter l'application ......0" << endl;
- cout << "------------------------------" << endl;
- cout << "Votre choix : ";
- cin >> choix;
- if (choix < 0 || choix > 5) {
- cout << "Choix de la rubrique invalide !" << endl;
- cout << "Saisir un numéro entre 0 et 5 !" << endl;
- system ("pause" );
- }else{
- switch (choix)
- {
- case 1 : cout << "Saisissez le nom de la personne : ";
- cin >> nom;
- cout << "Numéro de téléphone : ";
- cin >> num;
- repertoire[nom] = num;
- break;
- case 2 : cout << "Saisissez le nom de la personne : ";
- cin >> nom;
- repertoire.erase(nom);
- break;
- case 3 : cout << "Saisissez le nom de la personne : ";
- cin >> nom;
- for (it = repertoire.begin(); it != repertoire.end(); it++)
- if (it->first == nom) {
- cout << it->first << " possède le numéro " << num << endl;}
- else
- cout << "cette personne n'existe pas !"<< endl;
- system ("pause" );
- break;
- case 4 : cout << "Saisissez le numéro de téléphone : ";
- cin >> num;
- for (it = repertoire.begin(); it != repertoire.end(); it++)
- if (it->second == num) {
- cout << it->first << " possède le numéro " << num << endl;}
- else
- cout << "pas de personne a ce numero !"<< endl;
- system("pause" );
- break;
- case 5 : cout << "Il y a " << repertoire.size() << " personnes dans le repertoire. " << endl;
- if (repertoire.size()!=0){
- cout << "Liste des personnes : " << endl;
- for (it = repertoire.begin(); it != repertoire.end(); it++)
- cout << '|' << it->first << ", " << it->second << '|' << endl;
- } else
- cout << "Liste vide" << endl;
- system ("pause" );
- }
- }
- }
- while (choix);
- return 0;
- }
|
je voudrai optimiser mon menu.
j'aimerai bien faire en sorte que quand je tape des lettres pour choisir la rubrique, j'ai le message d'erreur comme dans mon code.
D'autre part, je voudrai pouvoir gerer les espaces car si par exemple je rajoute une personne de type NOM[espace]NOM, il mémorise le premier nom comme il faut mais le deuxieme nom en tant que numero. Supposons une mauvaise manip et je peux me retrouver dans mon repertoire avec (exemple) jean comme nom et pierre comme numero.
Comment gerer ce probleme.
Je vous remercie d'avance.