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

#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 *