Accueil > > > REPERTOIRE V2
REPERTOIRE V2
Information sur la source
Description
La V 1.0 faisait pitié en fait lol
Interessant pour allouer la memoire dynamiquement
Source
- #include <stdlib.h> //exit
- #include <fstream.h> //fichier ouverture fermeture
- #include <iostream.h> //cout et cin
- #include <string.h> //strcpy copie une chaine meme le caractere nul
- #include "biblio.h"
- #include "classlect.h"
- #include <windows.h>
- #include <stdio.h> // scanf
-
- #define tompon while (cin.get()!='\n');
-
- ////////////Fonction
- void erreur(char *message);
- void saisie();
- void charge();
- void sortir();
- void listefichiers();
- void afficheetoile();
-
-
-
- ////////////Variables
- int max=0;
- int globalbeta =0;
- bool suivifichier = false ;
- char fichier[30]; // nom du fichier
- char extention[]={'.','t','x','t','\0'};
- char* nomfichierglobal = new char(10);
-
-
- Personne lect;
-
- Personne::Personne()
- {
-
- for(int y=0;y<20;y++)
- {
- nom[y] = new char[10];
- prenom[y] = new char[10];
- commentaire[y] = new char[20];
- telephone[y] = new char[20];
- }
- }
-
- Personne::~Personne()
- {
- free(nom);
- free(prenom);
- free(commentaire);
- free(telephone);
-
- }
-
- void main()
- {
- char reponse;
-
- do
- {
- cout<<" ____________Projet Pti-Repertoire-MENU_______________"<<endl;
- cout<<"| |"<<endl;
- cout<<"| "<<"(1) Creer fichier et saisir |"<<endl;
- cout<<"| "<<"(2) Lister |"<<endl;
- cout<<"| "<<"(3) Ajouter |"<<endl;
- cout<<"| "<<"(4) Chercher |"<<endl;
- cout<<"| "<<"(5) Supprimer |"<<endl;
- cout<<"| "<<"(6) Changer de fichier |"<<endl;
- cout<<"| "<<"(7) Lister les fichiers |"<<endl;
- cout<<"| "<<"(8) Quitter le prog |"<<endl;
- cout<<"|_____________________________________________________|"<<endl;
- cout<<"|"<<endl;
- cout<<"|->Repertoire en cours : "<<fichier<<endl;
- cout<<endl;
- cout<<"Entrez votre choix : ";
- cin.get(reponse);
- tompon;
-
- switch (reponse)
- {
- case '1':
- saisie();
- break;
-
- case '2':
- lect.lister();
-
- break;
-
- case '3' :
- lect.ajouter();
-
- break;
-
- case '4' :
- lect.chercher();
- break;
-
- case '5' :
- lect.supr();
- break;
-
-
- case '6' :
- charge();
- break;
-
- case '7' :
- listefichiers();
- break;
-
- case '8' :
- sortir();
- break;
-
- default :
- system("cls");
-
- }
-
- }while(1);
- }
-
-
- void erreur(char *message)
- {
- cout<<"Erreur"<<message;
- exit(-1);
- }
-
-
- void charge()
- {
- suivifichier = false;
- lect.copiefichierdsclasse();
- lect.lister();
- // ifstream charg (fichier);
- // if (fichier==NULL)
- // erreur(" de Personne");
-
- // charg.close();
- }
-
- void saisie()
- {
- system("cls");
-
- if(suivifichier==false)
- {
- cout<<"Saisir le nom du fichier"<<endl;
- cin>>fichier;
- suivifichier = true;
- strcat(fichier,extention);
- }
-
- tompon;
-
-
- ofstream sav=(fichier); //creation de l'objet sav puis ouvre le fichier
-
- if (fichier==NULL)
- erreur(" d'eriture dans le fichier ");
-
- char buffer[50];
- char buffer1[200];
- char putain[4]="non";
- char rep;
- char fin='n';
-
- do
- {
- /*==========================NOM==========================*/
- cout<<"Nom : ";
- cin.getline(buffer,50);
- repertoire.nom=(char**) realloc (repertoire.nom,(max+1)*sizeof(char*));
- repertoire.nom[max]=(char*) malloc (strlen(buffer)+1);
- strcpy(repertoire.nom[max],buffer);
-
-
- /*==========================PRENOM========================*/
- cout<<"Prenom : ";
- cin.getline(buffer,50);
- repertoire.prenom=(char**) realloc (repertoire.prenom,(max+1)*sizeof(char*));
- repertoire.prenom[max]=(char*) malloc (strlen(buffer)+1);
- strcpy(repertoire.prenom[max],buffer);
-
-
- /*==========================PHONE=========================*/
- cout<<"Numero de telephone :";
- cin.getline(buffer,50);
- repertoire.phone=(char**) realloc (repertoire.phone,(max+1)*sizeof(char*));
- repertoire.phone[max]=(char*) malloc (strlen(buffer)+1);
- strcpy(repertoire.phone[max],buffer);
-
-
- /*==========================COMMENTAIRE====================*/
- cout<<"Avez vous des commentaires sur la personne ? o/n : ";
- cin>>rep;
- tompon;
-
- if(rep =='o')
- {
-
- cout<<"Commentaire : ";
-
- cin.getline(buffer1,200);
-
- repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
-
- repertoire.coment[max]=(char*) malloc (strlen(buffer1)+1);
-
-
- strcpy(repertoire.coment[max],buffer1); //copie buffer dans repertoire
-
- }
- else
- if(rep == 'n')
- {
- repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
-
- repertoire.coment[max]=(char*) malloc (5);
- strcpy(repertoire.coment[max],putain);
- }
-
-
-
-
- /*===================TRIER TOUT CE BORDEL=====================*/
- char *pst=NULL;
-
-
- for(int j=max;j>0;j--)
- for(int k=0;k<j;k++)
-
- if(stricmp(repertoire.nom[k],repertoire.nom[k+1]) >0)
- {
- pst=repertoire.nom[k];
- repertoire.nom[k]=repertoire.nom[k+1];
- repertoire.nom[k+1]=pst;
-
- pst=repertoire.prenom[k];
- repertoire.prenom[k]=repertoire.prenom[k+1];
- repertoire.prenom[k+1]=pst;
-
- pst=repertoire.phone[k];
- repertoire.phone[k]=repertoire.phone[k+1];
- repertoire.phone[k+1]=pst;
-
- pst=repertoire.coment[k];
- repertoire.coment[k]=repertoire.coment[k+1];
- repertoire.coment[k+1]=pst;
-
- }
-
- cout<<"Continuer la saisie ? o/n : ";
- cin>>fin;
- tompon;
- max++;
-
-
- }while(fin!='n');
-
- /*====================Rangez ds le dossier=====================*/
- for(int h=0; h<max; h++)
- {
- sav<<repertoire.nom[h]<<",";
- sav<<repertoire.prenom[h]<<",";
- sav<<repertoire.phone[h]<<",";
- sav<<repertoire.coment[h]<<","<<endl;
- }
-
-
-
- sav.close();//fermeture du fichier
-
- if(repertoire.nom!=NULL)
- for(int i=0;i<max;i++)
- free(repertoire.nom[i]);
- free(repertoire.nom);
-
- if(repertoire.prenom!=NULL)
- for(int f=0;f<max;f++)
- free(repertoire.prenom[f]);
- free(repertoire.prenom);
-
- if(repertoire.phone!=NULL)
- for(int g=0;g<max;g++)
- free(repertoire.phone[g]);
- free(repertoire.phone);
-
- if(repertoire.coment!=NULL)
- for(int p=0;p<max;p++)
- free(repertoire.coment[p]);
- free(repertoire.coment);
-
- system("cls");
-
- }
-
- /*====================CHERCHER=====================*/
- void Personne::chercher()
- {
-
- char* a=new char(10);
- int u = 0;
-
- bool trouve = false ;
- int nblignesaute = copiefichierdsclasse();
-
- do{
- u=0;
- cout<<"Tapez le nom de la personne a chercher"<<endl;
- cout<<"Terminez par 0"<<endl;
- cin>>a;
- trouve = false;
- do
- {
-
-
-
- if( strcmp(a,nom[u])==0 )
- {
- trouve = true;
-
- afficheetoile();
-
- cout<<"Nom<"<<" :"<<nom[u]<<endl;
- cout<<"Prenom<"<<" :"<<prenom[u]<<endl;
- cout<<"Telephone<"<<" :"<<telephone[u]<<endl;
- cout<<"Comentaire<"<<" :"<<commentaire[u]<<endl;
-
-
-
- }
- else
- {
- u++;
-
- }
-
- }while((trouve==false) && (u<nblignesaute+1));
-
- if(trouve==false)
- {
- cout<<"La recherche n'a pas ete effectue ou aucun resultat ne reponde a vos criteres."<<endl;
-
- }
-
-
- }while(*a!='0');
- system("cls");
-
- tompon;
-
- }
-
-
- /*====================SORTIR=====================*/
- void sortir()
- {
- cout<<"Salut |:p)"<<endl;
-
-
- printf("A la prochaine |:p)[< \n");
-
- for(int xor=0;xor<30000;xor++)
- {
- Sleep(50/100);
- printf("/\r");
- Sleep(50/100);
- printf("-\r");
- Sleep(50/100);
- printf("|\r");
- printf("-\r");
-
- }
-
- _exit(1);
- }
-
-
- /*====================SUPPRIMER=====================*/
- void Personne::supr()
- {
-
- ecrifichier(copiefichierdsclasse());
-
- tompon;
-
- }
-
-
-
- /*====================ECRIRE DS LE FICHIER=====================*/
- void Personne::ecrifichier(int nbligne)
- {
- int u=0;
- bool trouve = false ;
- char* a=new char(10);
-
- ofstream sav=(fichier);
-
- do{
-
- u=0;
- cout<<"Tapez le nom de la personne a supprimer"<<endl;
- cout<<"Terminez par 0"<<endl;
- cin>>a;
- trouve = false;
-
-
- do
- {
-
-
-
- if( strcmp(a,nom[u])==0 )
- {
- trouve = true;
-
- for(int h=u;h<nbligne+1;h++)
- {
- nom[h]=nom[h+1];
- prenom[h]=prenom[h+1];
- telephone[h]=telephone[h+1];
- commentaire[h]=commentaire[h+1];
- }
-
- for(int q=0; q<nbligne-1; q++)
- {
- sav<<nom[q]<<",";
- sav<<prenom[q]<<",";
- sav<<telephone[q]<<",";
- sav<<commentaire[q]<<","<<endl;
- }
-
- sav.close();
-
- }
- else
- {
- u++;
-
- }
-
-
-
- }while((trouve==false) && (u<nbligne+1));
-
-
- }while(*a!='0');
-
- cout<<"Suppression reussie"<<endl;
-
- }
-
-
- /*====================Ajouter=====================*/
- void Personne::ajouter()
- {
- system("cls");
- int beta=copiefichierdsclasse();
-
- char reponse ='o';
-
-
- while(reponse=='o')
- {
- cout<<"Saisir nom"<<endl;
- cin>>nom[beta];
-
- cout<<"Saisir prenom"<<endl;
- cin>>prenom[beta];
-
- cout<<"Saisir telephone"<<endl;
- cin>>telephone[beta];
-
- cout<<"Saisir commentaire"<<endl;
- gets(commentaire[beta]); //grace a gets on gere les espace
- //car l'espace est considere commme
- //un caraceter de remplissage
- //par cin
-
-
-
- globalbeta=beta++;
- globalbeta++;
- tompon;
- cout<<"Voulez vous ajouter une autre personne ?"<<endl;
- cin>>reponse;
-
- }
-
- triage(beta);
-
- //tompon;
- }
-
-
- /*====================trier=====================*/
- void Personne::triage(int maxnb)
- {
-
- char *pst=NULL;
-
- for(int j=maxnb+1;j>0;j--)
- {
- for(int k=0;k<j;k++)
- {
-
- if(stricmp(nom[k],nom[k+1])>0)
- {
- pst=nom[k];
- nom[k]=nom[k+1];
- nom[k+1]=pst;
-
- pst=prenom[k];
- prenom[k]=prenom[k+1];
- prenom[k+1]=pst;
-
- pst=telephone[k];
- telephone[k]=telephone[k+1];
- telephone[k+1]=pst;
-
- pst=commentaire[k];
- commentaire[k]=commentaire[k+1];
- commentaire[k+1]=pst;
-
- }
- }
- }
-
- recopier(fichier);
- system("cls");
- tompon;
- }
-
-
- /*====================copie le fichier ds la classe=====================*/
- int Personne::copiefichierdsclasse()
- {
- // system("cls");
-
- char ch;
- char *tabfichier = (char*) malloc(1*sizeof(char));
- char tm2nom[50];
- char tmprenom[50];
- char tmtel[50];
- char tmcomt[50];
-
-
- int i = 0 ;
- int j = 0 ;
- int f = 0 ;
- int d = 0 ;
- int nbdebut = 0;
- int arepartir = 0;
- int nbvirgule = 0;
- int e =0;
- int u = 0;
- int beta=0;
- int alfa = 0;
- int contevir = 0;
- int nblignesaute =0;
-
-
- if(suivifichier == false)
- {
- cout<<"Quel fichier voulez ouvrir?"<<endl;
- cout<<"Fichier :";
- cin>>fichier;
- cout<<endl;
- suivifichier = true;
- strcat(fichier,extention);
- }
-
-
-
- nomfichierglobal = fichier;
-
- ifstream list (fichier);
-
-
- while( list.get(ch) )
- {
- *(tabfichier+d)=ch;
- d++;
- j++;
- tabfichier = (char*) realloc(tabfichier,d+1*sizeof(char));
- }
-
- tabfichier[d]='\0';
-
-
- list.close();
-
- for(i=0;i<j;i++)
- {
-
- if(tabfichier[i]==',')
- {
-
- contevir++;
-
-
- arepartir = i - nbvirgule;
-
-
- nbvirgule = i;
-
-
- nbdebut = i - arepartir;
-
-
- for(f=nbdebut;f<i;f++)
- {
-
- if(tabfichier[f]==',')
- {
- f++;
-
- }
-
- if(tabfichier[f]=='\n')
- {
-
- f++;
- nblignesaute++;
- }
-
-
- if(contevir==1 && tabfichier[f]!=',' && tabfichier[f]!='\n')
- {
-
- if(f==i-1)
- {
- tm2nom[e]=tabfichier[f];
- tm2nom[e+1]='\0';
-
- }else
- tm2nom[e]=tabfichier[f];
-
-
- }else
- if(contevir==2 && tabfichier[f]!=',' && tabfichier[f]!='\n')
- {
- if(f==i-1)
- {
- tmprenom[e]=tabfichier[f];
- tmprenom[e+1]='\0';
- }else
-
- tmprenom[e]=tabfichier[f];
-
- }else
- if(contevir==3 && tabfichier[f]!=',' && tabfichier[f]!='\n')
- {
-
- if(f==i-1)
- {
- tmtel[e]=tabfichier[f];
- tmtel[e+1]='\0';
- }else
-
- tmtel[e]=tabfichier[f];
-
-
- }else
- if(contevir==4 && tabfichier[f]!=',' && tabfichier[f]!='\n')
- {
- if(f==i-1)
- {
- tmcomt[e]=tabfichier[f];
- tmcomt[e+1]='\0';
- }else
-
- tmcomt[e]=tabfichier[f];
-
- }
-
- e++;
-
- }
-
-
- switch(contevir)
- {
- case 1:
- strcpy(nom[beta],*(&tm2nom));
- e=0;
- break;
-
- case 2:
- strcpy(prenom[beta],*(&tmprenom));
- e=0;
- break;
-
- case 3 :
- strcpy(telephone[beta],*(&tmtel));
- e=0;
- break;
-
- case 4 :
- strcpy(commentaire[beta],*(&tmcomt));
- e=0;
- beta++;
- contevir=0;
- break;
-
- }
-
- for(alfa=0;alfa<49;alfa++){
- tm2nom[alfa]=' ';
- tmprenom[alfa]=' ';
- tmtel[alfa]=' ';
- tmcomt[alfa]=' ';}
-
-
-
- }
-
-
- }
-
- free(tabfichier);
- return beta;
-
- }
-
-
-
- void Personne::recopier(char* fichier)
- {
-
- ofstream sav=(fichier);
-
-
- for(int q=0; q<globalbeta; q++)
- {
- sav<<nom[q]<<",";
- sav<<prenom[q]<<",";
- sav<<telephone[q]<<",";
- sav<<commentaire[q]<<","<<endl;
- }
-
-
- sav.close();
- }
-
-
- /*===================LISTER LE CONTENU DU FICHIER=====================*/
- void Personne::lister()
- {
-
- system("cls");
- int d =0;
- int verif = 0;
-
-
-
- d = copiefichierdsclasse();
-
- for(int i=0;i<d;i++)
- {
- cout<<"Nom : "<<nom[i]<<endl;
- cout<<"Prenom : "<<prenom[i]<<endl;
- cout<<"Telephone : "<<telephone[i]<<endl;
- cout<<"Commentaire : "<<commentaire[i]<<endl;
- cout<<endl;
- }
- tompon;
- tompon;
-
- system("cls");
- }
-
-
-
- /*===================LISTER LES FICHIERS=====================*/
- void listefichiers()
- {
-
- HANDLE hdlfff;
- LPCTSTR dir = "*.txt";
- WIN32_FIND_DATA IpFindFileData;
- hdlfff = FindFirstFile(dir,&IpFindFileData);
- cout<<IpFindFileData.cFileName<<"\n";
- while (FindNextFile(hdlfff,&IpFindFileData)) {
- cout<<IpFindFileData.cFileName<<"\n";}
-
- tompon;
- system("cls");
-
- FindClose(hdlfff);
- }
-
-
- /*===================L4ETOILE=====================*/
- void afficheetoile()
- {
- for(int xor=0;xor<20000;xor++)
- {
- Sleep(50/100);
- printf("/\r");
- Sleep(50/100);
- printf("-\r");
- Sleep(50/100);
- printf("|\r");
- printf("-\r");
-
- }
- }
-
-
-
-
-
-
-
-
#include <stdlib.h> //exit
#include <fstream.h> //fichier ouverture fermeture
#include <iostream.h> //cout et cin
#include <string.h> //strcpy copie une chaine meme le caractere nul
#include "biblio.h"
#include "classlect.h"
#include <windows.h>
#include <stdio.h> // scanf
#define tompon while (cin.get()!='\n');
////////////Fonction
void erreur(char *message);
void saisie();
void charge();
void sortir();
void listefichiers();
void afficheetoile();
////////////Variables
int max=0;
int globalbeta =0;
bool suivifichier = false ;
char fichier[30]; // nom du fichier
char extention[]={'.','t','x','t','\0'};
char* nomfichierglobal = new char(10);
Personne lect;
Personne::Personne()
{
for(int y=0;y<20;y++)
{
nom[y] = new char[10];
prenom[y] = new char[10];
commentaire[y] = new char[20];
telephone[y] = new char[20];
}
}
Personne::~Personne()
{
free(nom);
free(prenom);
free(commentaire);
free(telephone);
}
void main()
{
char reponse;
do
{
cout<<" ____________Projet Pti-Repertoire-MENU_______________"<<endl;
cout<<"| |"<<endl;
cout<<"| "<<"(1) Creer fichier et saisir |"<<endl;
cout<<"| "<<"(2) Lister |"<<endl;
cout<<"| "<<"(3) Ajouter |"<<endl;
cout<<"| "<<"(4) Chercher |"<<endl;
cout<<"| "<<"(5) Supprimer |"<<endl;
cout<<"| "<<"(6) Changer de fichier |"<<endl;
cout<<"| "<<"(7) Lister les fichiers |"<<endl;
cout<<"| "<<"(8) Quitter le prog |"<<endl;
cout<<"|_____________________________________________________|"<<endl;
cout<<"|"<<endl;
cout<<"|->Repertoire en cours : "<<fichier<<endl;
cout<<endl;
cout<<"Entrez votre choix : ";
cin.get(reponse);
tompon;
switch (reponse)
{
case '1':
saisie();
break;
case '2':
lect.lister();
break;
case '3' :
lect.ajouter();
break;
case '4' :
lect.chercher();
break;
case '5' :
lect.supr();
break;
case '6' :
charge();
break;
case '7' :
listefichiers();
break;
case '8' :
sortir();
break;
default :
system("cls");
}
}while(1);
}
void erreur(char *message)
{
cout<<"Erreur"<<message;
exit(-1);
}
void charge()
{
suivifichier = false;
lect.copiefichierdsclasse();
lect.lister();
// ifstream charg (fichier);
// if (fichier==NULL)
// erreur(" de Personne");
// charg.close();
}
void saisie()
{
system("cls");
if(suivifichier==false)
{
cout<<"Saisir le nom du fichier"<<endl;
cin>>fichier;
suivifichier = true;
strcat(fichier,extention);
}
tompon;
ofstream sav=(fichier); //creation de l'objet sav puis ouvre le fichier
if (fichier==NULL)
erreur(" d'eriture dans le fichier ");
char buffer[50];
char buffer1[200];
char putain[4]="non";
char rep;
char fin='n';
do
{
/*==========================NOM==========================*/
cout<<"Nom : ";
cin.getline(buffer,50);
repertoire.nom=(char**) realloc (repertoire.nom,(max+1)*sizeof(char*));
repertoire.nom[max]=(char*) malloc (strlen(buffer)+1);
strcpy(repertoire.nom[max],buffer);
/*==========================PRENOM========================*/
cout<<"Prenom : ";
cin.getline(buffer,50);
repertoire.prenom=(char**) realloc (repertoire.prenom,(max+1)*sizeof(char*));
repertoire.prenom[max]=(char*) malloc (strlen(buffer)+1);
strcpy(repertoire.prenom[max],buffer);
/*==========================PHONE=========================*/
cout<<"Numero de telephone :";
cin.getline(buffer,50);
repertoire.phone=(char**) realloc (repertoire.phone,(max+1)*sizeof(char*));
repertoire.phone[max]=(char*) malloc (strlen(buffer)+1);
strcpy(repertoire.phone[max],buffer);
/*==========================COMMENTAIRE====================*/
cout<<"Avez vous des commentaires sur la personne ? o/n : ";
cin>>rep;
tompon;
if(rep =='o')
{
cout<<"Commentaire : ";
cin.getline(buffer1,200);
repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
repertoire.coment[max]=(char*) malloc (strlen(buffer1)+1);
strcpy(repertoire.coment[max],buffer1); //copie buffer dans repertoire
}
else
if(rep == 'n')
{
repertoire.coment=(char**) realloc (repertoire.coment,(max+1)*sizeof(char*));
repertoire.coment[max]=(char*) malloc (5);
strcpy(repertoire.coment[max],putain);
}
/*===================TRIER TOUT CE BORDEL=====================*/
char *pst=NULL;
for(int j=max;j>0;j--)
for(int k=0;k<j;k++)
if(stricmp(repertoire.nom[k],repertoire.nom[k+1]) >0)
{
pst=repertoire.nom[k];
repertoire.nom[k]=repertoire.nom[k+1];
repertoire.nom[k+1]=pst;
pst=repertoire.prenom[k];
repertoire.prenom[k]=repertoire.prenom[k+1];
repertoire.prenom[k+1]=pst;
pst=repertoire.phone[k];
repertoire.phone[k]=repertoire.phone[k+1];
repertoire.phone[k+1]=pst;
pst=repertoire.coment[k];
repertoire.coment[k]=repertoire.coment[k+1];
repertoire.coment[k+1]=pst;
}
cout<<"Continuer la saisie ? o/n : ";
cin>>fin;
tompon;
max++;
}while(fin!='n');
/*====================Rangez ds le dossier=====================*/
for(int h=0; h<max; h++)
{
sav<<repertoire.nom[h]<<",";
sav<<repertoire.prenom[h]<<",";
sav<<repertoire.phone[h]<<",";
sav<<repertoire.coment[h]<<","<<endl;
}
sav.close();//fermeture du fichier
if(repertoire.nom!=NULL)
for(int i=0;i<max;i++)
free(repertoire.nom[i]);
free(repertoire.nom);
if(repertoire.prenom!=NULL)
for(int f=0;f<max;f++)
free(repertoire.prenom[f]);
free(repertoire.prenom);
if(repertoire.phone!=NULL)
for(int g=0;g<max;g++)
free(repertoire.phone[g]);
free(repertoire.phone);
if(repertoire.coment!=NULL)
for(int p=0;p<max;p++)
free(repertoire.coment[p]);
free(repertoire.coment);
system("cls");
}
/*====================CHERCHER=====================*/
void Personne::chercher()
{
char* a=new char(10);
int u = 0;
bool trouve = false ;
int nblignesaute = copiefichierdsclasse();
do{
u=0;
cout<<"Tapez le nom de la personne a chercher"<<endl;
cout<<"Terminez par 0"<<endl;
cin>>a;
trouve = false;
do
{
if( strcmp(a,nom[u])==0 )
{
trouve = true;
afficheetoile();
cout<<"Nom<"<<" :"<<nom[u]<<endl;
cout<<"Prenom<"<<" :"<<prenom[u]<<endl;
cout<<"Telephone<"<<" :"<<telephone[u]<<endl;
cout<<"Comentaire<"<<" :"<<commentaire[u]<<endl;
}
else
{
u++;
}
}while((trouve==false) && (u<nblignesaute+1));
if(trouve==false)
{
cout<<"La recherche n'a pas ete effectue ou aucun resultat ne reponde a vos criteres."<<endl;
}
}while(*a!='0');
system("cls");
tompon;
}
/*====================SORTIR=====================*/
void sortir()
{
cout<<"Salut |:p)"<<endl;
printf("A la prochaine |:p)[< \n");
for(int xor=0;xor<30000;xor++)
{
Sleep(50/100);
printf("/\r");
Sleep(50/100);
printf("-\r");
Sleep(50/100);
printf("|\r");
printf("-\r");
}
_exit(1);
}
/*====================SUPPRIMER=====================*/
void Personne::supr()
{
ecrifichier(copiefichierdsclasse());
tompon;
}
/*====================ECRIRE DS LE FICHIER=====================*/
void Personne::ecrifichier(int nbligne)
{
int u=0;
bool trouve = false ;
char* a=new char(10);
ofstream sav=(fichier);
do{
u=0;
cout<<"Tapez le nom de la personne a supprimer"<<endl;
cout<<"Terminez par 0"<<endl;
cin>>a;
trouve = false;
do
{
if( strcmp(a,nom[u])==0 )
{
trouve = true;
for(int h=u;h<nbligne+1;h++)
{
nom[h]=nom[h+1];
prenom[h]=prenom[h+1];
telephone[h]=telephone[h+1];
commentaire[h]=commentaire[h+1];
}
for(int q=0; q<nbligne-1; q++)
{
sav<<nom[q]<<",";
sav<<prenom[q]<<",";
sav<<telephone[q]<<",";
sav<<commentaire[q]<<","<<endl;
}
sav.close();
}
else
{
u++;
}
}while((trouve==false) && (u<nbligne+1));
}while(*a!='0');
cout<<"Suppression reussie"<<endl;
}
/*====================Ajouter=====================*/
void Personne::ajouter()
{
system("cls");
int beta=copiefichierdsclasse();
char reponse ='o';
while(reponse=='o')
{
cout<<"Saisir nom"<<endl;
cin>>nom[beta];
cout<<"Saisir prenom"<<endl;
cin>>prenom[beta];
cout<<"Saisir telephone"<<endl;
cin>>telephone[beta];
cout<<"Saisir commentaire"<<endl;
gets(commentaire[beta]); //grace a gets on gere les espace
//car l'espace est considere commme
//un caraceter de remplissage
//par cin
globalbeta=beta++;
globalbeta++;
tompon;
cout<<"Voulez vous ajouter une autre personne ?"<<endl;
cin>>reponse;
}
triage(beta);
//tompon;
}
/*====================trier=====================*/
void Personne::triage(int maxnb)
{
char *pst=NULL;
for(int j=maxnb+1;j>0;j--)
{
for(int k=0;k<j;k++)
{
if(stricmp(nom[k],nom[k+1])>0)
{
pst=nom[k];
nom[k]=nom[k+1];
nom[k+1]=pst;
pst=prenom[k];
prenom[k]=prenom[k+1];
prenom[k+1]=pst;
pst=telephone[k];
telephone[k]=telephone[k+1];
telephone[k+1]=pst;
pst=commentaire[k];
commentaire[k]=commentaire[k+1];
commentaire[k+1]=pst;
}
}
}
recopier(fichier);
system("cls");
tompon;
}
/*====================copie le fichier ds la classe=====================*/
int Personne::copiefichierdsclasse()
{
// system("cls");
char ch;
char *tabfichier = (char*) malloc(1*sizeof(char));
char tm2nom[50];
char tmprenom[50];
char tmtel[50];
char tmcomt[50];
int i = 0 ;
int j = 0 ;
int f = 0 ;
int d = 0 ;
int nbdebut = 0;
int arepartir = 0;
int nbvirgule = 0;
int e =0;
int u = 0;
int beta=0;
int alfa = 0;
int contevir = 0;
int nblignesaute =0;
if(suivifichier == false)
{
cout<<"Quel fichier voulez ouvrir?"<<endl;
cout<<"Fichier :";
cin>>fichier;
cout<<endl;
suivifichier = true;
strcat(fichier,extention);
}
nomfichierglobal = fichier;
ifstream list (fichier);
while( list.get(ch) )
{
*(tabfichier+d)=ch;
d++;
j++;
tabfichier = (char*) realloc(tabfichier,d+1*sizeof(char));
}
tabfichier[d]='\0';
list.close();
for(i=0;i<j;i++)
{
if(tabfichier[i]==',')
{
contevir++;
arepartir = i - nbvirgule;
nbvirgule = i;
nbdebut = i - arepartir;
for(f=nbdebut;f<i;f++)
{
if(tabfichier[f]==',')
{
f++;
}
if(tabfichier[f]=='\n')
{
f++;
nblignesaute++;
}
if(contevir==1 && tabfichier[f]!=',' && tabfichier[f]!='\n')
{
if(f==i-1)
{
tm2nom[e]=tabfichier[f];
tm2nom[e+1]='\0';
}else
tm2nom[e]=tabfichier[f];
}else
if(contevir==2 && tabfichier[f]!=',' && tabfichier[f]!='\n')
{
if(f==i-1)
{
tmprenom[e]=tabfichier[f];
tmprenom[e+1]='\0';
}else
tmprenom[e]=tabfichier[f];
}else
if(contevir==3 && tabfichier[f]!=',' && tabfichier[f]!='\n')
{
if(f==i-1)
{
tmtel[e]=tabfichier[f];
tmtel[e+1]='\0';
}else
tmtel[e]=tabfichier[f];
}else
if(contevir==4 && tabfichier[f]!=',' && tabfichier[f]!='\n')
{
if(f==i-1)
{
tmcomt[e]=tabfichier[f];
tmcomt[e+1]='\0';
}else
tmcomt[e]=tabfichier[f];
}
e++;
}
switch(contevir)
{
case 1:
strcpy(nom[beta],*(&tm2nom));
e=0;
break;
case 2:
strcpy(prenom[beta],*(&tmprenom));
e=0;
break;
case 3 :
strcpy(telephone[beta],*(&tmtel));
e=0;
break;
case 4 :
strcpy(commentaire[beta],*(&tmcomt));
e=0;
beta++;
contevir=0;
break;
}
for(alfa=0;alfa<49;alfa++){
tm2nom[alfa]=' ';
tmprenom[alfa]=' ';
tmtel[alfa]=' ';
tmcomt[alfa]=' ';}
}
}
free(tabfichier);
return beta;
}
void Personne::recopier(char* fichier)
{
ofstream sav=(fichier);
for(int q=0; q<globalbeta; q++)
{
sav<<nom[q]<<",";
sav<<prenom[q]<<",";
sav<<telephone[q]<<",";
sav<<commentaire[q]<<","<<endl;
}
sav.close();
}
/*===================LISTER LE CONTENU DU FICHIER=====================*/
void Personne::lister()
{
system("cls");
int d =0;
int verif = 0;
d = copiefichierdsclasse();
for(int i=0;i<d;i++)
{
cout<<"Nom : "<<nom[i]<<endl;
cout<<"Prenom : "<<prenom[i]<<endl;
cout<<"Telephone : "<<telephone[i]<<endl;
cout<<"Commentaire : "<<commentaire[i]<<endl;
cout<<endl;
}
tompon;
tompon;
system("cls");
}
/*===================LISTER LES FICHIERS=====================*/
void listefichiers()
{
HANDLE hdlfff;
LPCTSTR dir = "*.txt";
WIN32_FIND_DATA IpFindFileData;
hdlfff = FindFirstFile(dir,&IpFindFileData);
cout<<IpFindFileData.cFileName<<"\n";
while (FindNextFile(hdlfff,&IpFindFileData)) {
cout<<IpFindFileData.cFileName<<"\n";}
tompon;
system("cls");
FindClose(hdlfff);
}
/*===================L4ETOILE=====================*/
void afficheetoile()
{
for(int xor=0;xor<20000;xor++)
{
Sleep(50/100);
printf("/\r");
Sleep(50/100);
printf("-\r");
Sleep(50/100);
printf("|\r");
printf("-\r");
}
}
Conclusion
Ici se trouve le code principal . Dans le zip le reste ...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|