begin process at 2012 05 27 13:35:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > ANNUAIRE 1.0

ANNUAIRE 1.0


 Information sur la source

Note :
Aucune note
Catégorie :Application Classé sous :Annuaire, Agenda, Contacts Niveau :Débutant Date de création :27/01/2009 Vu / téléchargé :2 208 / 218

Auteur : zal3a

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
  Annuaire 1.0 a été créé par :                    
   - zal3a ( majdiesprit@hotmail.fr )              
   - nadfrslw ( nadfrslw@hotmail.fr )              
   Etudiants à ESPRIT, tunisie    2008/2009        
                                                  
Ceci est notre première application en C        
et ça a été pour un projet en C.                
On espère encore avancer dans la programmation  
Toutes vos remarques sont les bienvenues.        
A bientot pour notre prochaine création ...  ;)  
                                                  
                                        Zal3a    

Source

  • //***************************************************
  • // Annuaire 1.0 *
  • //***************************************************
  • // *
  • // Annuaire 1.0 a été créé par : *
  • // - zal3a ( majdiesprit@hotmail.fr ) *
  • // - nadfrslw ( nadfrslw@hotmail.fr ) *
  • // Etudiants à ESPRIT, tunisie 2008/2009 *
  • // *
  • // Ceci est notre première application en C *
  • // et ça a été pour un projet en C. *
  • // On espère encore avancer dans la programmation *
  • // Toutes vos remarques sont les bienvenues. *
  • // A bientot pour notre prochaine création ... ;) *
  • // *
  • // Zal3a *
  • // *
  • //***************************************************
  • // Remarques : *
  • //***************************************************
  • // *
  • // Annuaire 1.0 a été créé en langage C *
  • // Il nécessite quelques modifications afin de *
  • // l'améliorer, malheureusement par manque *
  • // de temps et vu les circonstances ( fin du délai *
  • // du projet ) ... *
  • // *
  • // On peut citer par exemple : *
  • // - Modification de la fonction d'identification *
  • // pour ne plus avoir à copier le fichier *
  • // "Sessions.txt" sur c:\\ *
  • // *
  • // - L'ajout d'un controle sur les saisis pour *
  • // éviter tout disfonctionnement *
  • // *
  • // - L'ajout d'une interface graphique *
  • // *
  • //***************************************************
  • //**********************************
  • // Déclaration des Bibliothèques *
  • //**********************************
  • #include <stdio.h>
  • #include <conio.h>
  • #include <string.h>
  • #include <stdlib.h>
  • //****************************************
  • // Déclaration des Fonctions utilisées *
  • //****************************************
  • void Reset(void);
  • void Menu(void);
  • int Menu_admin(void);
  • int Menu_user(void);
  • int Nb_Contacts(void);
  • void Affiche_Session(void);
  • void Affiche_Session1(void);
  • void Modifier_Session(void);
  • void Modifier_Session1(void);
  • int Login(void);
  • void Config_admin(void);
  • void Config_user(void);
  • void Supprimer(void);
  • int Modif_Champ(void);
  • void Modifier(void);
  • void Ajouter(void);
  • void Afficher(void);
  • void Rechercher(void);
  • void Quitter(void);
  • //***************************************************************************
  • //** Déclaration de la Structure contenant les informations d'un contact *
  • //***************************************************************************
  • struct Fiche
  • {
  • char nom[30];
  • char prenom[30];
  • char mail[30];
  • char adresse[100];
  • char num_dom[15];
  • char num_travail[15];
  • char num_fax[15];
  • char num_portable1[15];
  • char num_portable2[15];
  • char ville[10];
  • int groupe;
  • };
  • //*****************************************************************************
  • //** Déclaration de la Structure contenant les comptes d'accés du programme *
  • //*****************************************************************************
  • struct Session
  • {
  • char login[10];
  • char password[10];
  • char login1[10];
  • char password1[10];
  • };
  • //********************************************
  • //** Fonction qui réinitialise le fichier *
  • //********************************************
  • void Reset(void)
  • {
  • char chemin[]="C:\\liste.txt";
  • remove(chemin);
  • printf("\n\nFichier reinitialise ...");
  • getch();
  • }
  • //*************************************************************
  • //** Fonction qui permet l'affichage du menu Administrateur *
  • //*************************************************************
  • int Menu_admin(void)
  • {
  • int choix;
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu Accueil \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Ajouter un nouveau contact");
  • printf("\n[2] Rechercher un contact");
  • printf("\n[3] Lister les contacts ");
  • printf("\n[4] Modifier un contact");
  • printf("\n[5] Supprimer un contact");
  • printf("\n[6] Acceder au panneau de configuration de Annuaire 1.0");
  • printf("\n\n[0] Quitter le programme");
  • printf("\n\nVeuillez indiquer votre choix : ");
  • scanf("%d",&choix);
  • return choix;
  • }
  • //*************************************************************
  • //** Fonction qui permet l'affichage du menu Utilisateur *
  • //*************************************************************
  • int Menu_user(void)
  • {
  • int choix;
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu Accueil \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Rechercher un contact");
  • printf("\n[2] Lister les contacts ");
  • printf("\n\n[3] Acceder au panneau de configuration de Annuaire 1.0");
  • printf("\n\n[0] Quitter le programme");
  • printf("\n\nVeuillez indiquer votre choix : ");
  • scanf("%d",&choix);
  • return choix;
  • }
  • //****************************************************************
  • //** Fonction qui affiche le nombre de contacts sur le fichier *
  • //****************************************************************
  • int Nb_Contacts(void)
  • {
  • int i=0;
  • char chemin[]="C:\\liste.txt";
  • struct Fiche F;
  • FILE *f;
  • f=fopen(chemin,"rb");
  • if(f==NULL)
  • {
  • printf("\n\n Le fichier %s est introuvable ...",chemin);
  • }
  • else
  • {
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • i++;
  • }
  • }
  • fclose(f);
  • return i;
  • }
  • //**************************************************************
  • // Fonction qui permet d'afficher le compte Administrateur *
  • //**************************************************************
  • void Affiche_Session(void)
  • {
  • struct Session S;
  • FILE *h;
  • char chemin[]="c:\\Sessions.txt";
  • h=fopen(chemin,"rb");
  • if(h==NULL)
  • {
  • printf("\n\n Le fichier %s est introuvable ...",chemin);
  • }
  • else
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Compte d'acces \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • while(fread(&S,sizeof(struct Session),1,h)!=0)
  • {
  • printf("\n\nLogin Administrateur : %s",S.login);
  • printf("\nMot de passe Administrateur : %s",S.password);
  • getch();
  • }
  • }
  • fclose(h);
  • }
  • //**************************************************************
  • // Fonction qui permet d'afficher le compte Utilisateur *
  • //**************************************************************
  • void Affiche_Session1(void)
  • {
  • struct Session S;
  • FILE *h;
  • char chemin[]="c:\\Sessions.txt";
  • h=fopen(chemin,"rb");
  • if(h==NULL)
  • {
  • printf("\n\n Le fichier %s est introuvable ...",chemin);
  • }
  • else
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Compte d'acces \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • while(fread(&S,sizeof(struct Session),1,h)!=0)
  • {
  • printf("\n\nLogin Utilisateur : %s",S.login1);
  • printf("\nMot de passe Utilisateur : %s",S.password1);
  • getch();
  • }
  • }
  • fclose(h);
  • }
  • //***************************************************************
  • //** Fonction qui permet de modifier le compte Administrateur *
  • //***************************************************************
  • void Modifier_Session(void)
  • {
  • struct Session S;
  • FILE *h;
  • FILE *g;
  • char chemin[]="c:\\Sessions.txt";
  • char chemin1[]="c:\\temp_sessions.txt";
  • h=fopen(chemin,"rb");
  • g=fopen(chemin1,"wb");
  • if(h==NULL)
  • {
  • printf("\n\n Le fichier %s est introuvable ...",chemin);
  • }
  • else
  • {
  • if(g==NULL)
  • {
  • printf("\n\n Impossible d'ouvrir le fichier %s",chemin1);
  • }
  • else
  • {
  • while(fread(&S,sizeof(struct Session),1,h)!=0)
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Compte d'acces \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • fflush(stdin);
  • printf("\n\nVeuillez saisir le nouveau Login Administrateur : ");
  • gets(S.login);
  • fflush(stdin);
  • printf("\nVeuillez saisir le nouveau Mot de Passe Administrateur : ");
  • gets(S.password);
  • fwrite(&S,sizeof(struct Session),1,g);
  • }
  • }
  • }
  • fclose(h);
  • remove(chemin);
  • fclose(g);
  • rename(chemin1,chemin);
  • }
  • //***************************************************************
  • //** Fonction qui permet de modifier le compte Utilisateur *
  • //***************************************************************
  • void Modifier_Session1(void)
  • {
  • struct Session S;
  • FILE *h;
  • FILE *g;
  • char chemin[]="c:\\Sessions.txt";
  • char chemin1[]="c:\\temp_sessions.txt";
  • h=fopen(chemin,"rb");
  • g=fopen(chemin1,"wb");
  • if(h==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • if(g==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin1);
  • }
  • else
  • {
  • while(fread(&S,sizeof(struct Session),1,h)!=0)
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Compte d'acces \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • fflush(stdin);
  • printf("\n\nVeuillez saisir le nouveau Login Utilisateur : ");
  • gets(S.login1);
  • fflush(stdin);
  • printf("\nVeuillez saisir le nouveau Mot de Passe Utilisateur : ");
  • gets(S.password1);
  • fwrite(&S,sizeof(struct Session),1,g);
  • }
  • }
  • }
  • fclose(h);
  • remove(chemin);
  • fclose(g);
  • rename(chemin1,chemin);
  • }
  • //***********************************************************
  • //** Fonction qui permet l'identification de l'utilisateur *
  • //***********************************************************
  • int Login(void)
  • {
  • int s;
  • FILE *h;
  • char log_in[10];
  • char pass[10];
  • struct Session S;
  • char chemin[]="c:\\Sessions.txt";
  • printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
  • printf("º Annee Universitaire 2008 / 2009 º");
  • printf("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹");
  • printf("º *** *** **** * * ***** ***** º");
  • printf("º * * * * * * * * * * º");
  • printf("º * * * * * ** * * * º");
  • printf("º * * * **** * * * *** * º");
  • printf("º * ***** * * * ** * * º");
  • printf("º * * * * * * * * * * º");
  • printf("º *** * * * * * * ***** * º");
  • printf("º º");
  • printf("º **** ** *** **** **** ***** *** *** ***** º");
  • printf("º * * ** * * * * * * * * * * * * º");
  • printf("º * * * * * * * * * ** ** * º");
  • printf("º * * * * * * **** *** ** ** *** º");
  • printf("º * * ***** * * * * * ** ** * º");
  • printf("º * * * * * * * * * * * * * * º");
  • printf("º **** * * **** * * ***** *** *** ***** º");
  • printf("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹");
  • printf("º Cree par : º");
  • printf("º * Zal3a majdiesprit@hotmail.fr ESPRIT º");
  • printf("º * Nadfrslw nadfrslw@hotmail.fr Tunisie º");
  • printf("º º");
  • printf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ&#188;");
  • system("pause");
  • clrscr();
  • h=fopen(chemin,"rb");
  • if(h==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • while(fread(&S,sizeof(struct Session),1,h)!=0)
  • {
  • printf("\n\tSoyez le(la) bienvenu(e) \x85 notre Annuaire 1.0 .");
  • printf("\n\tCe programme a ete cree par zal3a et nadfrslw.\n");
  • printf("\n\n\n\tVeuillez vous identifier ...\n");
  • do
  • {
  • printf("\tEntrez un login valide : ");
  • gets(log_in);
  • } while ((strcmp(log_in,S.login1)!=0)&&(strcmp(log_in,S.login)!=0));
  • printf("\n");
  • if(strcmp(log_in,S.login)==0)
  • {
  • do
  • {
  • printf("\tEntrez un mot de passe valide : ");
  • gets(pass);
  • } while (strcmp(pass,S.password)!=0);
  • printf("\n\tIdentification reussie ...");
  • printf("\n\tAppuyez sur Entree pour acceder au menu d'acceuil ...");
  • s=1;
  • getch();
  • clrscr();
  • }
  • else
  • {
  • do
  • {
  • printf("\tEntrez un mot de passe valide : ");
  • gets(pass);
  • } while (strcmp(pass,S.password1)!=0);
  • printf("\n\tIdentification reussie ...");
  • printf("\n\tAppuyez sur Entree pour acceder au menu d'acceuil ...");
  • s=2;
  • getch();
  • clrscr();
  • }
  • }
  • }
  • fclose(h);
  • return s;
  • }
  • //*************************************************************************************
  • //** Fonction qui permet l'affichage du panneau de configuration de l'administrateur *
  • //*************************************************************************************
  • void Config_admin(void)
  • {
  • int choix;
  • clrscr();
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Panneau de Configuration \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Afficher le login et mot de passe [ Administrateur ]");
  • printf("\n[2] Afficher le login et mot de passe [ Utilisateur ]");
  • printf("\n\n[3] Modifier le login et mot de passe [ Administrateur ]");
  • printf("\n[4] Modifier le login et mot de passe [ Utilisateur ]");
  • printf("\n\n[5] Afficher le nombre de contacts");
  • printf("\n[6] Changer de Session");
  • printf("\n[7] Reinitialiser le fichier");
  • printf("\n\n[0] Retourner au menu principal");
  • printf("\n\nVeuillez indiquer votre choix : ");
  • scanf("%d",&choix);
  • switch(choix)
  • {
  • case 1:
  • clrscr();
  • Affiche_Session();
  • break;
  • case 2:
  • clrscr();
  • Affiche_Session1();
  • break;
  • case 3:
  • clrscr();
  • Modifier_Session();
  • break;
  • case 4:
  • clrscr();
  • Modifier_Session1();
  • break;
  • case 5:
  • clrscr();
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Nombres de Contacts \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n\nLe nombre de contacts est de %d ",Nb_Contacts());
  • getch();
  • break;
  • case 6:
  • clrscr();
  • Menu();
  • break;
  • case 7:
  • clrscr();
  • Reset();
  • break;
  • case 0:
  • clrscr();
  • Menu_admin();
  • break;
  • }
  • }
  • //**************************************************************************************
  • //** Fonction qui permet l'affichage du panneau de configuration de l'utilisateur *
  • //**************************************************************************************
  • void Config_user(void)
  • {
  • int choix;
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Panneau de Configuration \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Passer a la session Administrateur");
  • printf("\n\n[0] Retourner au menu principal");
  • printf("\n\nVeuillez indiquer votre choix : ");
  • scanf("%d",&choix);
  • switch(choix)
  • {
  • case 1:
  • clrscr();
  • Menu();
  • break;
  • case 0:
  • clrscr();
  • Menu_user();
  • break;
  • }
  • }
  • //**************************************************
  • //** Fonction qui permet de supprimer un contact *
  • //**************************************************
  • void Supprimer(void)
  • {
  • char chemin[]="C:\\liste.txt";
  • char chemin2[]="C:\\temp_liste.txt";
  • struct Fiche F;
  • char nom[30];
  • char prenom[30];
  • int i=0;
  • FILE *f;
  • FILE *g;
  • f=fopen(chemin,"rb");
  • g=fopen(chemin2,"ab");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • if(g==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin2);
  • }
  • else
  • {
  • fflush(stdin);
  • printf("\n\nEntrez le nom du contact a supprimer : ");
  • gets(nom);
  • fflush(stdin);
  • printf("Entrez le prenom du contact a supprimer : ");
  • gets(prenom);
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • if((strcmp(F.nom,nom)!=0)&&(strcmp(F.prenom,prenom)!=0))
  • {
  • i++;
  • fwrite(&F,sizeof(struct Fiche),1,g);
  • }
  • }
  • printf("\n\nContact supprime ...");
  • if(i==0)
  • {
  • printf("\n Contact introuvable");
  • }
  • }
  • }
  • fclose(f);
  • remove(chemin);
  • fclose(g);
  • rename(chemin2,chemin);
  • }
  • //***************************************************
  • //** Fonction qui affiche le menu de modification *
  • //***************************************************
  • int Modif_Champ(void)
  • {
  • int choix;
  • clrscr();
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu Modifier \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Modifier le nom");
  • printf("\n[2] Modifier le prenom");
  • printf("\n[3] Modifier l'adresse mail ");
  • printf("\n[4] Modifier l'adresse");
  • printf("\n[5] Modifier la ville");
  • printf("\n[6] Modifier le numero du domicile");
  • printf("\n[7] Modifier le numero du travail");
  • printf("\n[8] Modifier le numero du fax");
  • printf("\n[9] Modifier le numero du portable 1");
  • printf("\n[10] Modifier le numero du portable 2");
  • printf("\n[11] Modifier le numero du groupe");
  • printf("\n\n[0] Retourner au menu principal");
  • printf("\n\nVeuillez indiquer votre choix : ");
  • scanf("%d",&choix);
  • return choix;
  • }
  • //***********************************************
  • //** Fonction affichant le menu final d'exit **
  • //***********************************************
  • void Quitter(void)
  • {
  • clrscr();
  • printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º");
  • printf("º ³ ³ º");
  • printf("º ³ MERCI POUR VOTRE VISITE ³ º");
  • printf("º ³ ³ º");
  • printf("º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º º");
  • printf("º zal3a majdiesprit@hotmail.fr Annuaire 1.0 º");
  • printf("º nadfrslw nadfrslw@hotmail.fr 2008 / 2009 º");
  • printf("º º");
  • printf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ&#188;");
  • printf("Appuyez sur une touche pour quitter ...");
  • getch();
  • }
  • //*************************************************
  • //** Fonction qui permet de modifier un contact *
  • //*************************************************
  • void Modifier(void)
  • {
  • int choix;
  • char chemin[]="C:\\liste.txt";
  • char chemin2[]="C:\\temp_liste.txt";
  • struct Fiche F;
  • char nom[30];
  • char prenom[30];
  • FILE *f;
  • FILE *g;
  • f=fopen(chemin,"rb");
  • g=fopen(chemin2,"ab");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • if(g==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin2);
  • }
  • else
  • {
  • clrscr();
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu Modifier \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • fflush(stdin);
  • printf("\n\nEntrez le nom du contact a modifier : ");
  • gets(nom);
  • fflush(stdin);
  • printf("Entrez le prenom du contact a modifier : ");
  • gets(prenom);
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • if((strcmp(F.nom,nom)!=0)&&(strcmp(F.prenom,prenom)!=0))
  • {
  • fwrite(&F,sizeof(struct Fiche),1,g);
  • printf("\n Contact introuvable");
  • }
  • else
  • {
  • do
  • {
  • choix=Modif_Champ();
  • clrscr();
  • switch(choix)
  • {
  • case 1:
  • printf("\nVeuillez saisir le nouveau nom :");
  • scanf("%s",F.nom);
  • break;
  • case 2:
  • printf("\nVeuillez saisir le nouveau prenom :");
  • scanf("%s",F.prenom);
  • break;
  • case 3:
  • printf("\nVeuillez saisir le nouveau mail :");
  • scanf("%s",F.mail);
  • break;
  • case 4:
  • printf("\nVeuillez saisir la nouvelle adresse :");
  • scanf("%s",F.adresse);
  • break;
  • case 5:
  • printf("\nVeuillez saisir la ville :");
  • scanf("%s",F.ville);
  • break;
  • case 6:
  • printf("\nVeuillez saisir le numero du domicile :");
  • scanf("%s",F.num_dom);
  • break;
  • case 7:
  • printf("\nVeuillez saisir le numero du travail :");
  • scanf("%s",F.num_travail);
  • break;
  • case 8:
  • printf("\nVeuillez saisir le numero du fax :");
  • scanf("%s",F.num_fax);
  • break;
  • case 9:
  • printf("\nVeuillez saisir le numero du protable 1 :");
  • scanf("%s",F.num_portable1);
  • break;
  • case 10:
  • printf("\nVeuillez saisir le numero du portable 2 :");
  • scanf("%s",F.num_portable2);
  • break;
  • case 11:
  • printf("\nVeuillez saisir le numero du groupe :");
  • scanf("%d",&F.groupe);
  • break;
  • }
  • }while(choix!=0);
  • fwrite(&F,sizeof(struct Fiche),1,g); // Fin switch
  • } // Fin else
  • } // Fin while
  • } // Fin else g
  • } // Fin else f
  • fclose(f);
  • remove(chemin);
  • fclose(g);
  • rename(chemin2,chemin);
  • }
  • //**************************************************
  • //** Fonction qui permet l'ajout d'un contact *
  • //**************************************************
  • void Ajouter(void)
  • {
  • char chemin[]="C:\\liste.txt";
  • struct Fiche F;
  • FILE *f;
  • f=fopen(chemin,"ab");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu Ajouter \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • fflush(stdin);
  • printf("\n\nNom: \n");
  • gets(F.nom);
  • fflush(stdin);
  • printf("Prenom: \n");
  • gets(F.prenom);
  • fflush(stdin);
  • printf("Mail: \n");
  • gets(F.mail);
  • fflush(stdin);
  • printf("Adresse: \n");
  • gets(F.adresse);
  • fflush(stdin);
  • printf("Ville: \n");
  • gets(F.ville);
  • fflush(stdin);
  • printf("Num Domicile: \n");
  • gets(F.num_dom);
  • fflush(stdin);
  • printf("Num Travail: \n");
  • gets(F.num_travail);
  • fflush(stdin);
  • printf("Num Fax: \n");
  • gets(F.num_fax);
  • fflush(stdin);
  • printf("Num Portable 1: \n");
  • gets(F.num_portable1);
  • fflush(stdin);
  • printf("Num Portable 2: \n");
  • gets(F.num_portable2);
  • do
  • {
  • printf("Groupe : [1] Famille [2] Amis [3] Autres\n" );
  • scanf("%d",&F.groupe);
  • }while((F.groupe!=1)&&(F.groupe!=2)&&(F.groupe!=3));
  • fwrite(&F,sizeof(struct Fiche),1,f);
  • }
  • fclose(f);
  • }
  • //***************************************************
  • //** Fonction qui permet l'affichage d'un contact *
  • //***************************************************
  • void Afficher(void)
  • {
  • int i=0;
  • char chemin[]="C:\\liste.txt";
  • struct Fiche F;
  • FILE *f;
  • f=fopen(chemin,"rb");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Liste des contacts \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\nIl existe %d contact(s) present(s) sur le fichier",Nb_Contacts());
  • getch();
  • clrscr();
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • i++;
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Liste des contacts \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\nContact n:%d",i);
  • printf("\n\tNom : %s",F.nom);
  • printf("\n\tPrenom : %s",F.prenom);
  • printf("\n\tMail : %s",F.mail);
  • printf("\n\tAdresse : %s",F.adresse);
  • printf("\n\tVille : %s",F.ville);
  • printf("\n\tNum Domicile : %s",F.num_dom);
  • printf("\n\tNum Travail : %s",F.num_travail);
  • printf("\n\tNum Fax : %s",F.num_fax);
  • printf("\n\tNum Portable 1 : %s",F.num_portable1);
  • printf("\n\tNum Portable 2 : %s",F.num_portable2);
  • switch(F.groupe)
  • {
  • case 1:
  • printf("\n\tGroupe : Famille");
  • break;
  • case 2:
  • printf("\n\tGroupe : Amis");
  • break;
  • case 3:
  • printf("\n\tGroupe : Autres");
  • break;
  • }
  • getch();
  • clrscr();
  • }
  • fclose(f);
  • if(i==0)
  • {
  • printf("\nAucun contact sur le fichier");
  • }
  • }
  • }
  • //****************************************************
  • //** Fonction qui permet la recherche d'un contact *
  • //****************************************************
  • void Rechercher(void)
  • {
  • int i=0;
  • int critere;
  • int num;
  • char nom[30];
  • char ville[30];
  • char prenom[30];
  • char chemin[]="C:\\liste.txt";
  • struct Fiche F;
  • FILE *f;
  • fflush(stdin);
  • do
  • {
  • clrscr();
  • printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  • printf("\n\t\xBA Menu recherche \xBA");
  • printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  • printf("\n\n[1] Recherche par nom et prenom");
  • printf("\n[2] Recherche par ville");
  • printf("\n[3] Recherche par groupe");
  • printf("\n\n[0] Retourner au menu principal");
  • printf("\n\n\nVeuillez donner le critere de recherche : ");
  • scanf("%d",&critere);
  • }while(critere<0||critere>3);
  • clrscr();
  • switch (critere)
  • {
  • case 1:
  • fflush(stdin);
  • printf("\n\nEntrez le nom du contact a rechercher : ");
  • gets(nom);
  • fflush(stdin);
  • printf("Entrez le prenom du contact a rechercher : ");
  • gets(prenom);
  • clrscr();
  • f=fopen(chemin,"rb");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • printf("\n\t************************\n");
  • if((strcmp(F.nom,nom)==0)&&(strcmp(F.prenom,prenom)==0))
  • {
  • i++;
  • printf("\n\tNom: %s",F.nom);
  • printf("\n\tPrenom: %s",F.prenom);
  • printf("\n\tMail: %s",F.mail);
  • printf("\n\tAdresse: %s",F.adresse);
  • printf("\n\tVille : %s",F.ville);
  • printf("\n\tNum Domicile: %s",F.num_dom);
  • printf("\n\tNum Travail: %s",F.num_travail);
  • printf("\n\tNum Fax: %s",F.num_fax);
  • printf("\n\tNum Portable 1: %s",F.num_portable1);
  • printf("\n\tNum Portable 2: %s",F.num_portable2);
  • printf("\n\n\t************************\n");
  • }
  • }
  • if(i==0)
  • {
  • clrscr();
  • printf("\nContact Introuvable");
  • }
  • }
  • break;
  • case 2:
  • fflush(stdin);
  • printf("\n\nEntrez la ville : ");
  • gets(ville);
  • clrscr();
  • f=fopen(chemin,"rb");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • printf("\n\t************************\n");
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • if(strcmp(F.ville,ville)==0)
  • {
  • i++;
  • printf("\n\tNom: %s",F.nom);
  • printf("\n\tPrenom: %s",F.prenom);
  • printf("\n\tMail: %s",F.mail);
  • printf("\n\tAdresse: %s",F.adresse);
  • printf("\n\tVille : %s",F.ville);
  • printf("\n\tNum Domicile: %s",F.num_dom);
  • printf("\n\tNum Travail: %s",F.num_travail);
  • printf("\n\tNum Fax: %s",F.num_fax);
  • printf("\n\tNum Portable 1: %s",F.num_portable1);
  • printf("\n\tNum Portable 2: %s",F.num_portable2);
  • printf("\n\n\t************************\n");
  • }
  • }
  • if(i==0)
  • {
  • clrscr();
  • printf("\nContact Introuvable");
  • }
  • }
  • break;
  • case 3:
  • fflush(stdin);
  • printf("\nEntrez le numero du groupe : ");
  • scanf("%d",&num);
  • clrscr();
  • f=fopen(chemin,"rb");
  • if(f==NULL)
  • {
  • printf("\n Impossible d'ouvrir le fichier %s",chemin);
  • }
  • else
  • {
  • printf("\n\t************************\n");
  • while(fread(&F,sizeof(struct Fiche),1,f)!=0)
  • {
  • if(F.groupe==num)
  • {
  • i++;
  • printf("\n\tNom: %s",F.nom);
  • printf("\n\tPrenom: %s",F.prenom);
  • printf("\n\tMail: %s",F.mail);
  • printf("\n\tAdresse: %s",F.adresse);
  • printf("\n\tVille : %s",F.ville);
  • printf("\n\tNum Domicile: %s",F.num_dom);
  • printf("\n\tNum Travail: %s",F.num_travail);
  • printf("\n\tNum Fax: %s",F.num_fax);
  • printf("\n\tNum Portable 1: %s",F.num_portable1);
  • printf("\n\tNum Portable 2: %s",F.num_portable2);
  • printf("\n\n\t************************");
  • }
  • }
  • if(i==0)
  • {
  • clrscr();
  • printf("\nContact Introuvable");
  • }
  • }
  • break;
  • }
  • fclose(f);
  • }
  • //****************************************************
  • //** Fonction qui permet de relancer le programme *
  • //****************************************************
  • void Menu(void)
  • {
  • int choix,s;
  • s=Login();
  • if(s==2)
  • {
  • do
  • {
  • clrscr();
  • choix=Menu_user();
  • switch (choix)
  • {
  • case 1 :
  • clrscr();
  • Rechercher();
  • getch();
  • break;
  • case 2:
  • clrscr();
  • Afficher();
  • break;
  • case 3:
  • clrscr();
  • Config_user();
  • break;
  • case 0:
  • clrscr();
  • Quitter();
  • break;
  • }
  • }while(choix!=0);
  • }
  • else
  • {
  • do
  • {
  • clrscr();
  • choix=Menu_admin();
  • switch (choix)
  • {
  • case 1:
  • clrscr();
  • Ajouter();
  • break;
  • case 2 :
  • clrscr();
  • Rechercher();
  • getch();
  • break;
  • case 3:
  • clrscr();
  • Afficher();
  • break;
  • case 4:
  • clrscr();
  • Modifier();
  • break;
  • case 5:
  • clrscr();
  • Supprimer();
  • getch();
  • break;
  • case 6:
  • clrscr();
  • Config_admin();
  • break;
  • case 0:
  • clrscr();
  • Quitter();
  • break;
  • }
  • }while(choix!=0);
  • }
  • }
  • void main()
  • {
  • Menu();
  • }
