IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Projet de gestion de répertoire téléphonique


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 0
    Points
    0
    Par défaut Projet de gestion de répertoire téléphonique
    Salut ; j'ai un projet de gestion de répertoire téléphonique . J'ai presque tout fait mais je n'arrive pas à créer la fonction qui supprime un contact et celle qui vide le répertoire . svp pouvez-vous m'aider ............... je dois bientôt le rendre

    Concevoir un répertoire téléphonique. Celui sera constitué d’un ensemble de contacts dont certains seront particulier en l’occurrence les contacts ami.

    • Définir une structure Contact destinée à représenter un contact et disposant des fonctionnalités indispensables. Un contact est identifié par son nom et un numéro de téléphone.
    • Définir une structure Ami qui est un contact caractérisé, en plus, par une date de naissance, une adresse postale et une adresse e-mail.
    • Définir les fonctions nécessaires pour afficher la liste des contacts, pour ajouter un contact dans l’annuaire, pour rechercher un contact dans l’annuaire, pour supprimer un contact dans l’annuaire, etc.


    • Dans la méthode main, proposer un menu à l’utilisateur. Ce menu comportera entre autres :
      • Liste de tous les contacts (par ordre alphabétique)
      • Listes d’amis (par ordre alphabétique)
      • Afficher un contact (si le contact en question est un ami, afficher également les informations spécifiques)
      • Rechercher contact (qui recherche et affiche par ordre alphabétique les contacts dont le nom commence le caractère donné en entrée)
      • Ajouter contact
      • Supprimer contact
      • Vider le répertoire
      • Etc.


    N.B : Le contenu du répertoire téléphonique doit être enregistré dans un fichier pour ne pas être perdu.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Note modération : copie depuis le fichier effectuée
    Ouais super. Déjà tu nous files un document à télécharger au lieu de nous le recopier (ça te coûte trop cher de faire ctrl-c dans Word et ctrl-v ici ???) mais en plus ce document se trouve être l'énoncé de ton TP, énoncé dont on a pas grand chose à faire.
    Ce qui aurait été intéressant, c'est que tu nous montres ce que tu avais déjà fait histoire de voir tes structures de données et ta façon de faire...

    A moins que tu nous ai mis l'énoncé pour qu'on te fasse le boulot à ta place...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 0
    Points
    0
    Par défaut répertoire téléphonique
    j ai tout fait . il me reste seulement la fonction supprimer du contact mais si je compile il y a beaucoup d'erreurs . Peux-tu me les corriger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    /*Projet en C de repertoire telephonoque*/
    /*MAMADOU CISSOKO ET IBRAHIMA DRAME*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h>
     
    typedef struct contact{
            char prenom[30];
            char nom[25];
            char numero[20];
            }cont;
     struct ami{
                char Prenom[30];
                char Nom[25];
                char Numero[20];
                char date_naissance[30];
                char email[30];
                char boite_postale[30];
                }AMI;
     /*prototypes des fonctions*/
    void ajout_contact(FILE *f,int n);
    void affiche_contact(FILE *f);
    void creer_repertoire(cont *t,int n);
    void ajouter_contact(cont nom[],cont prenom[],cont numero[],int n);
    void ajouter_contact_ami(AMI Nom[],AMI Prenom[],AMI Numero[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void afficher_contact(cont nom[],cont prenom[],cont numero[],int n);
    void afficher_tri(cont nom[],cont prenom[],cont numero[]);
    void afficher_ami(AMI Numero[],AMI Prenom[],AMI email[],AMI boite_postale[],AMI date_naissance[],int n);
    void rechercher_contact(cont nom[],cont prenom[],cont numero[],int n);
    void rechercher_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void modifier_contact(cont nom[],cont prenom[],int n);
    void supprimer_contact(cont nom[],cont prenom[],cont numero[]);
    void supprimer_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void quitter();
     cont *t;
     AMI *A;
     int n,i;
     cont *prenom,*nom,*numero;
     AMI *Prenom,*Nom,*Numero,*date_naissance,*email,*boite_postale;
     t=(cont*)malloc(n*sizeof(cont));
     A=(AMI*)malloc(n*sizeof(AMI));
     
     int main(){
     int rep,reponse=0;
     do{
      /*Affichage du menu*/
     system("cls");
     printf("\n");
     printf("                                                                                       ");
     printf("\t\t                         GESTION D'UN REPERTOIRE TELEPHONIQUE EN C\n\n");
     printf ("\t===========================<<<<<<<<<<<!!!!!>>>>>>>>>>>============================\n\n");
     printf ("\t{}                                                                               {} \n");
     printf ("\t{}  [1] : ==========<<<<<<<  Creer un repertoire             >>>>>>========      {} \n");
     printf ("\t{}  [2] : ==========<<<<<<<  Ajouter un contact              >>>>>>========      {} \n");
     printf ("\t{}  [3] : ==========<<<<<<<  Afficher les contacts           >>>>>>========      {} \n");
     printf ("\t{}  [4] : ==========<<<<<<<  Afficher les contacts(avec tri) >>>>>>========      {} \n");
     printf ("\t{}  [5] : ==========<<<<<<<  Afficher les contacts d'un ami  >>>>>>========      {} \n");
     printf ("\t{}  [6] : ==========<<<<<<<  Rechercher un contact           >>>>>>========      {} \n");
     printf ("\t{}  [7] : ==========<<<<<<<  Rechercher un ami               >>>>>>========      {} \n");
     printf ("\t{}  [8] : ==========<<<<<<<  Modifier un contact             >>>>>>========      {} \n");
     printf ("\t{}  [9] : ==========<<<<<<<  Supprimer un contact            >>>>>>========      {} \n");
     printf ("\t{}  [10]: ==========<<<<<<<  Supprimer un contact-ami        >>>>>>========      {} \n");
     printf ("\t{}  [11]: ==========<<<<<<<  Quitter                         >>>>>>========      {} \n");
     printf ("\t{}                                                                               {} \n");
     printf ("\t============================<<<<<<<<<<!!!!!>>>>>>>>>>>===========================\n\n");
     printf("Veuillez faire votre choix : ");
     rep = toupper(getchar());
     fflush(stdin);
     system("cls")
     switch(rep){
        case 1:
            printf("\t\t\tCREATION DE REPERTOIRE TELEPHONIQUE\n\n");
            creer_repertoire(t,n);
        break;
        case 2:
            printf("\t\t\tAJOUTER NOUVEAU CONTACT\n\n");
            printf("Voulez-vous ajouter un ami ou un simple contact(0/1)");
            printf("(appuyer sur 1 pour un ami et 0 pour un contact)");
            if(reponse==0)
            ajouter_contact(nom,prenom,numero,n);
            else if(reponse==1)
            ajouter_contact_ami(Nom,Prenom,Numero,date_naissance,email,boite_postale,n);
            break;
        case 3:
            printf("\t\t\tAFFICCHAGE DES CONTACTS\n\n");
            afficher_contact(nom,prenom,numero,n);
            break;
        case 4:
            printf("\t\t\tAFFICHAGE DES CONTACTS PAR ORDRE ALPHABETIQUE\n\n");
            afficher_tri(nom,prenom,numero);
            break;
        case 5 :
            printf("\t\t\tAFFICHAGE DES CONTACTS-AMIS");
            afficher_ami(Nom,Prenom,date_naissance,email,boite_postale,n);
            break;
        case 6:
            printf("\t\t\tRECHERCHER UN CONTACT\n\n");
            rechercher_contact(nom,prenom,numero,n);
            break;
        case 7:
            printf("\t\t\tRECHERCHER UN CONTACT-AMI\n\n");
            rechercher_contact_ami(Nom,Prenom,date_naissance,email,boite_postale,n);
        case 8:
            printf("\t\t\tMODIFICATION D'UN CONTACT\n\n");
            modifier_contact(nom,prenom,numero);
            break;
        case 9:
            printf("\t\t\tSUPPRESSION D'UN CONTACT\n\n");
            supprimer_contact(nom,prenom,cont numero);
            break;
        case 10:
            printf("\t\t\tSUPPRESSION D'UN CONTACT-AMI\n\n");
            supprimer_contact_ami(Nom,Prenom,date_naissance,email,boite_postale,n);
            break;
        case 11:
            quitter();
            break;
        default:
            printf("\n choix incorrect");
        }
        pause();// On appelle une fonction Pause() qui permet de revenir au menu en appuyant sur une touche quelconque du clavier.
     }
     while(1);// J'utilise ici une boucle infini, ça me permet d'afficher le menu une fois qu'une tâche a été réalisé.
    getch();
    return 0;
    }
     
     /*creation des differentes fonctions*/
     
     /*creation du repertoire*/
     
     void creer_repertoire(cont *t,int n);{
     do{
         printf("Votre repertoire a ete cree avec succes........\n");
         printf("Il contiendra au plus 1000 contacts\n");
        } while(rep<=0);
         printf("\n");
     }
     /*Ajouter un contact*/
     
    void ajouter_contact(cont nom[],cont prenom[],cont numero[],int n);
     {
         int i;
         do{
         printf("Donner le nombre de contact a ajouter \n");
         scanf("%d",&n);
              }while(n<=0&&n>1000);
         for(i=0;i<n;i++){
             printf("Donner le numero :            ");
             scanf("%s",t[i].numero);
             fflush(stdin);      /*permet de vider le tampon*/
             printf("Donner le nom :              ");
             scanf("%s",t[i].nom);
             fflush(stdin);
             prinf("Donner le prenom :            ");
             scanf("%s",t[i].prenom);
             fflush(stdin);
         }
        }
     
    /*creation du fichier et ecriture sur le fichier*/
     
    void ajout_contact(FILE *f,int n)
    {
    cont t;
    int i;
    f=fopen("repertoire.txt","w");
    if(f==NULL)
    return 0;
        for(i=0;i<N;i++){
            cont=ajouter_contact();
            fwrite(&t,sizeof(cont),1,f);
        }
        fclose(f);
     
    /*creation du fichier et lecture du contenu du  fichier*/
     
    void affiche_contact(FILE *f)
    {
    cont t;
    f=fopen("repertoire.txt","r");
    if(f==NULL)
    return 0;
        while(!feof(f)){
            fread(&t,sizeof(cont),1,f);
            afficher_contact();
        }
       fclose(f);
     
     
    }
      void ajouter_contact_ami(AMI Nom[],AMI Prenom[],AMI Numero[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
      {
         int i;
         do{
         printf("Donner le nombre de contact a ajouter \n");
         scanf("%d",&n);
         }while(n<=0);
         for(i=0;i<n;i++){
             printf("Donner le nom :                  ");
             scanf("%s",A[i].Nom);
             fflush(stdin);
             printf("Donner le prenom :                          ");
             scanf("%s",A[i].Prenom);
             fflush(stdin);
             printf("Donner le numero :                     ");
             scanf("%s",A[i].Numero);
             fflush(stdin);
             printf("Donner la date de naissance : ");
             scanf("%s",A[i].date_naissance);
             fflush(stdin);
             printf("Donner le mail                        : ");
             scanf("%s",A[i].email);
             fflush(stdin);
             printf("Donner la boite postale            : ");
             scanf("%s",A[i].boite_postale);
             fflush(stdin);
         }
       }
       /*Afficher un contact*/
     
       void afficher_contact(cont nom[],cont prenom[],cont numero[],int n);
       {
           int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
            }
            /*Afficher un contact_ami*/
     
    void afficher_ami(AMI Numero[],AMI Prenom[],AMI email[],AMI boite_postale[],AMI date_naissance[],int n);
      {
          int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact-ami N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&A[i].Prenom);printf("\n");
                   printf("\tNom : %s",&A[i].Nom);printf("\n");
                   printf("\tNumero : %s",A[i].Numero);printf("\n");
                   printf("Date de naissance : ",A[i].date_naissance);printf("\n");
                   printf("Email : %s",A[i].email");printf("\n");
                   printf("Boite postale : ",A[i].boite_postale");
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
            }
     
            /*Afficher un contact avec tri*/
     
    void afficher_tri(cont nom[],cont prenom[],cont numero[]);
      {
          int i,j;
          char nom_echange[30];
          char num_echange[15];
          char pren_echange[30];
          if(n>0){
            for(i=0;i<=n-2;i++)
                for(j=n-1;j>=i+1;j--)
                    if(strcmp(t[j-1].nom,t[j].nom)>0&&strcmp(t[j-1].prenom,t[j].prenom)>0)
                    {
                        strcpy(nom_echange[30],t[j-1].nom);
                        strcpy(t[j-1].nom,t[j].nom);
                        strcpy(t[j].nom,nom_echange[30]);
     
                        strcpy(num_echange[15],t[j-1].numero);
                        strcpy(t[j-1].numero,t[j].numero);
                        strcpy(t[j].numero,num_echange[15]);
     
                        strcpy(pren_echange[30],t[j-1].prenom);
                        strcpy(t[j-1].prenom,t[j].prenom);
                        strcpy(t[j].prenom,pren_echange[30]);
     
                    }printf("\n");
     
            for(i=0;i<n;i++)
        {
            printf("\tNumero : %s",t[i].numero);printf("\n");
            printf("\tNom : %s",t[i].nom);printf("\n");
            printf("\tPrenom : %s",t[i].prenom);printf("\n");
            printf"\n");
        }
        else printf("repertoire vide..");
        }
    }
        /*Rechercher un contact*/
     
    void rechercher_contact(cont nom[],cont prenom[],cont numero[],int n);
    {
        int i,r=0;
        char firstname[30];
        printf("Entrer le prenom a rechercher : ");
        scanf("%s",&firstname);
        if(n>0){
            for(i=0;i<n;i++)
                {
                    if(strcmp(t[i].prenom,firstnamename)==0){
                        break;
                        r=1;
                      }
                    else
                        r=0;
                   if(r==1){
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
                }
            }
            else printf("repertoire vide");
     
     }
        /*Rechercher un contact_ami*/
     
     void rechercher_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    {
        int i,r=0;
        char firstnameami[30];
        printf("Entrer le prenom de l'ami a rechercher : ");
        scanf("%s",&firstnameami);
        if(n>0){
            for(i=0;i<n;i++)
                {
                    if(strcmp(A[i].Prenom,firstnamenameami)==0){
                        break;
                        r=1;
                      }
                    else
                        r=0;
                   if(r==1){
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&A[i].Prenom);printf("\n");
                   printf("\tNom : %s",&A[i].Nom);printf("\n");
                   printf("\tNumero : %s",A[i].Numero);printf("\n");
                   printf("Date de naissance : ",A[i].date_naissance);printf("\n");
                   printf("Email : %s",A[i].email");printf("\n");
                   printf("Boite postale : ",A[i].boite_postale");
                   printf("----------------------------------------------------\n");
                   printf("\n");
                    }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
                }
            }
            else printf("repertoire vide");
     
     }
     
     /* Modification d'un contact */
     
    void modifier_contact(cont nom[],cont prenom[],int n);
    {
        int i;
        int resultat=0;
        char namefirst[30],new_name[30],new_prenom[30],new_numb[15];
        printf("Veuillez saisir le prenom du contact a modifier : ");
        scanf("%s",&namefirst);
        if(n>0){
        for(i=0;i<n;i++)
        {
            if(strcmp(namefirst,t[i].prenom)==0){
                break;
                resultat=1;
            }
            else
                resultat=0;
            if(resultat==1){
                printf("Nouveau numero: ");
                scanf("%s",&new_numb);
                printf("Nouveau nom: ");
                scanf("%s",&new_name);
                printf("Nouveau prenom: ");
                scanf("%s",&new_prenom);
                strncpy(t[i].numero,new_numb);
                strncpy(t[i].nom,new_name);
                strncpy(t[i].prenom,new_prenom);
                printf("\n");
                    }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
            }
     
        }
        else printf("repertoire vide");
    }
    /* Pause de saisie */
    void pause()/* cette fonction nous permettra de retourner au menu en appuyant sur n'importe quelle touche du clavier */
    {
        printf("\n... appuyer sur une touche pour retourner au menu...");
        getch();
    }
     
    /*creation de la fonction quitter */
    void quitter()
    {
        exit(0);
    }

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bon. Qu'est-ce que tu n'as pas compris dans la phrase "un document à télécharger au lieu de nous le recopier" ??? Non, en fait t'as eu raison de ne pas nous le mettre. Quand on voit ce dont il s'agit...

    Alors juste le début parce que ton truc, c'est pas un code !!!
    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    typedef struct contact{
            char prenom[30];
            char nom[25];
            char numero[20];
            }cont;
     struct ami{
                char Prenom[30];
                char Nom[25];
                char Numero[20];
                char date_naissance[30];
                char email[30];
                char boite_postale[30];
                }AMI;
    Question: t'aurais pas l'impression qu'il manque un mot dans la seconde structure ? T'as quoi dans les yeux pour ne pas le voir ???

    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void supprimer_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void quitter();
     cont *t;
     AMI *A;
     int n,i;
     cont *prenom,*nom,*numero;
     AMI *Prenom,*Nom,*Numero,*date_naissance,*email,*boite_postale;
     t=(cont*)malloc(n*sizeof(cont));
     A=(AMI*)malloc(n*sizeof(AMI));
     
     int main(){
    ...
    Question: ça ne te dérange pas trop toutes ces instructions (malloc) en dehors de toute fonction ??? Et que vaut "n" à cet endroit (donc malloc de "combien")...

    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    printf("Veuillez faire votre choix : ");
     rep = toupper(getchar());
     fflush(stdin);
     system("cls")
     switch(rep){
    Question: Les points-virgules, c'est facultatif ???

    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void afficher_contact(cont nom[],cont prenom[],cont numero[],int n);
       {
           int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
    Déjà là, je me demande à quoi servent les paramètres nom[], prenom[] et numero[] et surtout pourquoi chacun de ces paramètres sont tous de type "contact". Ca veut dire (par exemple) que "numero[x]" contient un nom, un prénom et un numero ???
    Accessoirement, pas de "&" pour les printf()

    Donc voilà. Et 91 autres erreurs et warnings du même genre à corriger donc désolé, ce que tu as fait c'est pas du C. Tu as mis des trucs au hasard et secoué en espérant que ça fonctionne !!!

    Quelques remarques en vrac
    • évite les noms de type (et de variables) en majuscules. Les majuscules sont réservées aux macros
    • mets des noms de type commençant par "t_" => t_ami, t_contact
    • mets des noms de variable explicites (t, A !!!???!!!)
    • pas de variables globales. Les globales ont une utilité certes, mais seulement quand on ne peut pas faire autrement (ce qui n'est absolument pas le cas ici)
    • pas la peine de demander à l'utilisateur combien il veut saisir d'amis. Tu les lui fais saisir un par un avec à chaque saisie une possibilité de quitter (par exemple saisir un nom vide = quitter la saisie)
    • je ne vois pas de différence flagrante entre un "contact" et un "ami". Un ami c'est simplement un contact qui a en plus une date de naissance, une adresse mail et une boite postale. Bref tu pourrais tout regrouper dans une même unique structure en y rajoutant un simple booléen ami o/n (ou en considérant qu'une adresse mail vide/non vide permet de différencier contact/ami)
    • pas de fflush(stdin), c'est pas implémenté de partout, son fonctionnement n'est pas garanti (risque de plantage) et quand on sait gérer son clavier on se rend compte que c'est inutile
    • feof() ne sert pas à détecter la fin de fichier. Il permet de détecter, une fois que la lecture s'est arrêtée, si l'arrêt est dû à une fin de fichier ou pas. Si tu réfléchis bien, ce n'est pas la même chose. Parce qu'en faisant while (!feof(...)) + fread() + afficher(), tu fais un fread() de trop où tu ne détectes pas la fin de fichier et donc tu affiches aussi une fois de trop. On détecte la fin de fichier en regardant le code retour de la fonction de lecture !!!


    En ce qui concerne la suppression, ben il faut bien que tu réfléchisses à la façon dont est structuré un fichier.
    Si le fichier affiché à l'écran donne
    • toto
    • titi
    • tata
    • tutu


    il faut bien savoir qu'en réalité, son contenu réel est celui là: "toto\ntiti\ntata\ntutu\n". C'est l'écran qui, arrivant sur un "\n", fait passer le curseur à la ligne suivante ce qui donne un bel affichage bien aligné.

    Partant de là, si tu veux supprimer "titi", tu n'as pas 36 solutions
    1. tu rajoutes dans le fichier un indicateur que tu mets à 1 quand l'info est "supprimée" (suppression logique). A l'affichage, il te suffit de n'afficher que les enregistrements où le flag n'est pas à 1. Avantage: suppression rapide. Inconvénient: ton fichier continue à grossir indéfiniment malgré les suppressions. Ce pb peut-être réglé par un outil de réorganisation (par exemple en réécrivant un nouveau fichier en n'y mettant que les enregistrements "valides" puis en remplaçant l'ancien fichier par le nouveau). C'est ce que fait l'opération "compactage" dans les différents gestionnaires de mails
    2. tu mets tout ton fichier en mémoire au début du programme, tu fais tes insertions/suppressions en mémoire puis tu écrits le fichier quand tu quittes. Avantage: facile à implémenter. Inconvénient: en cas de plantage, tu perds toutes tes modifs.
    3. tu réécris "tata\n" à la place de "titi\n" puis tu réécris "tutu\n" à la place de "tata\n" puis tu tronques le fichier à cet endroit. Avantage: aucun des inconvénients ci-dessus. Inconvénient: suppression super longue
    4. tu réécris "tutu\n" (juste le dernier élément) à la place de "titi\n" puis tu tronques le fichier à la position qui précède le dernier "tutu". Avantage: aucun des inconvénients ci-dessus. Inconvénient: ne fonctionne qu'avec des enregistrements de même taille (ce qui est ton cas si tu admets qu'un "contact" et un "ami" c'est la même chose)


    Citation Envoyé par kousteau Voir le message
    j ai tout fait
    Mouais...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Mai 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2014
    Messages : 7
    Points : 0
    Points
    0
    Par défaut repertoire1
    j'ai corrigé les erreurs maintenant je compile et sa marche mais sans les fichiers car j'ai eu des problémes aves les fichiers. mais je n'arrive toujours pas a faire la fonction "supprimer" et l'enregistrement des contacts sur un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    /*Projet en C de repertoire telephonoque*/
    /*MAMADOU CISSOKO ET IBRAHIMA DRAME*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    #include <ctype.h>
     
    typedef struct contact{
            char prenom[30];
            char nom[25];
            char numero[20];
            }cont;
    typedef struct ami{
                char Prenom[30];
                char Nom[25];
                char Numero[20];
                char date_naissance[30];
                char email[30];
                char boite_postale[30];
                }AMI;
     /*prototypes des fonctions*/
     
    void ajout_contact(FILE *f,int n);
    void affiche_contact(FILE *f);
    void creer_repertoire(cont *t,AMI *A,int n);
    void ajouter_contact(cont nom[],cont prenom[],cont numero[],int n);
    void ajouter_contact_ami(AMI Nom[],AMI Prenom[],AMI Numero[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void afficher_contact(cont nom[],cont prenom[],cont numero[],int n);
    void afficher_tri(cont nom[],cont prenom[],cont numero[]);
    void afficher_ami(AMI Numero[],AMI Prenom[],AMI email[],AMI boite_postale[],AMI date_naissance[],int n);
    void rechercher_contact(cont nom[],cont prenom[],cont numero[],int n);
    void rechercher_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void modifier_contact(cont nom[],cont prenom[],int n);
    void supprimer_contact(cont nom[],cont prenom[],cont numero[]);
    void supprimer_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n);
    void pause();
    void quitter();
     cont *t;
     AMI *A;
     int n,i;
     cont *prenom,*nom,*numero;
     AMI *Prenom,*Nom,*Numero,*date_naissance,*email,*boite_postale;
     
     
     int main(){
     int rep,reponse=0;
     do{
      /*Affichage du menu*/
     system("cls");
     printf("\n");
     printf("\t\t\t\tGESTION D'UN REPERTOIRE TELEPHONIQUE \n\n\n");
     printf ("\t\t===========================<<<<<<<<<<<!!!!!>>>>>>>>>>>============================\n\n");
     printf ("\t\t{}                                                                               {} \n");
     printf ("\t\t{}  [1] : ==========<<<<<<<  Creer un repertoire             >>>>>>========      {} \n");
     printf ("\t\t{}  [2] : ==========<<<<<<<  Ajouter un contact              >>>>>>========      {} \n");
     printf ("\t\t{}  [3] : ==========<<<<<<<  Afficher les contacts           >>>>>>========      {} \n");
     printf ("\t\t{}  [4] : ==========<<<<<<<  Afficher les contacts(avec tri) >>>>>>========      {} \n");
     printf ("\t\t{}  [5] : ==========<<<<<<<  Afficher les contacts d'un ami  >>>>>>========      {} \n");
     printf ("\t\t{}  [6] : ==========<<<<<<<  Rechercher un contact           >>>>>>========      {} \n");
     printf ("\t\t{}  [7] : ==========<<<<<<<  Rechercher un ami               >>>>>>========      {} \n");
     printf ("\t\t{}  [8] : ==========<<<<<<<  Modifier un contact             >>>>>>========      {} \n");
     printf ("\t\t{}  [9] : ==========<<<<<<<  Supprimer un contact            >>>>>>========      {} \n");
     printf ("\t\t{}  [10]: ==========<<<<<<<  Supprimer un contact-ami        >>>>>>========      {} \n");
     printf ("\t\t{}  [11]: ==========<<<<<<<  Quitter                         >>>>>>========      {} \n");
     printf ("\t\t{}                                                                               {} \n");
     printf ("\t\t============================<<<<<<<<<<!!!!!>>>>>>>>>>>===========================\n\n");
     printf("Veuillez faire votre choix : ");
      scanf ("%d",&rep);
     fflush(stdin);
     system("cls");
     switch(rep){
        case 1:
            system("cls");
            printf("\t\t\tCREATION DE REPERTOIRE TELEPHONIQUE\n\n");
            creer_repertoire(t,A,n);
        break;
        case 2:
            printf("\t\t\tAJOUTER NOUVEAU CONTACT\n\n");
            printf("Voulez-vous ajouter un ami ou un simple contact(0/1)\n");
            do{
            printf("(appuyer sur 1 pour un ami et 0 pour un contact)\n");
            scanf("%d",&reponse);
            }while(reponse!=0&&reponse!=1);
            if(reponse==1)
            ajouter_contact_ami(Nom,Prenom,Numero,date_naissance,email,boite_postale,n);
           else
            ajouter_contact(nom,prenom,numero,n);
            break;
        case 3:
            printf("\t\t\tAFFICCHAGE DES CONTACTS\n\n");
            afficher_contact(nom,prenom,numero,n);
            break;
        case 4:
            printf("\t\t\tAFFICHAGE DES CONTACTS PAR ORDRE ALPHABETIQUE\n\n");
            afficher_tri(nom,prenom,numero);
            break;
        case 5 :
            printf("\t\t\tAFFICHAGE DES CONTACTS-AMIS\n\n");
            afficher_ami(Nom,Prenom,date_naissance,email,boite_postale,n);
            break;
        case 6:
            printf("\t\t\tRECHERCHER UN CONTACT\n\n");
            rechercher_contact(nom,prenom,numero,n);
            break;
        case 7:
            printf("\t\t\tRECHERCHER UN CONTACT-AMI\n\n");
            rechercher_contact_ami(Nom,Prenom,date_naissance,email,boite_postale,n);
        case 8:
            printf("\t\t\tMODIFICATION D'UN CONTACT\n\n");
            modifier_contact(nom,prenom,n);
            break;
        case 11:
            quitter();
            break;
        default:
            printf("\n choix incorrect");
            }
        pause();// On appelle une fonction Pause() qui permet de revenir au menu en appuyant sur une touche quelconque du clavier.
     
     }while(1);// J'utilise ici une boucle infini, ça me permet d'afficher le menu une fois qu'une tâche a été réalisé.
    getch();
    return 0;
    }
     /*creation des differentes fonctions*/
     
     /*creation du repertoire*/
      void creer_repertoire(cont *t,AMI *A,int n)
     {
     do{
         t=(cont*)malloc(n*sizeof(cont));
         A=(AMI*)malloc(n*sizeof(AMI));
         printf("Votre repertoire a ete cree avec succes........\n");
         printf("Il contiendra au plus 1000 contacts\n");
        } while(n<=0);
         printf("\n");
     }
     /*Ajouter un contact*/
     
    void ajouter_contact(cont nom[],cont prenom[],cont numero[],int n)
     {
         int i;
         do{
         printf("Donner le nombre de contact a ajouter \n");
         scanf("%d",&n);
              }while(n<=0&&n>1000);
         for(i=0;i<n;i++){
             printf("Donner le numero :");
             scanf("%s",t[i].numero);
             printf("Donner le nom :  ");
             scanf("%s",t[i].nom);
             printf("Donner le prenom : ");
             scanf("%s",t[i].prenom);
     
         }
        }
     
      void ajouter_contact_ami(AMI Nom[],AMI Prenom[],AMI Numero[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n)
      {
         int i;
         do{
         printf("Donner le nombre de contact a ajouter \n");
         scanf("%d",&n);
         }while(n>=1000);
         for(i=0;i<n;i++){
             printf("Donner le nom : ");
             scanf("%s",A[i].Nom);
             printf("Donner le prenom : ");
             scanf("%s",A[i].Prenom);
             printf("Donner le numero : ");
             scanf("%s",A[i].Numero);
             printf("Donner la date de naissance : ");
             scanf("%s",A[i].date_naissance);
             printf("Donner le mail : ");
             scanf("%s",A[i].email);
             printf("Donner la boite postale : ");
             scanf("%s",A[i].boite_postale);
     
         }
     }
       /*Afficher un contact*/
     
       void afficher_contact(cont nom[],cont prenom[],cont numero[],int n)
       {
           int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
            }
            /*Afficher un contact_ami*/
     
    void afficher_ami(AMI Numero[],AMI Prenom[],AMI email[],AMI boite_postale[],AMI date_naissance[],int n)
      {
          int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact-ami N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&A[i].Prenom);printf("\n");
                   printf("\tNom : %s",&A[i].Nom);printf("\n");
                   printf("\tNumero : %s",A[i].Numero);printf("\n");
                   printf("Date de naissance : ",A[i].date_naissance);printf("\n");
                   printf("Email : %s",A[i].email);printf("\n");
                   printf("Boite postale : %s",A[i].boite_postale);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
            }
     
            /*Afficher un contact avec tri*/
     
    void afficher_tri(cont nom[],cont prenom[],cont numero[])
      {
          int i,j;
          char nom_echange[30];
          char num_echange[15];
          char pren_echange[30];
          if(n>0){
            for(i=0;i<=n-2;i++)
                for(j=n-1;j>=i+1;j--)
                    if(strcmp(t[j-1].nom,t[j].nom)>0&&strcmp(t[j-1].prenom,t[j].prenom)>0)
                    {
                        strcpy(nom_echange[30],t[j-1].nom);
                        strcpy(t[j-1].nom,t[j].nom);
                        strcpy(t[j].nom,nom_echange[30]);
     
                        strcpy(num_echange[15],t[j-1].numero);
                        strcpy(t[j-1].numero,t[j].numero);
                        strcpy(t[j].numero,num_echange[15]);
     
                        strcpy(pren_echange[30],t[j-1].prenom);
                        strcpy(t[j-1].prenom,t[j].prenom);
                        strcpy(t[j].prenom,pren_echange[30]);
     
                    }printf("\n");
     
            for(i=0;i<n;i++)
        {
            printf("\tNumero : %s",t[i].numero);printf("\n");
            printf("\tNom : %s",t[i].nom);printf("\n");
            printf("\tPrenom : %s",t[i].prenom);printf("\n");
            printf("\n");
        }
       } else printf("repertoire vide..");
     
    }
        /*Rechercher un contact*/
     
    void rechercher_contact(cont nom[],cont prenom[],cont numero[],int n)
    {
        int i,r=0;
        char firstname[30];
        printf("Entrer le prenom a rechercher : ");
        scanf("%s",&firstname);
        if(n>0){
            for(i=0;i<n;i++)
                {
                    if(strcmp(t[i].prenom,firstname)==0){
                        break;
                        r=1;
                      }
                    else
                        r=0;
                   if(r==1){
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
                }
            }
            else printf("repertoire vide");
     
     }
        /*Rechercher un contact_ami*/
     
     void rechercher_contact_ami(AMI Nom[],AMI Prenom[],AMI date_naissance[],AMI email[],AMI boite_postale[],int n)
    {
        int i,r=0;
        char firstnameami[30];
        printf("Entrer le prenom de l'ami a rechercher : ");
        scanf("%s",&firstnameami);
        if(n>0){
            for(i=0;i<n;i++)
                {
                    if(strcmp(A[i].Prenom,firstnameami)==0){
                        break;
                        r=1;
                      }
                    else
                        r=0;
                   if(r==1){
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&A[i].Prenom);printf("\n");
                   printf("\tNom : %s",&A[i].Nom);printf("\n");
                   printf("\tNumero : %s",A[i].Numero);printf("\n");
                   printf("Date de naissance : ",A[i].date_naissance);printf("\n");
                   printf("Email : %s",A[i].email);printf("\n");
                   printf("Boite postale : %s",A[i].boite_postale);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                    }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
                }
            }
            else printf("repertoire vide");
     
     }
     
     /* Modification d'un contact */
     
    void modifier_contact(cont nom[],cont prenom[],int n)
    {
        int i;
        int resultat=0;
        char namefirst[30],new_name[30],new_prenom[30],new_numb[15];
        printf("Veuillez saisir le prenom du contact a modifier : ");
        scanf("%s",&namefirst);
        if(n>0){
        for(i=0;i<n;i++)
        {
            if(strcmp(namefirst,t[i].prenom)==0){
                break;
                resultat=1;
            }
            else
                resultat=0;
            if(resultat==1){
                printf("Nouveau numero: ");
                scanf("%s",&new_numb);
                printf("Nouveau nom: ");
                scanf("%s",&new_name);
                printf("Nouveau prenom: ");
                scanf("%s",&new_prenom);
                strcpy(t[i].numero,new_numb);
                strcpy(t[i].nom,new_name);
                strcpy(t[i].prenom,new_prenom);
                printf("\n");
                    }
                   else
                   printf("ce nom n'existe pas dans le repertoire");
            }
     
        }
        else printf("repertoire vide");
    }
    /* Pause de saisie */
    void pause()/* cette fonction nous permettra de retourner au menu en appuyant sur n'importe quelle touche du clavier */
    {
        printf("\n... appuyer sur une touche pour retourner au menu...");
        getch();
    }
     
    /*creation de la fonction quitter */
    void quitter()
    {
        exit(0);
    }

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Ben oui. Tu as supprimé les erreurs de syntaxe donc ça compile mais tu n'as pas supprimé les erreurs de raisonnement !!!
    Exemples
    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case 3:
            printf("\t\t\tAFFICCHAGE DES CONTACTS\n\n");
            afficher_contact(nom,prenom,numero,n);
            break;
    A quoi servent les paramètres "nom", "prenom" et "numero" ici ? Et que contiennent-ils ? Allons voir la fonction

    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void afficher_contact(cont nom[],cont prenom[],cont numero[],int n)
       {
           int i;
           if(n>0){
               for(i=0;i<n;i++){
                   printf("\t=====================================================");
                   printf("\t\tInformations sur le contact N i+1\n\n");
                   printf("\t=====================================================");printf("\n\n");
                   printf("----------------------------------------------------\n");
                   printf("\tPrenom : %s",&t[i].prenom);printf("\n");
                   printf("\tNom : %s",&t[i].nom);printf("\n");
                   printf("\tNumero : %s",&t[i].numero);
                   printf("----------------------------------------------------\n");
                   printf("\n");
                   }
                }else
                    printf("Repertoire vide!!");
            }
            /*Afficher un contact_ami*/
    }
    Déjà, tu mettrais ton "n" en "unsigned" et t'aurais plus à te torturer pour savoir s'il est supérieur à 0. Ou mieux, en "size_t" ce qui est le type conventionnel pour les indices de tableaux. Toutefois on ne connaitra jamais sa valeur. Quand aux paramètres "nom", "prenom" et "numero" qui restent des "tableaux de contacts" resteront pour moi un mystère de plus.

    Citation Envoyé par kousteau Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     /*creation du repertoire*/
      void creer_repertoire(cont *t,AMI *A,int n)
     {
         do{
             t=(cont*)malloc(n*sizeof(cont));
             A=(AMI*)malloc(n*sizeof(AMI));
             printf("Votre repertoire a ete cree avec succes........\n");
             printf("Il contiendra au plus 1000 contacts\n");
            } while(n<=0);
         printf("\n");
     }
    Jolie fuite de mémoire tous ces malloc en boucle tous stockés dans une unique variable. Et la valeur de "n", comme toujours...

    Donc non, il y a plus de mauvais que de bon donc en fait il y a tout à refairerepenser. Déjà pourquoi faire un "malloc" pour une zone qui contiendra (c'est écrit) au plus 1000 éléments ? Moi, j'ai besoin de 1000 éléments je crée un tableau de 1000 !!!
    Et pour le reste, mes remarques en vrac d'hier restent d'actualité.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 2
    Points : 0
    Points
    0
    Par défaut salut au faite est ce que je pourrez avoir le bon code pour le tester
    Citation Envoyé par kousteau Voir le message
    Salut ; j'ai un projet de gestion de répertoire téléphonique . J'ai presque tout fait mais je n'arrive pas à créer la fonction qui supprime un contact et celle qui vide le répertoire . svp pouvez-vous m'aider ............... je dois bientôt le rendre

    Concevoir un répertoire téléphonique. Celui sera constitué d’un ensemble de contacts dont certains seront particulier en l’occurrence les contacts ami.

    • Définir une structure Contact destinée à représenter un contact et disposant des fonctionnalités indispensables. Un contact est identifié par son nom et un numéro de téléphone.
    • Définir une structure Ami qui est un contact caractérisé, en plus, par une date de naissance, une adresse postale et une adresse e-mail.
    • Définir les fonctions nécessaires pour afficher la liste des contacts, pour ajouter un contact dans l’annuaire, pour rechercher un contact dans l’annuaire, pour supprimer un contact dans l’annuaire, etc.


    • Dans la méthode main, proposer un menu à l’utilisateur. Ce menu comportera entre autres :
      • Liste de tous les contacts (par ordre alphabétique)
      • Listes d’amis (par ordre alphabétique)
      • Afficher un contact (si le contact en question est un ami, afficher également les informations spécifiques)
      • Rechercher contact (qui recherche et affiche par ordre alphabétique les contacts dont le nom commence le caractère donné en entrée)
      • Ajouter contact
      • Supprimer contact
      • Vider le répertoire
      • Etc.


    N.B : Le contenu du répertoire téléphonique doit être enregistré dans un fichier pour ne pas être perdu.

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 20
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2022
    Messages : 2
    Points : 0
    Points
    0
    Par défaut salut au faite est ce que je pourrez avoir le bon code pour le tester
    salut au faite est ce que je pourrez avoir le bon code pour le tester

Discussions similaires

  1. Architecture projet de gestion avec dynamisme
    Par n8ken dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 15
    Dernier message: 20/04/2009, 15h41
  2. Rendre invisible projet dans Gestion de tâches
    Par cocot dans le forum Delphi
    Réponses: 2
    Dernier message: 29/01/2007, 16h45
  3. [MS-DOS] Gestion des répertoires
    Par raph707 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 19/09/2006, 18h13
  4. [Access] Gestion de standard téléphonique
    Par Fiorentina dans le forum WinDev
    Réponses: 4
    Dernier message: 14/04/2006, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo