begin process at 2012 02 12 08:28:39
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > CARNET D'ADRESSE

CARNET D'ADRESSE


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Débutant Date de création :18/06/2005 Vu / téléchargé :5 597 / 442

Auteur : katib

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

 Description

c'est mon premier code qui depasse 900 lignes, c'est un carnet d'adresse ecrit en langage C, outil de developpement Turbo c2.01 de Borland, sur une plate-form: windows 98 SE.

Source

  • #include <stdio.h>
  • #include <conio.h>
  • #include <string.h>
  • #define max_nom 30
  • #define max_adresse 50
  • #define max_autre 20
  • struct adresse
  • {
  • char nom [max_nom];
  • char prn [max_nom];
  • char adr1 [max_adresse];
  • char adr2 [max_adresse];
  • char tele [max_autre];
  • char teleb [max_autre];
  • char mob [max_autre];
  • char email [max_nom];
  • };
  • struct adresse var_adresse[100], var_adresse_trier[1];
  • FILE * fichier;
  • void cadre (int x1, int y1, int x2, int y2);
  • void cadre_prime (int x1, int y1, int x2, int y2);
  • void position_ecriture (int x, int y, char mot [30]);
  • void affiche_menu_general ();
  • void affiche_sous_menu_general ();
  • void interface_application ();
  • void ajout_enregistrement_champ ();
  • void ajout_enregistrement_champ_moin ();
  • void affichages_des_tableaux ();
  • void saisie ();
  • void consulter ();
  • void consulter_effacement_cadres ();
  • void consulter_D_F_Bidirection (int x);
  • void consulter_Rechercher ();
  • void supprimer (int s);
  • void liste ();
  • void modifier ();
  • void trier ();
  • void effacement ();
  • int global_i = 1, j;
  • char nom [30];
  • main()
  • {
  • fichier = fopen ("adresse.dat", "a");
  • fclose (fichier);
  • fichier = fopen ("adresse.dat", "r");
  • while (! feof (fichier))
  • {
  • fscanf (fichier, "\t\n%s %s %s %s %s %s %s %s",
  • var_adresse[global_i].nom,
  • var_adresse[global_i].prn,
  • var_adresse[global_i].adr1,
  • var_adresse[global_i].adr2,
  • var_adresse[global_i].tele,
  • var_adresse[global_i].teleb,
  • var_adresse[global_i].mob,
  • var_adresse[global_i].email);
  • global_i++;
  • }
  • fclose (fichier);
  • textbackground (1);
  • textcolor (7);
  • interface_application ();
  • affiche_menu_general ();
  • return 0;
  • }
  • void cadre (int x1, int y1, int x2, int y2)
  • {
  • int i;
  • for (i=x1; i<x2; i++)
  • {
  • gotoxy (i, y1);
  • printf ("%c", 205);
  • gotoxy (i, y2);
  • printf ("%c", 205);
  • }
  • for (i=y1; i<y2; i++)
  • {
  • gotoxy (x1, i);
  • printf ("%c", 186);
  • gotoxy (x2, i);
  • printf ("%c", 186);
  • }
  • gotoxy (x1, y1);
  • printf ("%c", 201);
  • gotoxy (x1, y2);
  • printf ("%c", 200);
  • gotoxy (x2, y1);
  • printf ("%c", 187);
  • gotoxy (x2, y2);
  • printf ("%c", 188);
  • }
  • void cadre_prime (int x1, int y1, int x2, int y2)
  • {
  • int i;
  • for (i=x1; i<x2; i++)
  • {
  • gotoxy (i, y1);
  • printf ("%c", 196);
  • gotoxy (i, y2);
  • printf ("%c", 196);
  • }
  • for (i=y1; i<y2; i++)
  • {
  • gotoxy (x1, i);
  • printf ("%c", 179);
  • gotoxy (x2, i);
  • printf ("%c", 179);
  • }
  • gotoxy (x1, y1);
  • printf ("%c", 218);
  • gotoxy (x1, y2);
  • printf ("%c", 192);
  • gotoxy (x2, y1);
  • printf ("%c", 191);
  • gotoxy (x2, y2);
  • printf ("%c", 217);
  • }
  • void position_ecriture (int x, int y, char mot [30])
  • {
  • gotoxy (x, y);
  • printf ("%s", mot);
  • }
  • void affiche_menu_general ()
  • {
  • char c = ' ';
  • int i=1;
  • affiche_sous_menu_general ();
  • while (1)
  • {
  • if (i == 1)
  • {
  • cadre (2, 21, 8, 23); /* ajout */
  • cadre_prime (57, 21, 65, 23);
  • cadre_prime (9, 21, 18, 23);
  • }
  • if (i == 2)
  • {
  • cadre (9, 21, 18, 23); /* modifier */
  • cadre_prime (2, 21, 8, 23);
  • cadre_prime (19, 21, 29, 23);
  • }
  • if (i == 3)
  • {
  • cadre (19, 21, 29, 23); /* consulter */
  • cadre_prime (9, 21, 18, 23);
  • cadre_prime (30, 21, 36, 23);
  • }
  • if (i == 4)
  • {
  • cadre (30, 21, 36, 23); /* trier */
  • cadre_prime (19, 21, 29, 23);
  • cadre_prime (37, 21, 46, 23);
  • }
  • if (i == 5)
  • {
  • cadre (37, 21, 46, 23); /* imprimer */
  • cadre_prime (30, 21, 36, 23);
  • cadre_prime (47, 21, 56, 23);
  • }
  • if (i == 6)
  • {
  • cadre (47, 21, 56, 23); /* a propos */
  • cadre_prime (37, 21, 46, 23);
  • cadre_prime (57, 21, 65, 23);
  • }
  • if (i == 7)
  • {
  • cadre (57, 21, 65, 23); /* quitter */
  • cadre_prime (47, 21, 56, 23);
  • cadre_prime (2, 21, 8, 23);
  • }
  • c = getch();
  • if ( i == 1 && c == 13 ) { saisie (); }
  • if ( i == 2 && c == 13 ) { modifier (); }
  • if ( i == 3 && c == 13 ) { consulter_effacement_cadres (); }
  • if ( i == 4 && c == 13 ) { trier (); }
  • if ( i == 5 && c == 13 )
  • {
  • effacement ();
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("vide !");
  • }
  • if ( i == 6 && c == 13 )
  • {
  • gotoxy (20, 10);
  • gotoxy (strlen ("E-mail: "), 18);
  • printf ("Serrat lyes, serrat_lyes@hotmail.com, www.geocities.com/amine808");
  • }
  • if ( i == 7 && c == 13 )
  • {
  • fichier = fopen ("adresse.dat", "w");
  • for (j=1; j<global_i; j++)
  • {
  • if ((var_adresse[j].nom[0]=='.') ||
  • (var_adresse[j].prn[0]=='.') ||
  • (var_adresse[j].adr1[0]=='.') ||
  • (var_adresse[j].adr2[0]=='.') ||
  • (var_adresse[j].tele[0]=='.') ||
  • (var_adresse[j].teleb[0]=='.') ||
  • (var_adresse[j].mob[0]=='.') ||
  • (var_adresse[j].email[0]=='.')) continue;
  • fprintf (fichier, "\t\n%s %s %s %s %s %s %s %s",
  • var_adresse[j].nom,
  • var_adresse[j].prn,
  • var_adresse[j].adr1,
  • var_adresse[j].adr2,
  • var_adresse[j].tele,
  • var_adresse[j].teleb,
  • var_adresse[j].mob,
  • var_adresse[j].email);
  • }
  • fclose (fichier);
  • exit (1);
  • }
  • if ( c == 0 + 77 ) i++;
  • if ( c == 0 + 75 ) i--;
  • if ( i > 7 ) i = 1;
  • if ( i < 1 ) i = 7;
  • }
  • }
  • /* menu principal a afficher: */
  • void interface_application ()
  • {
  • clrscr();
  • cadre (1, 2, 80, 25); /* premier cadre */
  • position_ecriture (3, 2, "Carnet d'adresses");
  • cadre (3, 3, 78, 20); /* deuxième cadre */
  • cadre (2, 21, 7, 23);
  • /* donnees du carnet d'adresse a manipulés */
  • /*position_ecriture (8, 7, "Numero: ");*/
  • position_ecriture (8, 8, "Nom: ");
  • position_ecriture (8, 9, "Prenom: ");
  • position_ecriture (8, 10, "Adresse: ");
  • position_ecriture (8, 12, "Tele: ");
  • position_ecriture (8, 13, "Tele bureau: ");
  • position_ecriture (8, 14, "Mobile: ");
  • position_ecriture (8, 15, "E-mail: ");
  • ajout_enregistrement_champ ();
  • /* fin donnees du carnet d'adresse a manipulés */
  • }
  • void affiche_sous_menu_general ()
  • {
  • /* menu principal a afficher:
  • **AJOUT MODIFIER SUPPREMER CONSULTER TRIER IMPRIMER A PROPOS QUITTER** */
  • position_ecriture (3, 22, "AJOUT");
  • position_ecriture (10, 22, "MODIFIER");
  • position_ecriture (20, 22, "CONSULTER");
  • position_ecriture (31, 22, "TRIER");
  • position_ecriture (38, 22, " ");
  • position_ecriture (48, 22, "A PROPOS");
  • position_ecriture (58, 22, "QUITTER");
  • cadre_prime (2, 21, 8, 23);
  • cadre_prime (9, 21, 18, 23);
  • cadre_prime (19, 21, 29, 23);
  • cadre_prime (30, 21, 36, 23);
  • cadre_prime (37, 21, 46, 23);
  • cadre_prime (47, 21, 56, 23);
  • cadre_prime (57, 21, 65, 23);
  • }
  • void ajout_enregistrement_champ ()
  • {
  • /* effacement des enciennes rubriques */
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • printf ("..............................");
  • gotoxy (strlen ("Prenom: ") + 8, 9);
  • printf ("..............................");
  • gotoxy (strlen ("Adresse: ") + 8, 10);
  • printf ("..................................................");
  • gotoxy (strlen ("Adresse: ") + 8, 11);
  • printf ("..................................................");
  • gotoxy (strlen ("Tele: ") + 8, 12);
  • printf ("....................");
  • gotoxy (strlen ("Tele bureau: ") + 8, 13);
  • printf (".....................");
  • gotoxy (strlen ("Mobile: ") + 8, 14);
  • printf (".....................");
  • gotoxy (strlen ("E-mail: ") + 8, 15);
  • printf ("..............................");
  • }
  • void ajout_enregistrement_champ_moin ()
  • {
  • /* effacement des enciennes rubriques */
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • printf (" ");
  • gotoxy (strlen ("Prenom: ") + 8, 9);
  • printf (" ");
  • gotoxy (strlen ("Adresse: ") + 8, 10);
  • printf (" ");
  • gotoxy (strlen ("Adresse: ") + 8, 11);
  • printf (" ");
  • gotoxy (strlen ("Tele: ") + 8, 12);
  • printf (" ");
  • gotoxy (strlen ("Tele bureau: ") + 8, 13);
  • printf (" ");
  • gotoxy (strlen ("Mobile: ") + 8, 14);
  • printf (" ");
  • gotoxy (strlen ("E-mail: ") + 8, 15);
  • printf (" ");
  • }
  • void saisie ()
  • {
  • int i;
  • if ( global_i > 100 ) printf (" ");
  • else
  • {
  • ajout_enregistrement_champ ();
  • cadre_prime (2, 21, 8, 23);
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • gets (var_adresse[global_i].nom);
  • for (i=0; i<=strlen (var_adresse[global_i].nom); i++)
  • {
  • if (var_adresse[global_i].nom[i]==' ') var_adresse[global_i].nom[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].nom) == 0)
  • { var_adresse[global_i].nom[0]='/'; var_adresse[global_i].nom[1]='\0'; }
  • gotoxy (strlen ("Prenom: ") + 8, 9);
  • gets (var_adresse[global_i].prn);
  • for (i=0; i<=strlen (var_adresse[global_i].prn); i++)
  • {
  • if (var_adresse[global_i].prn[i]==' ') var_adresse[global_i].prn[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].prn) == 0)
  • { var_adresse[global_i].prn[0]='/'; var_adresse[global_i].prn[1]='\0'; }
  • gotoxy (strlen ("Adresse: ") + 8, 10);
  • gets (var_adresse[global_i].adr1);
  • for (i=0; i<=strlen (var_adresse[global_i].adr1); i++)
  • {
  • if (var_adresse[global_i].adr1[i]==' ') var_adresse[global_i].adr1[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].adr1) == 0)
  • { var_adresse[global_i].adr1[0]='/'; var_adresse[global_i].adr1[1]='\0'; }
  • gotoxy (strlen ("Adresse: ") + 8, 11);
  • gets (var_adresse[global_i].adr2);
  • for (i=0; i<=strlen (var_adresse[global_i].adr2); i++)
  • {
  • if (var_adresse[global_i].adr2[i]==' ') var_adresse[global_i].adr2[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].adr2) == 0)
  • { var_adresse[global_i].adr2[0]='/'; var_adresse[global_i].adr2[1]='\0'; }
  • gotoxy (strlen ("Tele: ") + 8, 12);
  • gets (var_adresse[global_i].tele);
  • for (i=0; i<=strlen (var_adresse[global_i].tele); i++)
  • {
  • if (var_adresse[global_i].tele[i]==' ') var_adresse[global_i].tele[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].tele) == 0)
  • { var_adresse[global_i].tele[0]='/'; var_adresse[global_i].tele[1]='\0'; }
  • gotoxy (strlen ("Tele bureau: ") + 8, 13);
  • gets (var_adresse[global_i].teleb);
  • for (i=0; i<=strlen (var_adresse[global_i].teleb); i++)
  • {
  • if (var_adresse[global_i].teleb[i]==' ') var_adresse[global_i].teleb[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].teleb) == 0)
  • { var_adresse[global_i].teleb[0]='/'; var_adresse[global_i].teleb[1]='\0'; }
  • gotoxy (strlen ("Mobile: ") + 8, 14);
  • gets (var_adresse[global_i].mob);
  • for (i=0; i<=strlen (var_adresse[global_i].mob); i++)
  • {
  • if (var_adresse[global_i].mob[i]==' ') var_adresse[global_i].mob[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].mob) == 0)
  • { var_adresse[global_i].mob[0]='/'; var_adresse[global_i].mob[1]='\0'; }
  • gotoxy (strlen ("E-mail: ") + 8, 15);
  • gets (var_adresse[global_i].email);
  • for (i=0; i<=strlen (var_adresse[global_i].email); i++)
  • {
  • if (var_adresse[global_i].email[i]==' ') var_adresse[global_i].email[i]= '.';
  • }
  • if (strlen (var_adresse[global_i].email) == 0)
  • { var_adresse[global_i].email[0]='/'; var_adresse[global_i].email[1]='\0'; }
  • global_i++;
  • }
  • }
  • void consulter_effacement_cadres ()
  • {
  • int i, j,k;
  • char cmp, licte;
  • for (i=21; i<=23; i++)
  • for (j=2; j<=65; j++)
  • {
  • gotoxy (j,i);
  • printf (" ");
  • }
  • position_ecriture (4, 21, "D");
  • position_ecriture (4, 22, "-");
  • position_ecriture (8, 21, "<-");
  • position_ecriture (12, 21, "->");
  • position_ecriture (16, 21, "F");
  • position_ecriture (16, 22, "-");
  • position_ecriture (20, 21, "Rechercher");
  • position_ecriture (20, 22, "-");
  • position_ecriture (33, 21, "Supprimer");
  • position_ecriture (33, 22, "-");
  • position_ecriture (45, 21, "Liste");
  • position_ecriture (45, 22, "-");
  • /*menu boucler ;*/
  • i=1;
  • consulter_D_F_Bidirection (1);
  • while (1)
  • {
  • cmp = getch();
  • if ( i < 1 )
  • { i = 1;
  • consulter_D_F_Bidirection (i);
  • }
  • if ( i > global_i - 1 )
  • { i = global_i - 1;
  • consulter_D_F_Bidirection (i);
  • }
  • if ( cmp == 27 ) break;
  • if (( cmp == 68 ) || ( cmp == 100)) consulter_D_F_Bidirection (1);
  • if (( cmp == 70 ) || ( cmp == 102)) consulter_D_F_Bidirection (global_i-1);
  • if (( cmp == 82 ) || ( cmp == 114)) consulter_Rechercher ();
  • if (( cmp == 83 ) || ( cmp == 115)) supprimer (i);
  • if (( cmp == 76 ) || ( cmp == 108))
  • {
  • while (1)
  • {
  • position_ecriture (45, 21, " ");
  • position_ecriture (45, 22, " ");
  • liste ();
  • licte = getch();
  • if ( licte == 27 ) break;
  • }
  • position_ecriture (45, 21, "Liste");
  • position_ecriture (45, 22, "-");
  • for (k=5; k<=19; k++)
  • for (j=5; j<=77; j++)
  • {
  • gotoxy (j,k);
  • printf (" ");
  • }
  • position_ecriture (8, 8, "Nom: ");
  • position_ecriture (8, 9, "Prenom: ");
  • position_ecriture (8, 10, "Adresse: ");
  • position_ecriture (8, 12, "Tele: ");
  • position_ecriture (8, 13, "Tele bureau: ");
  • position_ecriture (8, 14, "Mobile: ");
  • position_ecriture (8, 15, "E-mail: ");
  • ajout_enregistrement_champ ();
  • consulter_D_F_Bidirection (1);
  • }
  • if ( cmp == 0 + 77 )
  • { i++;
  • if ((var_adresse[i].nom[0]== '.') &&
  • (var_adresse[i].prn[0]== '.') &&
  • (var_adresse[i].adr1[0]== '.') &&
  • (var_adresse[i].adr2[0]== '.') &&
  • (var_adresse[i].tele[0]== '.') &&
  • (var_adresse[i].teleb[0]== '.') &&
  • (var_adresse[i].mob[0]== '.') &&
  • (var_adresse[i].email[0]= '.')) continue;
  • consulter_D_F_Bidirection (i);
  • }
  • if ( cmp == 0 + 75 )
  • { i--;
  • if ((var_adresse[i].nom[0]== '.') &&
  • (var_adresse[i].prn[0]== '.') &&
  • (var_adresse[i].adr1[0]== '.') &&
  • (var_adresse[i].adr2[0]== '.') &&
  • (var_adresse[i].tele[0]== '.') &&
  • (var_adresse[i].teleb[0]== '.') &&
  • (var_adresse[i].mob[0]== '.') &&
  • (var_adresse[i].email[0]= '.')) continue;
  • consulter_D_F_Bidirection (i);
  • }
  • }
  • affiche_sous_menu_general ();
  • }
  • void consulter_D_F_Bidirection (int i)
  • {
  • ajout_enregistrement_champ_moin ();
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • puts (var_adresse[i].nom);
  • gotoxy (strlen ("Prenom: ") + 8, 9);
  • puts (var_adresse[i].prn);
  • gotoxy (strlen ("Adresse: ") + 8, 10);
  • puts (var_adresse[i].adr1);
  • gotoxy (strlen ("Adresse: ") + 8, 11);
  • puts (var_adresse[i].adr2);
  • gotoxy (strlen ("Tele: ") + 8, 12);
  • puts (var_adresse[i].tele);
  • gotoxy (strlen ("Tele bureau: ") + 8, 13);
  • puts (var_adresse[i].teleb);
  • gotoxy (strlen ("Mobile: ") + 8, 14);
  • puts (var_adresse[i].mob);
  • gotoxy (strlen ("E-mail: ") + 8, 15);
  • puts (var_adresse[i].email);
  • }
  • void consulter_Rechercher ()
  • {
  • int i;
  • effacement ();
  • ajout_enregistrement_champ ();
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • gets (nom);
  • if (strlen (nom) == 0) { nom[0]='/'; nom[1]='\0'; }
  • i=1;
  • while (i<global_i)
  • {
  • if (strcmp (nom, var_adresse[i].nom) == NULL )
  • { consulter_D_F_Bidirection (i);
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("Appyer sur une touche pour continuer...");
  • getch(); }
  • i++;
  • }
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("Recherche terminer ");
  • }
  • void supprimer (int s)
  • {
  • effacement ();
  • var_adresse[s].nom[0]= '.';
  • var_adresse[s].nom[1]= '\0';
  • var_adresse[s].prn[0]= '.';
  • var_adresse[s].prn[1]= '\0';
  • var_adresse[s].adr1[0]= '.';
  • var_adresse[s].adr1[1]= '\0';
  • var_adresse[s].adr2[0]= '.';
  • var_adresse[s].adr2[1]= '\0';
  • var_adresse[s].tele[0]= '.';
  • var_adresse[s].tele[1]= '\0';
  • var_adresse[s].teleb[0]= '.';
  • var_adresse[s].teleb[1]= '\0';
  • var_adresse[s].mob[0]= '.';
  • var_adresse[s].mob[1]= '\0';
  • var_adresse[s].email[0]= '.';
  • var_adresse[s].email[1]= '\0';
  • }
  • void liste ()
  • { int i, j, k;
  • char cmp = ' ';
  • for (k=6; k<=19; k++)
  • for (j=5; j<=77; j++)
  • {
  • gotoxy (j,k);
  • printf (" ");
  • }
  • position_ecriture (5, 5, "NOM");
  • position_ecriture (30, 5, "PRENOM");
  • position_ecriture (51, 5, "E-MAIL");
  • j=1;
  • for (i=1; i<global_i; i++)
  • {
  • gotoxy (5, 5+j);
  • printf ("%s", var_adresse[i].nom);
  • gotoxy (30, 5+j);
  • printf ("%s", var_adresse[i].prn);
  • gotoxy (51, 5+j);
  • printf ("%s", var_adresse[i].email);
  • j++;
  • if (j > 14 )
  • { cmp = getch();
  • if ( cmp == 27 ) break;
  • for (k=6; k<=19; k++)
  • for (j=5; j<=77; j++)
  • {
  • gotoxy (j,k);
  • printf (" ");
  • }
  • j=1;
  • }
  • }
  • }
  • void modifier ()
  • {
  • int i, k;
  • char c=' ';
  • ajout_enregistrement_champ ();
  • effacement ();
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • gets (nom);
  • if (strlen (nom) == 0) { nom[0]='/'; nom[1]='\0'; }
  • i=1;
  • while (i<global_i)
  • {
  • if (strcmp (nom, var_adresse[i].nom) == NULL )
  • { consulter_D_F_Bidirection (i);
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("Appuyer sur une touche pour modifier...ESC pour annuler");
  • if ((c = getch()) != 27 )
  • {
  • effacement ();
  • ajout_enregistrement_champ ();
  • cadre_prime (2, 21, 8, 23);
  • gotoxy (strlen ("Nom: ") + 8, 8);
  • gets (var_adresse[i].nom);
  • for (k=0; k<=strlen (var_adresse[i].nom); k++)
  • {
  • if (var_adresse[i].nom[k]==' ') var_adresse[i].nom[k]= '.';
  • }
  • if (strlen (var_adresse[i].nom) == 0)
  • { var_adresse[i].nom[0]='/'; var_adresse[i].nom[1]='\0'; }
  • gotoxy (strlen ("Prenom: ") + 8, 9);
  • gets (var_adresse[i].prn);
  • for (k=0; k<=strlen (var_adresse[i].prn); k++)
  • {
  • if (var_adresse[i].prn[k]==' ') var_adresse[i].prn[k]= '.';
  • }
  • if (strlen (var_adresse[i].prn) == 0)
  • { var_adresse[i].prn[0]='/'; var_adresse[i].prn[1]='\0'; }
  • gotoxy (strlen ("Adresse: ") + 8, 10);
  • gets (var_adresse[i].adr1);
  • for (k=0; k<=strlen (var_adresse[i].adr1); k++)
  • {
  • if (var_adresse[i].adr1[k]==' ') var_adresse[i].adr1[k]= '.';
  • }
  • if (strlen (var_adresse[i].adr1) == 0)
  • { var_adresse[i].adr1[0]='/'; var_adresse[i].adr1[1]='\0'; }
  • gotoxy (strlen ("Adresse: ") + 8, 11);
  • gets (var_adresse[i].adr2);
  • for (k=0; k<=strlen (var_adresse[i].adr2); k++)
  • {
  • if (var_adresse[i].adr2[k]==' ') var_adresse[i].adr2[k]= '.';
  • }
  • if (strlen (var_adresse[i].adr2) == 0)
  • { var_adresse[i].adr2[0]='/'; var_adresse[i].adr2[1]='\0'; }
  • gotoxy (strlen ("Tele: ") + 8, 12);
  • gets (var_adresse[i].tele);
  • for (k=0; k<=strlen (var_adresse[i].tele); k++)
  • {
  • if (var_adresse[i].tele[k]==' ') var_adresse[i].tele[k]= '.';
  • }
  • if (strlen (var_adresse[i].tele) == 0)
  • { var_adresse[i].tele[0]='/'; var_adresse[i].tele[1]='\0'; }
  • gotoxy (strlen ("Tele bureau: ") + 8, 13);
  • gets (var_adresse[i].teleb);
  • for (k=0; k<=strlen (var_adresse[i].teleb); k++)
  • {
  • if (var_adresse[i].teleb[k]==' ') var_adresse[i].teleb[k]= '.';
  • }
  • if (strlen (var_adresse[i].teleb) == 0)
  • { var_adresse[i].teleb[0]='/'; var_adresse[i].teleb[1]='\0'; }
  • gotoxy (strlen ("Mobile: ") + 8, 14);
  • gets (var_adresse[i].mob);
  • for (k=0; k<=strlen (var_adresse[i].mob); k++)
  • {
  • if (var_adresse[i].mob[k]==' ') var_adresse[i].mob[k]= '.';
  • }
  • if (strlen (var_adresse[i].mob) == 0)
  • { var_adresse[i].mob[0]='/'; var_adresse[i].mob[1]='\0'; }
  • gotoxy (strlen ("E-mail: ") + 8, 15);
  • gets (var_adresse[i].email);
  • for (k=0; k<=strlen (var_adresse[i].email); k++)
  • {
  • if (var_adresse[i].email[k]==' ') var_adresse[i].email[k]= '.';
  • }
  • if (strlen (var_adresse[i].email) == 0)
  • { var_adresse[i].email[0]='/'; var_adresse[i].email[1]='\0'; }
  • }
  • effacement ();
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("Appyer sur une touche pour continuer...");
  • getch();
  • }
  • i++;
  • }
  • gotoxy (strlen ("E-mail: ") + 8, 18);
  • printf ("Recherche terminer ");
  • }
  • void trier ()
  • {
  • int i, j;
  • for (i=1; i<global_i; i++)
  • {
  • for (j=1; j<global_i; j++)
  • {
  • if (strcmp (var_adresse[i].nom, var_adresse[j].nom) < 0 )
  • { var_adresse_trier[1]=var_adresse[i];
  • var_adresse[i]=var_adresse[j];
  • var_adresse[j]=var_adresse_trier[1];
  • }
  • }
  • }
  • }
  • void effacement ()
  • {
  • int i, j;
  • for (i=17; i<=19; i++)
  • for (j=4; j<=77; j++)
  • {
  • gotoxy (j,i);
  • printf (" ");
  • }
  • }
  • 
 #include <stdio.h>
 #include <conio.h>
 #include <string.h>

 #define max_nom 30
 #define max_adresse 50
 #define max_autre 20
 struct adresse
    {
     char nom [max_nom];
     char prn [max_nom];
     char adr1 [max_adresse];
     char adr2 [max_adresse];
     char tele [max_autre];
     char teleb [max_autre];
     char mob [max_autre];
     char email [max_nom];
    };
 struct adresse var_adresse[100], var_adresse_trier[1];
 FILE * fichier;
 void cadre (int x1, int y1, int x2, int y2);
 void cadre_prime (int x1, int y1, int x2, int y2);
 void position_ecriture (int x, int y, char mot [30]);
 void affiche_menu_general ();
 void affiche_sous_menu_general ();
 void interface_application ();
 void ajout_enregistrement_champ ();
 void ajout_enregistrement_champ_moin ();
 void affichages_des_tableaux ();
 void saisie ();
 void consulter ();
 void consulter_effacement_cadres ();
 void consulter_D_F_Bidirection (int x);
 void consulter_Rechercher ();
 void supprimer (int s);
 void liste ();
 void modifier ();
 void trier ();
 void effacement ();
 int  global_i = 1, j;
 char  nom [30];
 main()
 {
  fichier = fopen ("adresse.dat", "a");
  fclose (fichier);
  fichier = fopen ("adresse.dat", "r");
  while (! feof (fichier))
   {
    fscanf (fichier, "\t\n%s %s %s %s %s %s %s %s",
		      var_adresse[global_i].nom,
		      var_adresse[global_i].prn,
		      var_adresse[global_i].adr1,
		      var_adresse[global_i].adr2,
		      var_adresse[global_i].tele,
		      var_adresse[global_i].teleb,
		      var_adresse[global_i].mob,
		      var_adresse[global_i].email);
    global_i++;
   }
  fclose (fichier);
  textbackground (1);
  textcolor (7);
  interface_application ();
  affiche_menu_general ();
  return 0;
 }
   void cadre (int x1, int y1, int x2, int y2)
     {
      int i;
      for (i=x1; i<x2; i++)
       {
	gotoxy (i, y1);
	    printf ("%c", 205);
	    gotoxy (i, y2);
	    printf ("%c", 205);
       }
     for (i=y1; i<y2; i++)
      {
       gotoxy (x1, i);
       printf ("%c", 186);
       gotoxy (x2, i);
       printf ("%c", 186);
      }
       gotoxy (x1, y1);
       printf ("%c", 201);
       gotoxy (x1, y2);
       printf ("%c", 200);
       gotoxy (x2, y1);
       printf ("%c", 187);
       gotoxy (x2, y2);
       printf ("%c", 188);
    }

  void cadre_prime (int x1, int y1, int x2, int y2)
     {
      int i;
      for (i=x1; i<x2; i++)
       {
	gotoxy (i, y1);
	    printf ("%c", 196);
	    gotoxy (i, y2);
	    printf ("%c", 196);
       }
     for (i=y1; i<y2; i++)
      {
       gotoxy (x1, i);
       printf ("%c", 179);
       gotoxy (x2, i);
       printf ("%c", 179);
      }
       gotoxy (x1, y1);
       printf ("%c", 218);
       gotoxy (x1, y2);
       printf ("%c", 192);
       gotoxy (x2, y1);
       printf ("%c", 191);
       gotoxy (x2, y2);
       printf ("%c", 217);
    }

    void position_ecriture (int x, int y, char mot [30])
   {
	gotoxy (x, y);
	printf ("%s", mot);
   }

 void affiche_menu_general ()
  {
     char c = ' ';
     int i=1;

     affiche_sous_menu_general ();
  while (1)
   {
     if (i == 1)
      {
       cadre (2, 21, 8, 23); /* ajout */
       cadre_prime (57, 21, 65, 23);
       cadre_prime (9, 21,  18, 23);
      }
     if (i == 2)
      {
       cadre (9, 21, 18, 23); /* modifier */
       cadre_prime (2, 21, 8, 23);
       cadre_prime (19, 21, 29, 23);
      }
     if (i == 3)
      {
       cadre (19, 21, 29, 23); /* consulter */
       cadre_prime (9, 21,  18, 23);
       cadre_prime (30, 21, 36, 23);
      }
     if (i == 4)
      {
       cadre (30, 21, 36, 23); /* trier */
       cadre_prime (19, 21, 29, 23);
       cadre_prime (37, 21, 46, 23);
      }
     if (i == 5)
      {
       cadre (37, 21, 46, 23); /* imprimer */
       cadre_prime (30, 21, 36, 23);
       cadre_prime (47, 21, 56, 23);
      }
     if (i == 6)
      {
       cadre (47, 21, 56, 23); /* a propos */
       cadre_prime (37, 21, 46, 23);
       cadre_prime (57, 21, 65, 23);
      }
     if (i == 7)
      {

       cadre (57, 21, 65, 23); /* quitter */
       cadre_prime (47, 21, 56, 23);
       cadre_prime (2, 21, 8, 23);
      }
     c = getch();
     if ( i == 1 && c == 13 ) { saisie (); }
     if ( i == 2 && c == 13 ) { modifier (); }
     if ( i == 3 && c == 13 ) { consulter_effacement_cadres (); }
     if ( i == 4 && c == 13 ) { trier (); }
     if ( i == 5 && c == 13 )
	{
	  effacement ();
	  gotoxy (strlen ("E-mail: ") + 8, 18);
	  printf ("vide !");
	}
     if ( i == 6 && c == 13 )
	{
	  gotoxy (20, 10);
	  gotoxy (strlen ("E-mail: "), 18);
	  printf ("Serrat lyes, serrat_lyes@hotmail.com, www.geocities.com/amine808");
	}
     if ( i == 7 && c == 13 )
       {

	 fichier = fopen ("adresse.dat", "w");
	 for (j=1; j<global_i; j++)
	 {
	   if ((var_adresse[j].nom[0]=='.') ||
	       (var_adresse[j].prn[0]=='.') ||
	       (var_adresse[j].adr1[0]=='.') ||
	       (var_adresse[j].adr2[0]=='.') ||
	       (var_adresse[j].tele[0]=='.') ||
	       (var_adresse[j].teleb[0]=='.') ||
	       (var_adresse[j].mob[0]=='.') ||
	       (var_adresse[j].email[0]=='.')) continue;
	   fprintf (fichier, "\t\n%s %s %s %s %s %s %s %s",
			      var_adresse[j].nom,
			      var_adresse[j].prn,
			      var_adresse[j].adr1,
			      var_adresse[j].adr2,
			      var_adresse[j].tele,
			      var_adresse[j].teleb,
			      var_adresse[j].mob,
			      var_adresse[j].email);
	 }

	 fclose (fichier);
	 exit (1);
       }
     if ( c == 0 + 77 ) i++;
     if ( c == 0 + 75 ) i--;
     if ( i > 7 ) i = 1;
     if ( i < 1 ) i = 7;
    }

   }
   /* menu principal a afficher: */
  void interface_application ()
   {
    clrscr();
    cadre (1, 2, 80, 25); /* premier cadre */
    position_ecriture (3, 2, "Carnet d'adresses");
    cadre (3, 3, 78, 20); /* deuxième cadre */
    cadre (2, 21, 7, 23);
    /* donnees du carnet d'adresse a manipulés */
    /*position_ecriture (8, 7, "Numero: ");*/
    position_ecriture (8, 8, "Nom: ");
    position_ecriture (8, 9, "Prenom: ");
    position_ecriture (8, 10, "Adresse: ");
    position_ecriture (8, 12, "Tele: ");
    position_ecriture (8, 13, "Tele bureau: ");
    position_ecriture (8, 14, "Mobile: ");
    position_ecriture (8, 15, "E-mail: ");
    ajout_enregistrement_champ ();
    /* fin donnees du carnet d'adresse a manipulés */
   }
  void affiche_sous_menu_general ()
    {
     /* menu principal a afficher:
      **AJOUT   MODIFIER   SUPPREMER  CONSULTER  TRIER  IMPRIMER  A PROPOS QUITTER** */
     position_ecriture (3, 22, "AJOUT");
     position_ecriture (10, 22, "MODIFIER");
     position_ecriture (20, 22, "CONSULTER");
     position_ecriture (31, 22, "TRIER");
     position_ecriture (38, 22, "        ");
     position_ecriture (48, 22, "A PROPOS");
     position_ecriture (58, 22, "QUITTER");
     cadre_prime (2, 21, 8, 23);
     cadre_prime (9, 21,  18, 23);
     cadre_prime (19, 21, 29, 23);
     cadre_prime (30, 21, 36, 23);
     cadre_prime (37, 21, 46, 23);
     cadre_prime (47, 21, 56, 23);
     cadre_prime (57, 21, 65, 23);
    }
 void ajout_enregistrement_champ ()
    {
	 /* effacement des enciennes rubriques */
	 gotoxy (strlen ("Nom: ") + 8, 8);
	 printf ("..............................");
	 gotoxy (strlen ("Prenom: ") + 8, 9);
	 printf ("..............................");
	 gotoxy (strlen ("Adresse: ") + 8, 10);
	 printf ("..................................................");
	 gotoxy (strlen ("Adresse: ") + 8, 11);
	 printf ("..................................................");
	 gotoxy (strlen ("Tele: ") + 8, 12);
	 printf ("....................");
	 gotoxy (strlen ("Tele bureau: ") + 8, 13);
	 printf (".....................");
	 gotoxy (strlen ("Mobile: ") + 8, 14);
	 printf (".....................");
	 gotoxy (strlen ("E-mail: ") + 8, 15);
	 printf ("..............................");
   }
 void ajout_enregistrement_champ_moin ()
    {
	 /* effacement des enciennes rubriques */
	 gotoxy (strlen ("Nom: ") + 8, 8);
	 printf ("                              ");
	 gotoxy (strlen ("Prenom: ") + 8, 9);
	 printf ("                              ");
	 gotoxy (strlen ("Adresse: ") + 8, 10);
	 printf ("                                                   ");
	 gotoxy (strlen ("Adresse: ") + 8, 11);
	 printf ("                                                   ");
	 gotoxy (strlen ("Tele: ") + 8, 12);
	 printf ("                      ");
	 gotoxy (strlen ("Tele bureau: ") + 8, 13);
	 printf ("                      ");
	 gotoxy (strlen ("Mobile: ") + 8, 14);
	 printf ("                      ");
	 gotoxy (strlen ("E-mail: ") + 8, 15);
	 printf ("                               ");
   }

 void saisie ()
  {
	 int i;
    if ( global_i > 100 ) printf (" ");
    else
    {
	 ajout_enregistrement_champ ();
	 cadre_prime (2, 21, 8, 23);
	 gotoxy (strlen ("Nom: ") + 8, 8);
	 gets (var_adresse[global_i].nom);
	 for (i=0; i<=strlen (var_adresse[global_i].nom); i++)
	  {
	   if (var_adresse[global_i].nom[i]==' ')  var_adresse[global_i].nom[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].nom) == 0)
	   { var_adresse[global_i].nom[0]='/'; var_adresse[global_i].nom[1]='\0'; }
	 gotoxy (strlen ("Prenom: ") + 8, 9);
	 gets (var_adresse[global_i].prn);
	 for (i=0; i<=strlen (var_adresse[global_i].prn); i++)
	  {
	   if (var_adresse[global_i].prn[i]==' ')  var_adresse[global_i].prn[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].prn) == 0)
	   { var_adresse[global_i].prn[0]='/'; var_adresse[global_i].prn[1]='\0'; }
	 gotoxy (strlen ("Adresse: ") + 8, 10);
	 gets (var_adresse[global_i].adr1);
	 for (i=0; i<=strlen (var_adresse[global_i].adr1); i++)
	  {
	   if (var_adresse[global_i].adr1[i]==' ')  var_adresse[global_i].adr1[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].adr1) == 0)
	   { var_adresse[global_i].adr1[0]='/'; var_adresse[global_i].adr1[1]='\0'; }
	 gotoxy (strlen ("Adresse: ") + 8, 11);
	 gets (var_adresse[global_i].adr2);
	 for (i=0; i<=strlen (var_adresse[global_i].adr2); i++)
	  {
	   if (var_adresse[global_i].adr2[i]==' ')  var_adresse[global_i].adr2[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].adr2) == 0)
	   { var_adresse[global_i].adr2[0]='/'; var_adresse[global_i].adr2[1]='\0'; }
	 gotoxy (strlen ("Tele: ") + 8, 12);
	 gets (var_adresse[global_i].tele);
	 for (i=0; i<=strlen (var_adresse[global_i].tele); i++)
	  {
	   if (var_adresse[global_i].tele[i]==' ')  var_adresse[global_i].tele[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].tele) == 0)
	   { var_adresse[global_i].tele[0]='/'; var_adresse[global_i].tele[1]='\0'; }
	 gotoxy (strlen ("Tele bureau: ") + 8, 13);
	 gets (var_adresse[global_i].teleb);
	 for (i=0; i<=strlen (var_adresse[global_i].teleb); i++)
	  {
	   if (var_adresse[global_i].teleb[i]==' ')  var_adresse[global_i].teleb[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].teleb) == 0)
	   { var_adresse[global_i].teleb[0]='/'; var_adresse[global_i].teleb[1]='\0'; }
	 gotoxy (strlen ("Mobile: ") + 8, 14);
	 gets (var_adresse[global_i].mob);
	 for (i=0; i<=strlen (var_adresse[global_i].mob); i++)
	  {
	   if (var_adresse[global_i].mob[i]==' ')  var_adresse[global_i].mob[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].mob) == 0)
	   { var_adresse[global_i].mob[0]='/'; var_adresse[global_i].mob[1]='\0'; }
	 gotoxy (strlen ("E-mail: ") + 8, 15);
	 gets (var_adresse[global_i].email);
	 for (i=0; i<=strlen (var_adresse[global_i].email); i++)
	  {
	   if (var_adresse[global_i].email[i]==' ')  var_adresse[global_i].email[i]= '.';
	  }
	 if (strlen (var_adresse[global_i].email) == 0)
	   { var_adresse[global_i].email[0]='/'; var_adresse[global_i].email[1]='\0'; }
	 global_i++;
    }
  }
  void consulter_effacement_cadres ()
   {
   int i, j,k;
   char cmp, licte;
   for (i=21; i<=23; i++)
     for (j=2; j<=65; j++)
     {
      gotoxy (j,i);
      printf (" ");
     }
      position_ecriture (4, 21, "D");
      position_ecriture (4, 22, "-");
      position_ecriture (8, 21, "<-");
      position_ecriture (12, 21, "->");
      position_ecriture (16, 21, "F");
      position_ecriture (16, 22, "-");
      position_ecriture (20, 21, "Rechercher");
      position_ecriture (20, 22, "-");
      position_ecriture (33, 21, "Supprimer");
      position_ecriture (33, 22, "-");
      position_ecriture (45, 21, "Liste");
      position_ecriture (45, 22, "-");

     /*menu boucler ;*/
    i=1;
    consulter_D_F_Bidirection (1);
    while (1)
    {
     cmp = getch();
     if ( i < 1 )
      { i = 1;
	consulter_D_F_Bidirection (i);
      }
     if ( i > global_i - 1 )
     { i = global_i - 1;
       consulter_D_F_Bidirection (i);
     }
     if  ( cmp == 27 ) break;
     if (( cmp == 68 ) || ( cmp == 100)) consulter_D_F_Bidirection (1);
     if (( cmp == 70 ) || ( cmp == 102)) consulter_D_F_Bidirection (global_i-1);
     if (( cmp == 82 ) || ( cmp == 114)) consulter_Rechercher ();
     if (( cmp == 83 ) || ( cmp == 115)) supprimer (i);
     if (( cmp == 76 ) || ( cmp == 108))
	{
	  while (1)
	  {
	   position_ecriture (45, 21, "     ");
	   position_ecriture (45, 22, " ");
	   liste ();
	   licte = getch();
	   if ( licte == 27 ) break;
	  }
          position_ecriture (45, 21, "Liste");
	  position_ecriture (45, 22, "-");
	  for (k=5; k<=19; k++)
	   for (j=5; j<=77; j++)
	    {
	     gotoxy (j,k);
	     printf (" ");
	    }
	     position_ecriture (8, 8, "Nom: ");
	     position_ecriture (8, 9, "Prenom: ");
	     position_ecriture (8, 10, "Adresse: ");
	     position_ecriture (8, 12, "Tele: ");
	     position_ecriture (8, 13, "Tele bureau: ");
	     position_ecriture (8, 14, "Mobile: ");
	     position_ecriture (8, 15, "E-mail: ");
	     ajout_enregistrement_champ ();
	     consulter_D_F_Bidirection (1);
	}
     if  ( cmp == 0 + 77 )
	   { i++;
	     if ((var_adresse[i].nom[0]== '.') &&
	     (var_adresse[i].prn[0]== '.') &&
	     (var_adresse[i].adr1[0]== '.') &&
	     (var_adresse[i].adr2[0]== '.') &&
	     (var_adresse[i].tele[0]== '.') &&
	     (var_adresse[i].teleb[0]== '.') &&
	     (var_adresse[i].mob[0]== '.') &&
	     (var_adresse[i].email[0]= '.')) continue;
	     consulter_D_F_Bidirection (i);
	   }
     if  ( cmp == 0 + 75 )
	    { i--;
             if ((var_adresse[i].nom[0]== '.') &&
	     (var_adresse[i].prn[0]== '.') &&
	     (var_adresse[i].adr1[0]== '.') &&
	     (var_adresse[i].adr2[0]== '.') &&
	     (var_adresse[i].tele[0]== '.') &&
	     (var_adresse[i].teleb[0]== '.') &&
	     (var_adresse[i].mob[0]== '.') &&
	     (var_adresse[i].email[0]= '.')) continue;

	     consulter_D_F_Bidirection (i);
	    }
    }
    affiche_sous_menu_general ();
   }
  void consulter_D_F_Bidirection (int i)
    {
     ajout_enregistrement_champ_moin ();
     gotoxy (strlen ("Nom: ") + 8, 8);
     puts (var_adresse[i].nom);
     gotoxy (strlen ("Prenom: ") + 8, 9);
     puts (var_adresse[i].prn);
     gotoxy (strlen ("Adresse: ") + 8, 10);
     puts (var_adresse[i].adr1);
     gotoxy (strlen ("Adresse: ") + 8, 11);
     puts (var_adresse[i].adr2);
     gotoxy (strlen ("Tele: ") + 8, 12);
     puts (var_adresse[i].tele);
     gotoxy (strlen ("Tele bureau: ") + 8, 13);
     puts (var_adresse[i].teleb);
     gotoxy (strlen ("Mobile: ") + 8, 14);
     puts (var_adresse[i].mob);
     gotoxy (strlen ("E-mail: ") + 8, 15);
     puts (var_adresse[i].email);
    }



 void consulter_Rechercher ()
  {
   int i;
   effacement ();
   ajout_enregistrement_champ ();
   gotoxy (strlen ("Nom: ") + 8, 8);
   gets (nom);
    if (strlen (nom) == 0) { nom[0]='/'; nom[1]='\0'; }
    i=1;
   while (i<global_i)
    {
      if (strcmp (nom, var_adresse[i].nom) == NULL )
	  { consulter_D_F_Bidirection (i);
	    gotoxy (strlen ("E-mail: ") + 8, 18);
	    printf ("Appyer sur une touche pour continuer...");
	    getch();  }
      i++;
    }
    gotoxy (strlen ("E-mail: ") + 8, 18);
    printf ("Recherche terminer                                ");
   }
 void supprimer (int s)
  {
      effacement ();
      var_adresse[s].nom[0]= '.';
      var_adresse[s].nom[1]= '\0';
      var_adresse[s].prn[0]= '.';
      var_adresse[s].prn[1]= '\0';
      var_adresse[s].adr1[0]= '.';
      var_adresse[s].adr1[1]= '\0';
      var_adresse[s].adr2[0]= '.';
      var_adresse[s].adr2[1]= '\0';
      var_adresse[s].tele[0]= '.';
      var_adresse[s].tele[1]= '\0';
      var_adresse[s].teleb[0]= '.';
      var_adresse[s].teleb[1]= '\0';
      var_adresse[s].mob[0]= '.';
      var_adresse[s].mob[1]= '\0';
      var_adresse[s].email[0]= '.';
      var_adresse[s].email[1]= '\0';
     }

 void liste ()
  { int i, j, k;
    char cmp = ' ';
   for (k=6; k<=19; k++)
     for (j=5; j<=77; j++)
     {
      gotoxy (j,k);
      printf (" ");
     }
    position_ecriture (5, 5, "NOM");
    position_ecriture (30, 5, "PRENOM");
    position_ecriture (51, 5, "E-MAIL");
    j=1;
    for (i=1; i<global_i; i++)
     {
      gotoxy (5, 5+j);
      printf ("%s", var_adresse[i].nom);
      gotoxy (30, 5+j);
      printf ("%s", var_adresse[i].prn);
      gotoxy (51, 5+j);
      printf ("%s", var_adresse[i].email);
      j++;
      if (j > 14 )
       { cmp = getch();
	 if ( cmp == 27 ) break;
	 for (k=6; k<=19; k++)
	  for (j=5; j<=77; j++)
	   {
	    gotoxy (j,k);
	    printf (" ");
	   }
	j=1;
       }
     }
  }
 void modifier ()
  {
   int i, k;
   char c=' ';
   ajout_enregistrement_champ ();
   effacement ();
   gotoxy (strlen ("Nom: ") + 8, 8);
   gets (nom);
    if (strlen (nom) == 0) { nom[0]='/'; nom[1]='\0'; }
    i=1;
   while (i<global_i)
    {
      if (strcmp (nom, var_adresse[i].nom) == NULL )
      {     consulter_D_F_Bidirection (i);
	    gotoxy (strlen ("E-mail: ") + 8, 18);
	    printf ("Appuyer sur une touche pour modifier...ESC pour annuler");
	    if ((c = getch()) != 27 )
	    {
	    effacement ();
	    ajout_enregistrement_champ ();
	    cadre_prime (2, 21, 8, 23);
	    gotoxy (strlen ("Nom: ") + 8, 8);
	    gets (var_adresse[i].nom);
	    for (k=0; k<=strlen (var_adresse[i].nom); k++)
	    {
	     if (var_adresse[i].nom[k]==' ')  var_adresse[i].nom[k]= '.';
	    }
	    if (strlen (var_adresse[i].nom) == 0)
	    { var_adresse[i].nom[0]='/'; var_adresse[i].nom[1]='\0'; }
	    gotoxy (strlen ("Prenom: ") + 8, 9);
	    gets (var_adresse[i].prn);
	    for (k=0; k<=strlen (var_adresse[i].prn); k++)
	    {
	     if (var_adresse[i].prn[k]==' ')  var_adresse[i].prn[k]= '.';
	    }
	   if (strlen (var_adresse[i].prn) == 0)
	    { var_adresse[i].prn[0]='/'; var_adresse[i].prn[1]='\0'; }
	   gotoxy (strlen ("Adresse: ") + 8, 10);
	   gets (var_adresse[i].adr1);
	   for (k=0; k<=strlen (var_adresse[i].adr1); k++)
	   {
	    if (var_adresse[i].adr1[k]==' ')  var_adresse[i].adr1[k]= '.';
	   }
	   if (strlen (var_adresse[i].adr1) == 0)
	    { var_adresse[i].adr1[0]='/'; var_adresse[i].adr1[1]='\0'; }
	   gotoxy (strlen ("Adresse: ") + 8, 11);
	   gets (var_adresse[i].adr2);
	   for (k=0; k<=strlen (var_adresse[i].adr2); k++)
	   {
	    if (var_adresse[i].adr2[k]==' ')  var_adresse[i].adr2[k]= '.';
	   }
	  if (strlen (var_adresse[i].adr2) == 0)
	    { var_adresse[i].adr2[0]='/'; var_adresse[i].adr2[1]='\0'; }
	   gotoxy (strlen ("Tele: ") + 8, 12);
	   gets (var_adresse[i].tele);
	   for (k=0; k<=strlen (var_adresse[i].tele); k++)
	   {
	    if (var_adresse[i].tele[k]==' ')  var_adresse[i].tele[k]= '.';
	   }
	  if (strlen (var_adresse[i].tele) == 0)
	    { var_adresse[i].tele[0]='/'; var_adresse[i].tele[1]='\0'; }
	   gotoxy (strlen ("Tele bureau: ") + 8, 13);
	   gets (var_adresse[i].teleb);
	   for (k=0; k<=strlen (var_adresse[i].teleb); k++)
	    {
	     if (var_adresse[i].teleb[k]==' ')  var_adresse[i].teleb[k]= '.';
	    }
	   if (strlen (var_adresse[i].teleb) == 0)
	    { var_adresse[i].teleb[0]='/'; var_adresse[i].teleb[1]='\0'; }
	   gotoxy (strlen ("Mobile: ") + 8, 14);
	   gets (var_adresse[i].mob);
	   for (k=0; k<=strlen (var_adresse[i].mob); k++)
	   {
	    if (var_adresse[i].mob[k]==' ')  var_adresse[i].mob[k]= '.';
	   }
	  if (strlen (var_adresse[i].mob) == 0)
	    { var_adresse[i].mob[0]='/'; var_adresse[i].mob[1]='\0'; }
	  gotoxy (strlen ("E-mail: ") + 8, 15);
	  gets (var_adresse[i].email);
	  for (k=0; k<=strlen (var_adresse[i].email); k++)
	   {
	    if (var_adresse[i].email[k]==' ')  var_adresse[i].email[k]= '.';
	   }
	  if (strlen (var_adresse[i].email) == 0)
	    { var_adresse[i].email[0]='/'; var_adresse[i].email[1]='\0'; }
	 }
	 effacement ();
	 gotoxy (strlen ("E-mail: ") + 8, 18);
	 printf ("Appyer sur une touche pour continuer...");
	 getch();
      }
      i++;
     }

    gotoxy (strlen ("E-mail: ") + 8, 18);
    printf ("Recherche terminer                                ");

 }