//***************************************************
//                  Annuaire 1.0                    *
//***************************************************
//                                                  *
// Annuaire 1.0 a été créé par :                    *
//  - zal3a ( majdiesprit@hotmail.fr )              *
//  - nadfrslw ( nadfrslw@hotmail.fr )              *
//  Etudiants à ESPRIT, tunisie    2008/2009        *
//                                                  *
// Ceci est notre première application en C         *
// et ça a été pour un projet en C.                 *
// On espère encore avancer dans la programmation   *
// Toutes vos remarques sont les bienvenues.        *
// A bientot pour notre prochaine création ...  ;)  *
//                                                  *
//                                        Zal3a     *
//                                                  *
//***************************************************
// Remarques :                                      *
//***************************************************
//                                                  *
// Annuaire 1.0 a été créé en langage C             *
// Il nécessite quelques modifications afin de      *
// l'améliorer, malheureusement par manque          *
// de temps et vu les circonstances ( fin du délai  *
// du projet ) ...                                  *
//                                                  *
// On peut citer par exemple :                      *
//  - Modification de la fonction d'identification  *
//    pour ne plus avoir à copier le fichier        *
//    "Sessions.txt" sur c:\\                       *
//                                                  *
//  - L'ajout d'un controle sur les saisis pour     *
//    éviter tout disfonctionnement                 *
//                                                  *
//  - L'ajout d'une interface graphique             *
//                                                  *
//***************************************************





