Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 150 fois - Téléchargée 30 fois
#include <iostream> #include <stdlib.h> #include <string> #include <conio.c> #include <fstream> using namespace std; void fonction_numero_par_nom() { clrscr(); string ligne_lue; ifstream rep; rep.open("repertoire"); if(rep.good()) { bool trouve=false; string numero; string personne; int i; cout<<"Entrez le nom : "; cin>>personne; while(rep>>ligne_lue) { i=0; while(ligne_lue.substr(i,1)!=":") { i++; } if((ligne_lue.substr(0,i))==personne) { numero=ligne_lue.substr(i+1,10); cout<<"Le numero de "<<personne<<" est: "<<numero<<".\n\n"<<endl; trouve=true; } } if(trouve==false) cout<<"Aucune numero n'est associe a "<<personne<<"...\n\n"<<endl; rep.close(); } else { cerr<<"Erreur d'ouverture du fichier"; } } void fonction_nom_par_numero() { clrscr(); string ligne_lue; ifstream rep; rep.open("repertoire"); if(rep.good()) { bool trouve=false; string numero; string personne; int i; cout<<"Entrez le numero (sans espaces...) : "; cin>>numero; while(rep>>ligne_lue) { i=0; while(ligne_lue.substr(i,1)!=":") { i++; } if((ligne_lue.substr(i+1,10))==numero) { personne=ligne_lue.substr(0,i); cout<<"Le numero "<<numero<<" est asocie a "<<personne<<".\n\n"<<endl; trouve=true; } } if(trouve==false) cout<<"Aucune personne n'est associee au numero"<<numero<<"...\n\n"<<endl; rep.close(); } else { cerr<<"Erreur d'ouverture du fichier"; } } void fonction_afficher_tout() { clrscr(); ifstream rep; rep.open("repertoire"); if(rep.good()) { string ligne_lue; string personne; string numero; int i=0; int j=0; while(rep>>ligne_lue) { while(ligne_lue.substr(j,1)!=":") { j++; } numero=ligne_lue.substr(j+1,10); personne=ligne_lue.substr(0,j); gotoxy(0,i+1); cout<<"Entree n "; gotoxy(10,i+1); cout<<i+1<<endl; gotoxy(13,i+1); cout<<personne<<endl; gotoxy(35,i+1); cout<<numero<<endl; i++; } gotoxy(1,i+2); if(i==0) cout<<"\nIl n'y a aucune entree dans le repertoire\n\n"<<endl; else if(i==1) cout<<"\nIl n'y a qu'une entree dans le repertoire\n\n"<<endl; else cout<<"\nIl y a "<<i<<" entrees dans le repertoire\n\n"<<endl; rep.close(); } else { cerr<<"Erreur d'ouverture du fichier"; } } void fonction_ajouter_entree() { ofstream rep; rep.open("repertoire",ios::app); if(rep.good()) { string personne,numero; cout<<"Entrez le nom: "; cin>>personne; cout<<"Entrez le numero: "; cin>>numero; rep<<personne<<":"<<numero<<endl; cout<<"\n\n"<<endl; rep.close(); } else { cerr<<"Erreur d'ouverture du fichier"; } } void main() { unsigned short choix; do{ cout<<"Que voulez vous faire ?"<<endl; cout<<"1.Chercher un numero par le nom"<<endl; cout<<"2.Chercher un nom par le numero"<<endl; cout<<"3.Afficher l'integralite du repertoire"<<endl; cout<<"4.Ajouter une entree"<<endl; cout<<"5.Quitter"<<endl; cin>>choix; switch(choix) { case 1: fonction_numero_par_nom(); break; case 2: fonction_nom_par_numero(); break; case 3: fonction_afficher_tout(); break; case 4: fonction_ajouter_entree(); break; case 5: exit(0); break; default: clrscr; cout<<"Mauvais choix\n\n"<<endl; break; } }while(choix!=5); }
Merci de me repondre
j ai aussi rajouté dans les fonctions la gestion d erreur d ouverture du fichier
Mais tes "case" peuvent renvoyer a des fonctions. Ca rend ainsi le code plus rigoureux et plus lisible car j'ai appris que le if n'était pas fait pour ca..., du style..
case 1:
fonction1();
case 2:
fonction2();
et ainsi de suite.... :-). Bonne prog.
Ton passage sur la recherche peut me servir..
Pourquoi ne pas mettre un switch pour les structures de sélection, a la place de tes if ?
Bonne prog....
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.