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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
| #include <iostream>
#include <cstring>
#include <fstream>
#include <vector>
using namespace std;
typedef struct
{
string nom;
string prenom;
int numeroTelephone;
} repertoire;
void charger(ifstream &fichier)
{
string ligne;
if(fichier)
{
while(getline(fichier, ligne))
{
cout << "\n" << ligne << endl;
}
}
else
cout << "error !" << endl;
}
repertoire ajouterContact(repertoire t)
{
cout << "\nPrenom : ";
cin >> t.prenom;
cout << "Nom : ";
cin >> t.nom;
cout << "Numero de telephone : ";
cin >> t.numeroTelephone;
return t;
}
void sauvegarder(repertoire t)
{
// Ouverture du fichier en mode écriture
string const fichier("C:/Users/Dell/Desktop/projet-repertoire-telphonique/repertoire.txt");
ofstream monFlux(fichier.c_str(), ios::app);
//Récupération des éléments de la structure
repertoire r = ajouterContact(t);
if(monFlux)
monFlux << r.prenom << " " << r.nom << " " << r.numeroTelephone << endl;
else
cout << "Echec ouverture !" << endl;
}
void rechercheMot( ifstream& fichier, string mot)
{
int compteur(0);
char charFichier;
while( !fichier.eof() && compteur < mot.size()) // Lit le fichier tant qu'on n'a pas atteint la fin
{
fichier.get(charFichier);// Récupère le caractère qui se trouve dans le fichier
if( charFichier == mot[compteur]) // Compare le caractère récupéré au caractère qui se trouve à la position du compteur
{
compteur += 1;// Incrémente le compteur si les caractère sont égaux
}
else
{
compteur = 0;
}
}
// Test de fin pour déterminer si le mot existe dans le fichier
if (compteur == mot.size()) // On compare la taille de la chaine au compteur
{
cout << "\nLe mot existe dans le fichier ! " << endl;
}
else
{
cout << "\nLe mot n'existe pas dans le fichier ! " << endl;
}
}
void menu()
{
int choix;
repertoire t;
char ajouter = 'o';
string nom;
//Ouverture du fichier en mode lecture
ifstream fichier("C:/Users/Dell/Desktop/projet-repertoire-telphonique/repertoire.txt");
cout << "\n============================== Menu ================================\n";
cout << "\n" << "1==>----------------------Ajouter un contact------------------------" << endl;
cout << "2==>----------------------Rechercher un contact---------------------" << endl;
cout << "3==>----------------------Supprimer un contact----------------------" << endl;
cout << "4==>----------------------Modifier un contact-----------------------" << endl;
cout << "5==>----------------------Afficher un contact-----------------------" << endl;
cout << "6==>----------------------Afficher tous les contacts----------------" << endl;
cout << "7==>----------------------Quitter-----------------------------------" << endl;
cout << "\n====================================================================\n";
cout << "\nTapez votre choix : ";
cin >> choix;
switch(choix)
{
case 1:
while(ajouter == 'o')
{
sauvegarder(t);
cout << "\nVoulez vous ajouter un autre contact ? (o/n) : ";
cin >> ajouter;
}
break;
case 2:
cout << "\nNom a rechercher : ";
cin >> nom;
rechercheMot(fichier, nom);
break;
case 6:
charger(fichier);
break;
}
}
int main()
{
menu();
return 0;
} |
Partager