//**********************************
// Déclaration des Bibliothèques   *
//**********************************

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

//****************************************
// Déclaration des Fonctions utilisées   *
//****************************************
  void Reset(void);
  void Menu(void);
  int Menu_admin(void);
  int Menu_user(void);
  int Nb_Contacts(void);
  void Affiche_Session(void);
  void Affiche_Session1(void);
  void Modifier_Session(void);
  void Modifier_Session1(void);
  int Login(void);
  void Config_admin(void);
  void Config_user(void);
  void Supprimer(void);
  int Modif_Champ(void);
  void Modifier(void);
  void Ajouter(void);
  void Afficher(void);
  void Rechercher(void);
  void Quitter(void);


//***************************************************************************
//**	 Déclaration de la Structure contenant les informations d'un contact  *
//***************************************************************************

struct Fiche
{
 char nom[30];
 char prenom[30];
 char mail[30];
 char adresse[100];
 char num_dom[15];
 char num_travail[15];
 char num_fax[15];
 char num_portable1[15];
 char num_portable2[15];
 char ville[10];
 int groupe;
};

//*****************************************************************************
//** 	Déclaration de la Structure contenant les comptes d'accés du programme  *
//*****************************************************************************

struct Session
{
 char login[10];
 char password[10];
 char login1[10];
 char password1[10];
};


