Vous êtes sur la page 1sur 9

Cours 9 Fin du cours sur les structures Allocation dynamique de structures Base de donnes de numros de tlphone

Vincent Lepetit vincent.lepetit@epfl.ch

Suite
Utiliser les fonctions prcdentes pour afficher les premiers termes de la suite:

z0 = 0 2 z n +1 = z n + p
o p est un nombre complexe qui sera demand l'utilisateur: Complexe z = comp0(); Complexe p = lire_complexe(); for(int i = 0; i < 10; i++) { z = add_comp(mult_comp(z, z), p); afficher_comp(z); }

1.Dfinissez une structure Personne dont les champs seront une chane de caractres pour le nom et une autre pour le numro de tlphone. 3.Dclarez une variable de type Personne dans main puis initialisez-la en demandant l'utilisateur d'entrer un nom et un numro de tlphone. Faites afficher ensuite le nom et le numro de tlphone contenus dans la structure: Le numero de Pierre est 123456. 3.crivez une fonction nouveau_numero qui reoit un pointeur sur Personne en paramtre, demande l'utilisateur d'entrer un nouveau nom ainsi que le numro de tlphone correspondant, et place ces valeurs dans la variable pointe par le paramtre. Il faut aussi s'assurer que le nom commence bien par une majuscule, et modifier le nom en consquence si ce n'est pas le cas. 4.crivez une fonction recherche qui reoit un tableau de Personne ainsi que sa taille en paramtres. La fonction doit demander l'utilisateur le nom qu'il dsire chercher puis effectuer une recherche dans le tableau de personne. Si le nom est trouv, la fonction affichera le numro de tlphone de la personne, sinon elle imprimera un message d'erreur. 5.crivez une fonction liste qui prend un tableau de Personne ainsi que la taille du tableau en paramtre. Cette fonction affichera la liste de toutes les valeurs prsentes dans le tableau.

Exercice
Commencez par dfinir une structure Personne dont les champs seront une chane de caractres pour le nom et une autre pour le numro de tlphone: struct Personne { char nom[100]; char numero[100]; };

crivez maintenant une fonction nouveau_numero qui reoit un pointeur sur Personne en paramtre. La fonction doit demander l'utilisateur d'entrer un nouveau nom ainsi que le numro de tlphone correspondant. Elle placera les nouvelles valeurs dans le pointeur pass en paramtre. Il faut aussi s'assurer que le nom commence bien par une majuscule, et modifier le nom en consquence si ce n'est pas le cas. void nouveau_numero(Personne * nouveau) { cout << "Nouvelle entree dans la base de donnee:" << endl; cout << "Entrez le nom: "; cin >> nouveau->nom; cout << "Entrez le numero: "; cin >> nouveau->numero; if (nouveau->nom[0] >= 'a' && nouveau->nom[0] <= 'z') nouveau->nom[0] += 'A' - 'a'; // majuscule }

nouveau_numero

liste
crivez une fonction nomme liste qui prend un tableau de Personne ainsi que sa taille en paramtre. Cette fonction affichera la liste des personnes prsentes dans le tableau et leur numro de tlphone. void liste(Personne * db, int taille) { cout << endl << "Liste:" << endl;

db

nom numero nom numero nom numero nom numero

for(int i = 0; i < taille; i++) cout << i+1 << ") " << db[i].nom << ": " << db[i].numero << endl; }

que sa taille en paramtre. La fonction doit demander l'utilisateur le nom qu'il dsire chercher puis effectuer une recherche dans le tableau de personne. Si le nom est trouv, la fonction affichera le numro de tlphone de la personne, sinon elle imprimera un message d'erreur. void recherche(Personne * db, int taille) { char nom_a_chercher[32]; cout << " Entrez le nom a chercher: " << endl; cin >> nom_a_chercher; for(int i = 0; i < taille; i++) if (strcmp(db[i].nom, nom_a_chercher) == 0) { cout << "Le numero de " << nom_a_chercher << " est " << db[i].numero << endl; return; } cout << "Le nom " << nom_a_chercher << " n'existe pas dans la base de donnees." << endl; }

recherche tableau de Personne ainsi crivez maintenant une fonction recherche qui reoit un

recherche avec une boucle while


void recherche(Personne *db, int taille) { char nom_a_chercher[32]; cout << " Entrez le nom a chercher: " << endl; cin >> nom_a_chercher; int index = 0; while(index < taille && strcmp(db[index].nom, nom_a_chercher) != 0) index++; if (index cout << << else cout << << } < taille) "Le numero de " << nom_a_chercher " est " << db[index].numero << endl; "Le nom " << nom_a_chercher " n'existe pas dans la base de donnee." << endl;

Exemple de main()
int main(..) { Personne base[100]; int np = 0; nouveau_numero(base); np = 1; nouveau_numero(base + 1); np = 2; nouveau_numero(base + mp); np = np + 1; liste(base, np);