void trier ()
 {
   int i, j;
   for (i=1; i<global_i; i++)
    {
      for (j=1; j<global_i; j++)
	{
	  if (strcmp (var_adresse[i].nom, var_adresse[j].nom) < 0 )
	     { var_adresse_trier[1]=var_adresse[i];
	       var_adresse[i]=var_adresse[j];
	       var_adresse[j]=var_adresse_trier[1];
	       }
	}
     }
 }
void effacement ()
 {
   int i, j;
   for (i=17; i<=19; i++)
     for (j=4; j<=77; j++)
     {
      gotoxy (j,i);
      printf (" ");
     }
 }


 Conclusion

carnet d'adresse que j réaliser pour apprendre le C, il sera reponser, réercrit dans la version 2.

 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 du même auteur

Source avec Zip GESTION DE NOTES

 Sources de la même categorie

Source avec Zip Source avec une capture CONTACTS MANAGER par eapaceinfo
Source avec Zip Source avec une capture CONTACTES BOOK par mature
Source avec Zip Source avec une capture [C++/QT] SLIDEALWAYS, RÉALISEZ DES SLIDES POUR VOTRE SITE AV... par doderic
Source avec Zip Source avec une capture MAILLAGE 3D (VTK + QT) par ammoun007
Source avec Zip Source avec une capture CONVHTML : UN UTILITAIRE DE CONVERSION POUR FICHIERS HTML par pgl10