//********************************************
//**	Fonction qui réinitialise le fichier   *
//********************************************

void Reset(void)
{
 char chemin[]="C:\\liste.txt";
 remove(chemin);
 printf("\n\nFichier reinitialise ...");
 getch();
}

//*************************************************************
//**	Fonction qui permet l'affichage du menu Administrateur  *
//*************************************************************

int Menu_admin(void)
{
 int choix;
 printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 printf("\n\t\xBA   Menu Accueil   \xBA");
 printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
 printf("\n\n[1] Ajouter un nouveau contact");
 printf("\n[2] Rechercher un contact");
 printf("\n[3] Lister les contacts ");
 printf("\n[4] Modifier un contact");
 printf("\n[5] Supprimer un contact");
 printf("\n[6] Acceder au panneau de configuration de Annuaire 1.0");
 printf("\n\n[0] Quitter le programme");
 printf("\n\nVeuillez indiquer votre choix : ");
 scanf("%d",&choix);
 return choix;
 }


//*************************************************************
//**	Fonction qui permet l'affichage du menu Utilisateur     *
//*************************************************************

int Menu_user(void)
{
 int choix;
 printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 printf("\n\t\xBA   Menu Accueil   \xBA");
 printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
 printf("\n\n[1] Rechercher un contact");
 printf("\n[2] Lister les contacts ");
 printf("\n\n[3] Acceder au panneau de configuration de Annuaire 1.0");
 printf("\n\n[0] Quitter le programme");
 printf("\n\nVeuillez indiquer votre choix : ");
 scanf("%d",&choix);
 return choix;
}


