Exercice langage C corrigé (Base de données)

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
#include
 
using namespace std;
 
struct Personne {
  char nom[32];
  char numero[32];
};
 
void nouveau_numero(Personne *nouveau) {
  cout << "Nouvelle entree dans la base de donnees:" << endl;
  cout << "Entrez le nom: ";
  cin >> nouveau->nom;
  cout << "Entrez le numero: ";
  cin >> nouveau->numero;
 
  if (nouveau->nom[0] >= 'a' && nouveau->nom[0] <= 'z') // minuscule
    nouveau->nom[0] += 'A' - 'a'; // majuscule
}
 
void recherche(Personne *db, int taille) {
  char search[32];
  cout << " Entrez le nom a chercher: ";
  cin >> search;
 
  int index = 0;
  while (index < taille && strcmp(db[index].nom, search) != 0)
    index++;
 
  if (index < taille)
    cout << "Le numero de " << search << " est " << db[index].numero << endl;
  else
    cout << "Le nom '" << search << "' n'existe pas dans la base de donnees." << endl;
}
 
void liste(Personne *db, int taille) {
  cout << endl << "Liste:" << endl;
  for (int i=0; i<taille; i++)
    cout << i+1 << ") " << db[i].nom << "  " << db[i].numero << endl;
  cout << endl;
}
 
int main(int argc, char **argv) {
  const int max_adresses = 20;
  Personne db[max_adresses];
  int nombre_adresses = 0;
  bool fin = false;
  char choix;
 
  do {
    cout << "1) Nouveau numero" << endl;
    cout << "2) Recherche" << endl;
    cout << "3) Liste" << endl;
    cout << "4) Quitter" << endl;
    cin >> choix;
 
    switch (choix) {
    case '1':
      if (nombre_adresses < max_adresses) {
        nouveau_numero(db + nombre_adresses);
        nombre_adresses++;
      }
      else
        cout << "Base de donnees pleine\n";
      break;
    case '2':
      recherche(db, nombre_adresses);
      break;
    case '3':
      liste(db, nombre_adresses);
      break;
    case '4':
      fin = true;
      break;
    }
  } while (!fin);
 
  return 0;
}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Besoin d'aide ?