Commentaires et avis

Commentaire de MuPuF le 18/06/2005 10:22:50

Lol je suis a la masse, je savais memme pas qu'on pouvait faire ça !
# fscanf (fichier, "\t\n%s %s %s %s %s %s %s %s",
#          var_adresse[global_i].nom,
#          var_adresse[global_i].prn,
#          var_adresse[global_i].adr1,
#          var_adresse[global_i].adr2,
#          var_adresse[global_i].tele,
#          var_adresse[global_i].teleb,
#          var_adresse[global_i].mob,
#          var_adresse[global_i].email);

A ta place j'aurai directement fais sauvegarder la structure et ensuite la relire, c'est encore plus court !!!
ça aurait donné ça a la place de fscanf:
fread(&Adresse,1,sizeof(Adresse),Fichier);
et pour l'écriture fwrite(&Adresse,1,sizeof(Adresse),Fichier);

Sinon bravo, ça me rappelle mon agenda en quick basic ou vb3 (lol c'est pas tout jeune)

Commentaire de BruNews le 18/06/2005 10:56:49 administrateur CS

Entièrement d'accord pour les structures, ça réduit les accès disque et ça permet un accès direct.

Commentaire de MuPuF le 18/06/2005 11:09:22

j'ai appris ça hier (j'en ais d'ailleur pas mal appris hier ...)

Commentaire de rdovenon le 14/09/2005 09:47:01

super cool

Commentaire de shadow1779 le 10/12/2005 23:55:27

essai de mettre ca dans un zip car quand on veux le prendre cela fait des dieze a chaque ligne, sur 50ligne de code ca va, mais sur 900... :)

Commentaire de smixamine le 25/01/2010 20:20:29

517 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Rar$DI00.203\carnet.c [Warning] comparison between pointer and integer

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,357 sec (4)

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