//****************************************************************
//**	Fonction qui affiche le nombre de contacts sur le fichier  *
//****************************************************************
int Nb_Contacts(void)
{
 int i=0;
 char chemin[]="C:\\liste.txt";
 struct Fiche F;
 FILE *f;
 f=fopen(chemin,"rb");
 if(f==NULL)
  {
 	printf("\n\n Le fichier %s est introuvable ...",chemin);
  }
 else
  {
   while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	 {
	  i++;
    }

  }
 fclose(f);
 return i;
}


//**************************************************************
//		Fonction qui permet d'afficher le compte Administrateur  *
//**************************************************************

void Affiche_Session(void)
{
 struct Session S;
 FILE *h;
 char chemin[]="c:\\Sessions.txt";
 h=fopen(chemin,"rb");
 if(h==NULL)
  {
   printf("\n\n Le fichier %s est introuvable ...",chemin);
  }
 else
  {
   printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 	printf("\n\t\xBA   Compte d'acces   \xBA");
 	printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
   while(fread(&S,sizeof(struct Session),1,h)!=0)
    {
     printf("\n\nLogin Administrateur :  %s",S.login);
     printf("\nMot de passe Administrateur :  %s",S.password);
     getch();
    }
  }
 fclose(h);
}

//**************************************************************
//		Fonction qui permet d'afficher le compte Utilisateur     *
//**************************************************************

void Affiche_Session1(void)
{
 struct Session S;
 FILE *h;
 char chemin[]="c:\\Sessions.txt";
 h=fopen(chemin,"rb");
 if(h==NULL)
  {
   printf("\n\n Le fichier %s est introuvable ...",chemin);
  }
 else
  {
   printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 	printf("\n\t\xBA   Compte d'acces   \xBA");
 	printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
   while(fread(&S,sizeof(struct Session),1,h)!=0)
    {
     printf("\n\nLogin Utilisateur :  %s",S.login1);
     printf("\nMot de passe Utilisateur :  %s",S.password1);
     getch();
    }
  }
 fclose(h);
}

//***************************************************************
//**	Fonction qui permet de modifier le compte Administrateur     *
//***************************************************************

void Modifier_Session(void)
{
 struct Session S;
 FILE *h;
 FILE *g;
 char chemin[]="c:\\Sessions.txt";
 char chemin1[]="c:\\temp_sessions.txt";
 h=fopen(chemin,"rb");
 g=fopen(chemin1,"wb");
 if(h==NULL)
  {
   printf("\n\n Le fichier %s est introuvable ...",chemin);
  }
 else
  {
   if(g==NULL)
    {
     printf("\n\n Impossible d'ouvrir le fichier %s",chemin1);
    }
   else
    {
     while(fread(&S,sizeof(struct Session),1,h)!=0)
     {
      printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 	   printf("\n\t\xBA   Compte d'acces   \xBA");
 	   printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
      fflush(stdin);
      printf("\n\nVeuillez saisir le nouveau Login Administrateur : ");
      gets(S.login);
      fflush(stdin);
      printf("\nVeuillez saisir le nouveau Mot de Passe Administrateur : ");
      gets(S.password);
      fwrite(&S,sizeof(struct Session),1,g);
     }
    }
  }
 fclose(h);
 remove(chemin);
 fclose(g);
 rename(chemin1,chemin);
}


//***************************************************************
//**		Fonction qui permet de modifier le compte Utilisateur  *
//***************************************************************

void Modifier_Session1(void)
{
 struct Session S;
 FILE *h;
 FILE *g;
 char chemin[]="c:\\Sessions.txt";
 char chemin1[]="c:\\temp_sessions.txt";
 h=fopen(chemin,"rb");
 g=fopen(chemin1,"wb");
 if(h==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   if(g==NULL)
    {
     printf("\n Impossible d'ouvrir le fichier %s",chemin1);
    }
   else
    {
     while(fread(&S,sizeof(struct Session),1,h)!=0)
     {
      printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 	   printf("\n\t\xBA   Compte d'acces   \xBA");
 	   printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
      fflush(stdin);
      printf("\n\nVeuillez saisir le nouveau Login Utilisateur : ");
      gets(S.login1);
      fflush(stdin);
      printf("\nVeuillez saisir le nouveau Mot de Passe Utilisateur : ");
      gets(S.password1);
      fwrite(&S,sizeof(struct Session),1,g);
     }
    }
  }
 fclose(h);
 remove(chemin);
 fclose(g);
 rename(chemin1,chemin);
}


//***********************************************************
//**	Fonction qui permet l'identification de l'utilisateur *
//***********************************************************

int Login(void)
{
 int s;
 FILE *h;
 char log_in[10];
 char pass[10];
 struct Session S;
 char chemin[]="c:\\Sessions.txt";
 printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
 printf("º          Annee Universitaire                      2008 / 2009                º");
 printf("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹");
 printf("º                    ***    ***   ****   *   *  *****  *****                   º");
 printf("º                   *   *  *   *  *   *  *   *  *        *                     º");
 printf("º                   *      *   *  *   *  **  *  *        *                     º");
 printf("º                   *      *   *  ****   * * *  ***      *                     º");
 printf("º                   *      *****  * *    *  **  *        *                     º");
 printf("º                   *   *  *   *  *  *   *   *  *        *                     º");
 printf("º                    ***   *   *  *   *  *   *  *****    *                     º");
 printf("º                                                                              º");
 printf("º          ****    **  ***   ****   ****   *****   ***    ***   *****          º");
 printf("º          *   *  **  *   *  *   *  *   *  *      *   *  *   *  *              º");
 printf("º          *   *      *   *  *   *  *   *  *       **     **    *              º");
 printf("º          *   *      *   *  *   *  ****   ***      **     **   ***            º");
 printf("º          *   *      *****  *   *  * *    *         **     **  *              º");
 printf("º          *   *      *   *  *   *  *  *   *      *   *  *   *  *              º");
 printf("º          ****       *   *  ****   *   *  *****   ***    ***   *****          º");
 printf("ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹");
 printf("º Cree par :                                                                   º");
 printf("º    * Zal3a            majdiesprit@hotmail.fr               ESPRIT            º");
 printf("º    * Nadfrslw         nadfrslw@hotmail.fr                    Tunisie         º");
 printf("º                                                                              º");
 printf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ&#188;");
 system("pause");
 clrscr();
 h=fopen(chemin,"rb");
 if(h==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   while(fread(&S,sizeof(struct Session),1,h)!=0)
   {
    printf("\n\tSoyez le(la) bienvenu(e) \x85 notre Annuaire 1.0 .");
    printf("\n\tCe programme a ete cree par zal3a et nadfrslw.\n");
    printf("\n\n\n\tVeuillez vous identifier ...\n");
    do
     {
      printf("\tEntrez un login valide : ");
      gets(log_in);
     } while ((strcmp(log_in,S.login1)!=0)&&(strcmp(log_in,S.login)!=0));
    printf("\n");
    if(strcmp(log_in,S.login)==0)
     {
      do
       {
        printf("\tEntrez un mot de passe valide : ");
        gets(pass);
       } while (strcmp(pass,S.password)!=0);
      printf("\n\tIdentification reussie ...");
      printf("\n\tAppuyez sur Entree pour acceder au menu d'acceuil ...");
      s=1;
      getch();
      clrscr();
     }
    else
     {
      do
       {
        printf("\tEntrez un mot de passe valide : ");
        gets(pass);
       } while (strcmp(pass,S.password1)!=0);
      printf("\n\tIdentification reussie ...");
      printf("\n\tAppuyez sur Entree pour acceder au menu d'acceuil ...");
      s=2;
      getch();
      clrscr();
     }
  }
 }
 fclose(h);
 return s;
}


//*************************************************************************************
//** 	Fonction qui permet l'affichage du panneau de configuration de l'administrateur *
//*************************************************************************************

void Config_admin(void)
{
 int choix;
 clrscr();
 printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 printf("\n\t\xBA  Panneau de Configuration  \xBA");
 printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
 printf("\n\n[1] Afficher le login et mot de passe [ Administrateur ]");
 printf("\n[2] Afficher le login et mot de passe [ Utilisateur ]");
 printf("\n\n[3] Modifier le login et mot de passe [ Administrateur ]");
 printf("\n[4] Modifier le login et mot de passe [ Utilisateur ]");
 printf("\n\n[5] Afficher le nombre de contacts");
 printf("\n[6] Changer de Session");
 printf("\n[7] Reinitialiser le fichier");
 printf("\n\n[0] Retourner au menu principal");
 printf("\n\nVeuillez indiquer votre choix : ");
 scanf("%d",&choix);
 switch(choix)
  {
   case 1:
    clrscr();
    Affiche_Session();
    break;
   case 2:
    clrscr();
    Affiche_Session1();
    break;
   case 3:
    clrscr();
    Modifier_Session();
    break;
   case 4:
    clrscr();
    Modifier_Session1();
    break;
   case 5:
    clrscr();
    printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
    printf("\n\t\xBA  Nombres de Contacts  \xBA");
    printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
    printf("\n\n\nLe nombre de contacts est de %d ",Nb_Contacts());
    getch();
    break;
   case 6:
    clrscr();
    Menu();
    break;
   case 7:
    clrscr();
    Reset();
    break;
   case 0:
    clrscr();
    Menu_admin();
    break;
  }
}


//**************************************************************************************
//** 	Fonction qui permet l'affichage du panneau de configuration de l'utilisateur     *
//**************************************************************************************

void Config_user(void)
{
 int choix;
 printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 printf("\n\t\xBA  Panneau de Configuration  \xBA");
 printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
 printf("\n\n[1] Passer a la session Administrateur");
 printf("\n\n[0] Retourner au menu principal");
 printf("\n\nVeuillez indiquer votre choix : ");
 scanf("%d",&choix);
 switch(choix)
  {
   case 1:
    clrscr();
    Menu();
    break;
   case 0:
    clrscr();
    Menu_user();
    break;
  }
}



//**************************************************
//**	Fonction qui permet de supprimer un contact  *
//**************************************************

void Supprimer(void)
{
 char chemin[]="C:\\liste.txt";
 char chemin2[]="C:\\temp_liste.txt";
 struct Fiche F;
 char nom[30];
 char prenom[30];
 int i=0;
 FILE *f;
 FILE *g;
 f=fopen(chemin,"rb");
 g=fopen(chemin2,"ab");
 if(f==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   if(g==NULL)
    {
     printf("\n Impossible d'ouvrir le fichier %s",chemin2);
    }
   else
    {
     fflush(stdin);
     printf("\n\nEntrez le nom du contact a supprimer : ");
     gets(nom);
     fflush(stdin);
     printf("Entrez le prenom du contact a supprimer : ");
     gets(prenom);
     while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	   {
       if((strcmp(F.nom,nom)!=0)&&(strcmp(F.prenom,prenom)!=0))
        {
         i++;
         fwrite(&F,sizeof(struct Fiche),1,g);
        }
      }
     printf("\n\nContact supprime ...");
     if(i==0)
      {
       printf("\n Contact introuvable");
      }
    }
  }
 fclose(f);
 remove(chemin);
 fclose(g);
 rename(chemin2,chemin);
}

//***************************************************
//**	Fonction qui affiche le menu de modification  *
//***************************************************

int Modif_Champ(void)
{
 int choix;
 clrscr();
 printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
 printf("\n\t\xBA   Menu Modifier  \xBA");
 printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
 printf("\n\n[1] Modifier le nom");
 printf("\n[2] Modifier le prenom");
 printf("\n[3] Modifier l'adresse mail ");
 printf("\n[4] Modifier l'adresse");
 printf("\n[5] Modifier la ville");
 printf("\n[6] Modifier le numero du domicile");
 printf("\n[7] Modifier le numero du travail");
 printf("\n[8] Modifier le numero du fax");
 printf("\n[9] Modifier le numero du portable 1");
 printf("\n[10] Modifier le numero du portable 2");
 printf("\n[11] Modifier le numero du groupe");
 printf("\n\n[0] Retourner au menu principal");
 printf("\n\nVeuillez indiquer votre choix : ");
 scanf("%d",&choix);
 return choix;
}



//***********************************************
//**	Fonction affichant le menu final d'exit  **
//***********************************************

void Quitter(void)
{
 clrscr();
 printf("ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                       ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿                        º");
 printf("º                       ³                             ³                        º");
 printf("º                       ³   MERCI POUR VOTRE VISITE   ³                        º");
 printf("º                       ³                             ³                        º");
 printf("º                       ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                        º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º                                                                              º");
 printf("º    zal3a          majdiesprit@hotmail.fr                  Annuaire 1.0       º");
 printf("º    nadfrslw       nadfrslw@hotmail.fr                      2008 / 2009       º");
 printf("º                                                                              º");
 printf("ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ&#188;");
 printf("Appuyez sur une touche pour quitter ...");
 getch();
}




//*************************************************
//**	Fonction qui permet de modifier un contact  *
//*************************************************

void Modifier(void)
{
 int choix;
 char chemin[]="C:\\liste.txt";
 char chemin2[]="C:\\temp_liste.txt";
 struct Fiche F;
 char nom[30];
 char prenom[30];
 FILE *f;
 FILE *g;
 f=fopen(chemin,"rb");
 g=fopen(chemin2,"ab");
 if(f==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   if(g==NULL)
    {
     printf("\n Impossible d'ouvrir le fichier %s",chemin2);
    }
   else
    {
     clrscr();
     printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
     printf("\n\t\xBA   Menu Modifier  \xBA");
     printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
     fflush(stdin);
     printf("\n\nEntrez le nom du contact a modifier : ");
     gets(nom);
     fflush(stdin);
     printf("Entrez le prenom du contact a modifier : ");
     gets(prenom);
     while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	   {
       if((strcmp(F.nom,nom)!=0)&&(strcmp(F.prenom,prenom)!=0))
        {
         fwrite(&F,sizeof(struct Fiche),1,g);
         printf("\n Contact introuvable");
        }
       else
       {
        do
        {
        choix=Modif_Champ();
        clrscr();
        switch(choix)
          {
           case 1:
            printf("\nVeuillez saisir le nouveau nom :");
            scanf("%s",F.nom);
            break;
           case 2:
            printf("\nVeuillez saisir le nouveau prenom :");
            scanf("%s",F.prenom);
            break;
           case 3:
            printf("\nVeuillez saisir le nouveau mail :");
            scanf("%s",F.mail);
            break;
           case 4:
            printf("\nVeuillez saisir la nouvelle adresse :");
            scanf("%s",F.adresse);
            break;
           case 5:
            printf("\nVeuillez saisir la ville :");
            scanf("%s",F.ville);
            break;
           case 6:
            printf("\nVeuillez saisir le numero du domicile :");
            scanf("%s",F.num_dom);
            break;
           case 7:
            printf("\nVeuillez saisir le numero du travail :");
            scanf("%s",F.num_travail);
            break;
           case 8:
            printf("\nVeuillez saisir le numero du fax :");
            scanf("%s",F.num_fax);
            break;
           case 9:
            printf("\nVeuillez saisir le numero du protable 1 :");
            scanf("%s",F.num_portable1);
            break;
           case 10:
            printf("\nVeuillez saisir le numero du portable 2 :");
            scanf("%s",F.num_portable2);
            break;
           case 11:
            printf("\nVeuillez saisir le numero du groupe :");
            scanf("%d",&F.groupe);
            break;
          }
         }while(choix!=0);
        fwrite(&F,sizeof(struct Fiche),1,g);   // Fin switch
       }  // Fin else
     }  // Fin while
   }  // Fin else g
  }  //  Fin else f
 fclose(f);
 remove(chemin);
 fclose(g);
 rename(chemin2,chemin);
}



//**************************************************
//**	Fonction qui permet l'ajout d'un contact     *
//**************************************************


void Ajouter(void)
{
 char chemin[]="C:\\liste.txt";
 struct Fiche F;
 FILE *f;
 f=fopen(chemin,"ab");
 if(f==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
   printf("\n\t\xBA   Menu Ajouter   \xBA");
   printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
   fflush(stdin);
	printf("\n\nNom: \n");
   gets(F.nom);
   fflush(stdin);
	printf("Prenom: \n");
   gets(F.prenom);
   fflush(stdin);
	printf("Mail: \n");
   gets(F.mail);
   fflush(stdin);
	printf("Adresse: \n");
   gets(F.adresse);
   fflush(stdin);
	printf("Ville: \n");
   gets(F.ville);
   fflush(stdin);
	printf("Num Domicile: \n");
   gets(F.num_dom);
   fflush(stdin);
	printf("Num Travail: \n");
   gets(F.num_travail);
   fflush(stdin);
	printf("Num Fax: \n");
   gets(F.num_fax);
   fflush(stdin);
	printf("Num Portable 1: \n");
   gets(F.num_portable1);
   fflush(stdin);
	printf("Num Portable 2: \n");
   gets(F.num_portable2);
   do
    {
     printf("Groupe :    [1]  Famille   [2]  Amis   [3]  Autres\n" );
     scanf("%d",&F.groupe);
    }while((F.groupe!=1)&&(F.groupe!=2)&&(F.groupe!=3));
	fwrite(&F,sizeof(struct Fiche),1,f);
  }
 fclose(f);
}



//***************************************************
//**	Fonction qui permet l'affichage d'un contact  *
//***************************************************

void Afficher(void)
{
 int i=0;
 char chemin[]="C:\\liste.txt";
 struct Fiche F;
 FILE *f;
 f=fopen(chemin,"rb");
 if(f==NULL)
  {
   printf("\n Impossible d'ouvrir le fichier %s",chemin);
  }
 else
  {
   printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
   printf("\n\t\xBA Liste des contacts \xBA");
 	printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
   printf("\n\nIl existe %d contact(s) present(s) sur le fichier",Nb_Contacts());
   getch();
   clrscr();
   while(fread(&F,sizeof(struct Fiche),1,f)!=0)
    {
     i++;
     printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
     printf("\n\t\xBA Liste des contacts \xBA");
 	  printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
     printf("\n\nContact n:%d",i);
	  printf("\n\tNom : %s",F.nom);
	  printf("\n\tPrenom : %s",F.prenom);
	  printf("\n\tMail : %s",F.mail);
	  printf("\n\tAdresse : %s",F.adresse);
	  printf("\n\tVille : %s",F.ville);
	  printf("\n\tNum Domicile : %s",F.num_dom);
	  printf("\n\tNum Travail : %s",F.num_travail);
	  printf("\n\tNum Fax : %s",F.num_fax);
	  printf("\n\tNum Portable 1 : %s",F.num_portable1);
	  printf("\n\tNum Portable 2 : %s",F.num_portable2);
     switch(F.groupe)
      {
       case 1:
        printf("\n\tGroupe : Famille");
        break;
       case 2:
        printf("\n\tGroupe : Amis");
        break;
       case 3:
        printf("\n\tGroupe : Autres");
        break;
      }
     getch();
     clrscr();
    }
   fclose(f);
   if(i==0)
    {
     printf("\nAucun contact sur le fichier");
    }
  }
}




//****************************************************
//**	Fonction qui permet la recherche d'un contact  *
//****************************************************

void Rechercher(void)
{
 int i=0;
 int critere;
 int num;
 char nom[30];
 char ville[30];
 char prenom[30];
 char chemin[]="C:\\liste.txt";
 struct Fiche F;
 FILE *f;
 fflush(stdin);
 do
 {
  clrscr();
  printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
  printf("\n\t\xBA   Menu recherche \xBA");
  printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
  printf("\n\n[1] Recherche par nom et prenom");
  printf("\n[2] Recherche par ville");
  printf("\n[3] Recherche par groupe");
  printf("\n\n[0] Retourner au menu principal");
  printf("\n\n\nVeuillez donner le critere de recherche : ");
  scanf("%d",&critere);
  }while(critere<0||critere>3);
  clrscr();
  switch (critere)
  {
   case 1:
    fflush(stdin);
    printf("\n\nEntrez le nom du contact a rechercher : ");
    gets(nom);
    fflush(stdin);
    printf("Entrez le prenom du contact a rechercher : ");
    gets(prenom);
    clrscr();
    f=fopen(chemin,"rb");
    if(f==NULL)
     {
 	   printf("\n Impossible d'ouvrir le fichier %s",chemin);
     }
    else
     {
      while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	    {
        printf("\n\t************************\n");
        if((strcmp(F.nom,nom)==0)&&(strcmp(F.prenom,prenom)==0))
         {
          i++;
          printf("\n\tNom: %s",F.nom);
	       printf("\n\tPrenom: %s",F.prenom);
	       printf("\n\tMail: %s",F.mail);
	       printf("\n\tAdresse: %s",F.adresse);
	       printf("\n\tVille : %s",F.ville);
	       printf("\n\tNum Domicile: %s",F.num_dom);
	       printf("\n\tNum Travail: %s",F.num_travail);
	       printf("\n\tNum Fax: %s",F.num_fax);
	       printf("\n\tNum Portable 1: %s",F.num_portable1);
	       printf("\n\tNum Portable 2: %s",F.num_portable2);
          printf("\n\n\t************************\n");
         }
       }
      if(i==0)
       {
        clrscr();
        printf("\nContact Introuvable");
       }
     }
    break;
   case 2:
    fflush(stdin);
    printf("\n\nEntrez la ville : ");
    gets(ville);
    clrscr();
    f=fopen(chemin,"rb");
    if(f==NULL)
     {
 	   printf("\n Impossible d'ouvrir le fichier %s",chemin);
     }
    else
     {
      printf("\n\t************************\n");
      while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	    {
        if(strcmp(F.ville,ville)==0)
         {
          i++;
          printf("\n\tNom: %s",F.nom);
	       printf("\n\tPrenom: %s",F.prenom);
	       printf("\n\tMail: %s",F.mail);
	       printf("\n\tAdresse: %s",F.adresse);
	       printf("\n\tVille : %s",F.ville);
	       printf("\n\tNum Domicile: %s",F.num_dom);
	       printf("\n\tNum Travail: %s",F.num_travail);
	       printf("\n\tNum Fax: %s",F.num_fax);
	       printf("\n\tNum Portable 1: %s",F.num_portable1);
	       printf("\n\tNum Portable 2: %s",F.num_portable2);
          printf("\n\n\t************************\n");
         }
      }
      if(i==0)
       {
        clrscr();
        printf("\nContact Introuvable");
       }
     }
    break;
   case 3:
    fflush(stdin);
    printf("\nEntrez le numero du groupe : ");
    scanf("%d",&num);
    clrscr();
    f=fopen(chemin,"rb");
    if(f==NULL)
     {
 	   printf("\n Impossible d'ouvrir le fichier %s",chemin);
     }
    else
     {
      printf("\n\t************************\n");
      while(fread(&F,sizeof(struct Fiche),1,f)!=0)
	    {
        if(F.groupe==num)
         {
          i++;
          printf("\n\tNom: %s",F.nom);
	       printf("\n\tPrenom: %s",F.prenom);
	       printf("\n\tMail: %s",F.mail);
	       printf("\n\tAdresse: %s",F.adresse);
	       printf("\n\tVille : %s",F.ville);
	       printf("\n\tNum Domicile: %s",F.num_dom);
	       printf("\n\tNum Travail: %s",F.num_travail);
	       printf("\n\tNum Fax: %s",F.num_fax);
	       printf("\n\tNum Portable 1: %s",F.num_portable1);
	       printf("\n\tNum Portable 2: %s",F.num_portable2);
          printf("\n\n\t************************");
         }
      }
      if(i==0)
       {
        clrscr();
        printf("\nContact Introuvable");
       }
     }
    break;
 }
 fclose(f);
}

//****************************************************
//**	Fonction qui permet de relancer le programme   *
//****************************************************


 void Menu(void)
{
 int choix,s;
 s=Login();
 if(s==2)
  {
   do
   {
    clrscr();
    choix=Menu_user();
    switch (choix)
 	  {
 	   case 1 :
	    clrscr();
       Rechercher();
       getch();
       break;
      case 2:
  	    clrscr();
  	    Afficher();
  	    break;
      case 3:
  	    clrscr();
  	    Config_user();
  	    break;
      case 0:
  	    clrscr();
  	    Quitter();
  	    break;
     }
   }while(choix!=0);
  }
 else
  {
   do
   {
    clrscr();
    choix=Menu_admin();
    switch (choix)
 	  {
 	   case 1:
  	    clrscr();
  	    Ajouter();
       break;
 	   case 2 :
	    clrscr();
       Rechercher();
       getch();
       break;
      case 3:
  	    clrscr();
  	    Afficher();
  	    break;
      case 4:
  	    clrscr();
  	    Modifier();
  	    break;
      case 5:
  	    clrscr();
  	    Supprimer();
  	    getch();
  	    break;
      case 6:
  	    clrscr();
  	    Config_admin();
  	    break;
      case 0:
  	    clrscr();
  	    Quitter();
  	    break;
     }
    }while(choix!=0);
  }
}


void main()
{
 Menu();
}

 Conclusion

***************
*  Remarques  *
***************
                                                  
Annuaire 1.0 a été créé en langage C            
Il nécessite quelques modifications afin de      
l'améliorer, malheureusement par manque          
de temps et vu les circonstances ( fin du délai  
du projet ) ...                                  
                                                  
On peut citer par exemple :                      
  - Modification de la fonction d'identification  
    pour ne plus avoir à copier le fichier        
    "Sessions.txt" sur c:\\                      
                                                  
  - L'ajout d'un controle sur les saisis pour    
    éviter tout disfonctionnement                
                                                  
  - L'ajout d'une interface graphique
              
                  
!!!!!!!!!!!!!
! Attention !
!!!!!!!!!!!!!                                              

Annuaire 1.0 nécessite que le fichier "Sessions.txt"
soit présent sur c:\\ pour que la session d'identification
aie cours lors de lancement  ( à corriger !! )

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMME DE SUDOKU par AffreuxJojp
Source avec Zip EVALUATEUR D'EXPRESSION ARITHMÉTIQUE par matrx180vTitanium
Source avec Zip Source avec une capture QBIBLIO GESTION DES PRÊTS par conatic
Source avec Zip Source avec une capture QL-CHATROOM V 1.0 par mature
Source avec Zip Source avec une capture GEOLOCALISATION par ganjarasta

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LOGICIEL AGENDA PLANNING par BencoAndCo
Source avec Zip Source avec une capture [WIN32] AGENDA / ORGANISEUR (GESTION DU CONTRÔLE "CALENDRIER... par uaip
Source avec Zip Source avec une capture [WIN32] PETIT RÉPERTOIRE TÉLÉPHONIQUE ET AUTRES (GESTION LIS... par uaip
Source avec Zip AGENDA WINBGIM par T_Mehdi
Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC par sebman

Commentaires et avis

Commentaire de BruNews le 27/01/2009 19:27:54 administrateur CS

En interface graphique, que soit Windows ou GTK ou ..., ce ne seront plus quelques modifications à apporter mais quasi tout qu'il faudra refaire.

Commentaire de ghuysmans99 le 27/01/2009 19:55:43

1) Essaie d'utiliser les fichiers dans le répertoire courant, par exemple ...
Tout le monde n'a pas les droits sur C:\ (notamment si tu n'es pas admin !).

2) Définis une constante par fichier contenant le nom de fichier.

Commentaire de uaip le 27/01/2009 21:19:16

Salut,
Pour ce qui est du graphique, j'avais posté une source portant sur le même intérêt (gestion de contacts), visible ici :
http://www.cppfrance.com/codes/WIN32-PETIT-REPERTOIRE-TELEPHONIQUE-AUTRES-GESTION-LISTVIEW_48332.aspx
Je signale quand même je suis loin d'être un "exemple à suivre", car mes codes ne sont pas au top, mais si ça peut t'aider pour passer au graphique (sous Windows)...

Commentaire de zal3a le 28/01/2009 01:21:14

Tout d'abord merci pour vos commentaires, je tiens juste à préciser que je débute dans la programmation C.

<BruNews> Toute chose a un commencement,l'interface graphique viendra par la suite tant que je n'ai pas encore saisi les bases du C,j'ai déjà vu un exemple avec GTK+ c'était l'horreur (pour moi :s )

<ghuysmans99> 1/ Si j'ai précisé l'emplacement des fichiers, c'est parce que la session d'identification n'est pas complète vu que le fichier "Sessions.txt" doit être présent,j'ai du donc forcer le chemin.
2/ Ca revient au même problème où il faut que je corrige la fonction d'identification.

<uaip> C'est en C++ non ???  Je suis encore en C moi :$

Commentaire de BruNews le 28/01/2009 09:31:24 administrateur CS

La source de UAIP est en pur C utilisant les fonctions de Windows.

Commentaire de petifa le 28/01/2009 10:05:20

Brunews à raison, pour ajouter une interface il faudrait tout reprendre, et donc ca serait très long d'utiliser ton code.
En fait tu devrais avoir des fonction métier dans ton application, des fonctions qui te permettraient de gérer le carnet d'adresse, d'ajouter / supprimer .... et des fonction pour le graphisme. Même si tu ne connais pas le C++, séparer l'interface et le métier permettrait d'avoir un code facilement réutilisable.

Sinon pour le code proprement dit, tu peux simplifier ton code en factorisant les parties identiques. Par exemple

#  printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
# printf("\n\t\xBA Liste des contacts \xBA");
# printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");


TU fais ca plein de fois pour ajouter un joli titre, tu pourrais le mettre dans une fonction en passant en paramètre le titre.
void AfficherTitre(char *Titre)
{  
    printf("\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB");
    printf("\n\t\xBA %s", Titre);
    printf("\n\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC");
}

Commentaire de zal3a le 30/01/2009 17:45:18

<BruNews>  :$

<PETIFA> 1/J'ai toutes les fonctions séparées non ??? je fais l'appel dans le menu pour chaque fonction désirée, ce n'est pas ça ce que tu veux dire par les séparer ???
2/ C'est faisable pour les titres, j'ai juste voulu que mes fonctions ne prennent aucun paramètre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Contacts [ par Bog ] Bonjour, je serais intêressé d'avoir des contacts avec des programmeurs en C++ (travaillant sous Borland C++ Builder de pref) pour avoir la possibilit Contacts [ par Bog ] Bonjour, je serais intêressé d'avoir des contacts avec des programmeurs en C++(travaillant sous Borland C++ Builder de pref) pour avoir la possibilité agenda en C [ par petit_jul ] Bonjourje cherche comment on peut a partir d'un numéro de semaine obtenir la date de début et de fin de la semaine correspondante (en langage C si pos PB Structures, Headers, string [ par Pwillou ] Bonjour, j'ai plein d'erreurs à la compilation de deux fichiers:voici agenda.h:#include &lt;stdio.h&gt;#include &lt;iostream.H&gt;#include &lt;string& MFC+accées au base de données [ par nizbs ] bonjour j'ai fait un agenda avec le mfc et je veux faire une connexion à une base de données qui à le continue de l'agendacomment créer une base de do URGENT!!!! REQUETE DANS L ANNUAIRE D EXCHANE 5.5 [ par rachi333 ] Salut a tousJ'aimerais faire une requete pour trouver un usager dans la base de donnees d'un serveur exchange (version 5.5 ) en utilisant Visual studi gestion de Fichier texte [ par aciid_washor ] Bonjour, j'ai créé un programme qui me sert d'annuaire. L'annuaire en question est ecrit sous forme d'un fichier texte:nom telephonedéclarés comme s ecrire en c un agenda de personne [ par bingobruno ] cet  agenda  est composé du nom ,prenom ,age ,sexe,tel et va permettre l ajout d un contact ,la suppression la modification.tous ceci sous fome de pro marre [ par erakiel54 ] bonjour ! Je galere pour crer un agenda tout simple, avec 10 pages au total ... avec simplement pour commencer le nom et le prenom a demander et à Agenda [ par lafolle24320 ] Bonjour je débute en api win 32 et galère un peu. Je recherche donc des sources de code d'un petit agenda permettant de classer des rendez vous en uti


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,902 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales