Annuaire Téléphonique

Fermé
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014 - 16 mai 2014 à 17:59
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014 - 17 mai 2014 à 12:53
Bonjour j'ai un projet sur programation d'un annuaire téléphonique mais sa refuse de s'éxécuter AIDEZ MOI. Le voici
 
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
/* Déclaration des structures*/
typedef struct Contact{
      char Nom[15];
      char Prenom[30];
      char Numero[15];
}Contact;
typedef struct Contact_Ami{
      char nom[15];
      char prenom[30];
      char portable[15];
      char domicile[15];
      char email[30];
      char anniversaire[8];
      char ville[20];
      char adresse_postale[15];
}Contact_Ami;
//Déclaration des fonctions.
void Creer_repertoire(Contact *A,Contact_Ami *B,int n);
void ajouter_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_tri_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_tri_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void recherche_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void modifier_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void supprimer_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void vider_repertoire(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void Quitter();
void pause();
Contact *A;
Contact_Ami *B;

int main(){
    int i,n;
    Contact *Nom,*Prenom,*Numero;
    A=(Contact*)malloc(n*sizeof(Contact));
    Contact_Ami *nom,*prenom,*portable,*domicile,*email,*anniversaire,*ville,*adresse_postale;
    B=(Contact_Ami*)malloc(n*sizeof(Contact_Ami));
    int choix;
    do{
    //Affichage du menu
    system("cls");
    printf("\n");
    printf("         ****************REPERTOIRE TELEPHONIQUE***************         \n");
    printf("\n");
    printf("         &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&         \n");
    printf("\n");
    printf("                    MENU DU REPERTOIRE TELEPHONIQUE                     \n");
    printf("      ¦     [1]     © Creer un repertoire                       ¦       \n");
    printf("      ¦     [2]     © Ajouter un contact                        ¦       \n");
    printf("      ¦     [3]     © Afficher les contacts                     ¦       \n");
    printf("      ¦     [4]     © Afficher les contacts avec trie           ¦       \n");
    printf("      ¦     [5]     © Afficher les contacts Amis(e)             ¦       \n");
    printf("      ¦     [6]     © Afficher les contacts Amis(e) avec trie   ¦       \n");
    printf("      ¦     [7]     © Rechercher un contact                     ¦       \n");
    printf("      ¦     [8]     © Modifier un contact                       ¦       \n");
    printf("      ¦     [9]     © Supprimer un contact                      ¦       \n");
    printf("      ¦    [10]     © Vider le repertoire                       ¦       \n");
    printf("      ¦     [0]     © Quitter                                   ¦       \n");
    printf("\n");
    printf("         &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&         \n");
    printf("\n");

//Demander un choix
printf("\t\t\t veuiller choisir une option:  ");
scanf("%d",&choix);
fflush(stdin);
system("cls");
printf("\n");
switch(choix){
    case 1:
       printf(" Nouveau repertoire:\n");
       Creer_repertoire(A,B,n);
       break;

    case 2:
        printf("Nouveau contact:\n");
        ajouter_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 3:
        printf("Liste des contacts:\n");
        afficher_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 4:
        printf("liste des contacts triee:\n");
        afficher_tri_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 5:
        printf("Liste des contacts Amis(e):\n");
        afficher_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 6:
        printf("liste de contacts Amis(e) avec trie:\n");
        afficher_tri_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 7:
        printf("Recherche d'un contact:\n");
        recherche_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 8:
        printf("Modification d'un contact:\n");
        modifier_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 9:
        printf("Supression d'un contact:\n");
        supprimer_contact(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 10:
        printf("Vider le repertoire:\n");
        vider_repertoire(Nom,Prenom,Numero,nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
        break;
    case 0:
        Quitter();
        break;
default:
        printf(" choix invalide ");

     }  printf("\nOperation avec succes...");

     pause();// On appelle une fonction Pause() une fonction qui permet de revenir au menu en appuyant sur une touche quelconque du clavier.

    }while(1);


getch();
return 0;
}
/*Definition des fonctions.*/
//Créer repertoire
void Creer_repertoire(Contact *A,Contact_Ami *B,int n)
{
    int i;
    do{
        printf("Creer un repertoire: ");
        scanf("%d",&n);
    }while(n<0);

    printf("\n");
}
//Ajout d'un contact
void ajouter_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n)
{
    int i;
    char Oui=1,Non=0;
    do{
        printf("Donner le nombre de contact à ajouter:");
        scanf("%d",&n);
    }while(n<0);
        printf("Ce contact est-il ami:O/N");
        scanf("%s %s",&Oui,&Non);
          for(i=1;i<n;i++){
            if(ajouter_contact==1){
                printf("Nom:");
                scanf("%s",&B[i].nom);
                fflush(stdin);
                printf("Prenom:");
                scanf("%s",&B[i].prenom);
                fflush(stdin);
                printf("Portable:");
                scanf("%s",&B[i].portable);
                fflush(stdin);
                printf("Domicile:");
                scanf("%s",&B[i].domicile);
                fflush(stdin);
                printf("Email:");
                scanf("%s",&B[i].email);
                fflush(stdin);
                printf("Anniversaire:");
                scanf("%s",&B[i].anniversaire);
                fflush(stdin);
                printf("Ville:");
                scanf("%s",&B[i].ville);
                fflush(stdin);
                printf("Adresse Postale:");
                scanf("%s",&B[i].adresse_postale);
                }

               if(ajouter_contact==0){
                 printf("Nom:");
                 scanf("%s",&A[i].Nom);
                 fflush(stdin);
                 printf("Prenom:");
                 scanf("%s",&A[i].Prenom);
                 fflush(stdin);
                 printf("Numero:");
                 scanf("%s",A[i].Numero);
                }
            else
                printf("Entrer Invalide!!");
        }
}
        // Affichage des contacts
void afficher_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n)
{
    int i;
  if(n>0)
    for(i=1;i<n;i++){
       printf("Nom:    %s",A[i].Nom);
       printf("Nom:    %s",B[i].nom);
       printf("Prenom:  %s",A[i].Prenom);
       printf("Prenom:  %s",B[i].prenom);
       printf("Numero:  %s",A[i].Numero);
       printf("Portable:  %s",B[i].portable);
       printf("Domicile:   %s",B[i].domicile);
       printf("Email:    %s",B[i].email);
       printf("Anniversaire:   %s",B[i].anniversaire);
       printf("Ville:    %s",B[i].ville);
       printf("Adresse Postale:    %s",B[i].adresse_postale);

    }
    else
      printf("Repertoire Vide!!");
    getch();

}
//Affichage des contacts Amis
void afficher_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n)
{
    int i;
    if(n>0){
     for(i=0;i<n;i++){
         printf("Nom:    %s",B[i].nom);
         printf("Prenom:  %s",B[i].prenom);
         printf("Portable:  %s",B[i].portable);
         printf("Domicile:   %s",B[i].domicile);
         printf("Email:    %s",B[i].email);
         printf("Anniversaire:   %s",B[i].anniversaire);
         printf("Ville:    %s",B[i].ville);
         printf("Adresse Postale:    %s",B[i].adresse_postale);
     }

}     else
         printf("Pas de contact Amis!!!");
     getch();
}

//Affichage des contacts par ordre alphabetique
void afficher_tri_contact(Contact Nom[],Contact Prenom[],Contact Numero[],Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n)
{
    int i,j,imin;
    char ordre[30];
    if(n>0){
      for(i=0;i<=n-2;i++){
          imin=i;
         for(j=i+1;j<=n-1;j++){
             if(stcmp(A[i].Nom,A[j].Nom)>0);{
                   imin=j;
                   strcpy(ordre,A[i].Nom);
                   strcpy(A[i].Nom,A[imin].Nom);
                   strcpy(A[imin].Nom,ordre);
               }

               if(stcmp(A[i].Prenom,A[j].Prenom)>0){
                   imin=j;
                   strcpy(ordre,A[i].Prenom);
                   strcpy(A[i].Prenom,A[imin].Prenom);
                   strcpy(A[imin].Prenom,ordre);
                 }
               if(stcmp(B[i].nom,B[j].nom)>0);{
                   imin=j;
                   strcpy(ordre,B[i].nom);
                   strcpy(B[i].nom,B[imin].nom);
                   strcpy(B[imin].nom,ordre);
                 }
                if(stcmp(B[i].prenom,B[j].prenom)>0){
                   imin=j;
                   strcpy(ordre,B[i].prenom);
                   strcpy(B[i].prenom,B[imin].prenom);
                   strcpy(B[imin].prenom,ordre);
                  }
               printf("\n");
            }

      }

      for(i=0;i<n;i++){
          printf("Nom:    %s",A[i].Nom);
          printf("Nom:    %s",B[i].nom);
          printf("Prenom:  %s",A[i].Prenom);
          printf("Prenom:  %s",B[i].prenom);
          printf("Numero:  %s",A[i].Numero);
          printf("Portable:  %s",B[i].portable);
          printf("Domicile:   %s",B[i].domicile);
          printf("Email:    %s",B[i].email);
          printf("Anniversaire:   %s",B[i].anniversaire);
          printf("Ville:    %s",B[i].ville);
          printf("Adresse Postale:    %s",B[i].adresse_postale);
          printf("\n");

      }
    }
      else
          printf("Pas de contact dans ce repertoire!!!");
    getch();

}
//Tri contact Ami par ordre alphabetique
void afficher_tri_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n)
{

    int i,j,imin;
    char ordre[30];
    if(n>0){
      for(i=0;i<=n-2;i++){
          imin=i;
         for(j=i+1;j<=n-1;j++){
             if(stcmp(B[i].nom,B[j].nom)>0);{
                   imin=j;
                   strcpy(ordre,B[i].nom);
                   strcpy(B[i].nom,B[imin].nom);
                   strcpy(B[imin].nom,ordre);
                 }
                if(stcmp(B[i].prenom,B[j].prenom)>0){
                   imin=j;
                   strcpy(ordre,B[i].prenom);
                   strcpy(B[i].prenom,B[imin].prenom);
                   strcpy(B[imin].prenom,ordre);
                  }
               }printf("\n");
      }

    for(i=0;i<n;i++){
        printf("Nom:    %s",B[i].nom);
          printf("Prenom:  %s",B[i].prenom);
          printf("Portable:  %s",B[i].portable);
          printf("Domicile:   %s",B[i].domicile);
          printf("Email:    %s",B[i].email);
          printf("Anniversaire:   %s",B[i].anniversaire);
          printf("Ville:    %s",B[i].ville);
          printf("Adresse Postale:    %s",B[i].adresse_postale);
          printf("\n");
      }
    }
      else
          printf("Pas de contact dans ce repertoire!!!");
    getch();
}
 
A voir également:

5 réponses

[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
Modifié par [Dal] le 16/05/2014 à 18:51
Salut mimisano,

Je n'ai pas lu le code, qui est trop long.

J'ai tenté de le compiler.

Ce code ne compile pas, car :

- stcmp n'est pas une fonction définie - si tu veux utiliser strcmp de la bibliothèque standard (vu que tu inclues string.h), corrige chaque référence à stcmp en strcmp

- les fonctions suivantes sont utilisées, mais non définies, et l'exécutable ne peut donc être produit : 'recherche_contact', 'modifier_contact', 'supprimer_contact', 'vider_repertoire', 'Quitter'

Quand tu auras fait cela, ton programme compilera probablement et tu pourras générer un exécutable.

Cependant, une compilation avec les warnings (utilise l'option -Wall avec gcc) révèle une floppée d'autres problèmes, que tu devrais comprendre et régler un à un, car si le compilateur génère ces avertissements ce n'est pas pour rien.

Tu es sûr que c'est toi qui a écrit ce code ?


Dal
0
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014
16 mai 2014 à 19:03
bien sur que c'est moi qui l'ai ecrite avec mon binome
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
16 mai 2014 à 19:09
Très bien, bravo.

Cependant, toi et ton binôme, vous devriez compiler plus souvent votre travail, avec les warnings, et tester au fur et à mesure ce que vous écrivez, plutôt que de vous apercevoir après avoir écrit 342 lignes de code, que vous faites appel à des fonctions non implémentées et n'avoir aucune idée de la raison pour laquelle des erreurs de compilation ou de liaison (et de nombreux avertissements) sont générés en tentant de générer l'exécutable.

Bon courage, et bonne continuation.


Dal
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 16/05/2014 à 19:12
0
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014
16 mai 2014 à 19:49
c Papa Alioune Fall
0
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014
16 mai 2014 à 19:46
Mais comme la résolution des erreurs est trop longue on a décidé de de changer de programme tout beigne pour le moment mais on ne peut pas définir la fonction d'affiche, si vous y pouvez quelques choses on attend.Merci
<code c> #include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
/* Déclaration des structures*/
typedef struct Contact{
char Nom[15];
char Prenom[30];
char Numero[15];
}Contact;
/*typedef struct Contact_Ami{
char nom[15];
char prenom[30];
char portable[15];
char domicile[15];
char email[30];
char anniversaire[8];
char ville[20];
char adresse_postale[15];
}Contact_Ami;*/
//Déclaration des fonctions.
/*void Creer_repertoire(Contact *A,Contact_Ami *B,int n);
void ajouter_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void ajouter_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void afficher_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void afficher_tri_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void afficher_tri_contact_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void recherche_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void recherche_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void modifier_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void modifier_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void supprimer_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n);
void supprimer_Ami(Contact_Ami nom[],Contact_Ami prenom[],Contact_Ami portable[],Contact_Ami domicile[],Contact_Ami email[],Contact_Ami anniversaire[],Contact_Ami ville[],Contact_Ami adresse_postale[],int n);
void vider_repertoire(Contact *A,Contact_Ami *B,int n);
void pause();
void Quitter();*/

Contact *A;
//Contact_Ami *B;

int main(){
int i,n;
Contact *Nom,*Prenom,*Numero;
A=(Contact*)malloc(n*sizeof(Contact));
/*Contact_Ami *nom,*prenom,*portable,*domicile,*email,*anniversaire,*ville,*adresse_postale;
B=(Contact_Ami*)malloc(n*sizeof(Contact_Ami));*/
int choix;
do{
//Affichage du menu
system("cls");
printf("\n");
printf(" ****************REPERTOIRE TELEPHONIQUE*************** \n");
printf("\n");
printf(" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& \n");
printf("\n");
printf(" MENU DU REPERTOIRE TELEPHONIQUE \n");
printf(" ¦ [1] © Creer un repertoire ¦ \n");
printf(" ¦ [2] © Ajouter un contact ¦ \n");
printf(" ¦ [3] © Ajouter un contact_Ami ¦ \n");
printf(" ¦ [4] © Afficher les contacts ¦ \n");
printf(" ¦ [5] © Afficher un contact_Ami ¦ \n");
printf(" ¦ [6] © Afficher les contacts avec trie ¦ \n");
printf(" ¦ [7] © Afficher les contacts Amis(e) ¦ \n");
printf(" ¦ [8] © Afficher les contacts Amis(e) avec trie ¦ \n");
printf(" ¦ [9] © Rechercher un contact ¦ \n");
printf(" ¦ [9] © Rechercher un contact_Ami ¦ \n");
printf(" ¦ [10] © Modifier un contact ¦ \n");
printf(" ¦ [11] © Modifier un contact_Ami ¦ \n");
printf(" ¦ [12] © Supprimer un contact ¦ \n");
printf(" ¦ [13] © Supprimer un contact_Ami ¦ \n");
printf(" ¦ [14] © Vider le repertoire ¦ \n");
printf(" ¦ [0] © Quitter ¦ \n");
printf("\n");
printf(" &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& \n");
printf("\n");

//Demander un choix
printf("\t\t\t veuiller choisir une option: ");
scanf("%d",&choix);
fflush(stdin);
system("cls");
printf("\n");
switch(choix){
case 1:
printf(" ***************Nouveau repertoireµ*************\n");
printf("\n");
printf("\n");
Creer_repertoire(A,n);
break;

case 2:
printf("********************Nouveau contact****************\n");
printf("\n");
printf("\n");
ajouter_contact(Nom,Prenom,Numero,n);
break;

/*case 3:
printf("Nouveau contact_Ami:\n");
ajouter_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;*/
case 4:
printf("liste des contacts:\n");
//afficher_contact(Nom,Prenom,Numero,n);
break;
case 5:
printf("Liste des contacts avec tri:\n");
//afficher_contact(Nom,Prenom,Numero,n);
break;
/* case 6:
printf("liste de contacts Amis(e):\n");
afficher_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;
case 7:
printf("liste de contacts Amis(e):\n");
afficher_tri_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;*/
case 8:
printf("Recherche d'un contact:\n");
//recherche_contact(Nom,Prenom,Numero,n);
break;
/*case 9:
printf("Recherche d'un contact Ami:\n");
recherche_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;*/
case 10:
printf("Modifier un contact:\n");
//modifier_contact(Nom,Prenom,Numero,n);
break;
/* case 11:
printf("Modifier un contact_Ami:\n");
modifier_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;*/
case 12:
printf("Suppression d'un contact:\n");
//supprimer_contact(Nom,Prenom,Numero,n);
break;
/* case 13:
printf("Suppression d'un contact_Ami:\n");
supprimer_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
break;*/
case 14:
printf("Répertoire vidé!!");
//vider_repertoire(A,n);
break;
case 0:
//Quitter();
break;
default:
printf(" choix invalide ");
} printf("\nOperation avec succes...");

//pause();// On appelle une fonction Pause() une fonction qui permet de revenir au menu en appuyant sur une touche quelconque du clavier.

}while(1);


getch();
return 0;
}
/*Definition des fonctions.*/
//Créer repertoire
void Creer_repertoire(Contact *A,int n)
{
int i;
do{
printf("Creer un repertoire: ");
scanf("%d",&n);
}while(n<0);

printf("\n");
}
//Ajout d'un contact
void ajouter_contact(Contact Nom,Contact Prenom,Contact Numero,int n)
{
int i;
do{
printf("Donner le nombre de contact a ajouter:");
scanf("%d",&n);
}while(n<=1 && n>100);
for(i=0;i<n;i++)
{
printf("Nom: ");
scanf("%s",&A[i].Nom);
printf("Prenom: ");
scanf("%s",&A[i].Prenom);
printf("Numero: ");
scanf("%s",&A[i].Numero);
printf("\n");
}
}
void afficher_contact(Contact Nom[],Contact Prenom[],Contact Numero[],int n)
{
int i;
if(n>0){
for(i=1;i<n;i++){
printf("Nom: %s",A[i].Nom);
printf("Prenom: %s",A[i].Prenom);
printf("Numero: %s",A[i].Numero);

}
} else
printf("Repertoire Vide!!");
}


/* Pause de saisie */
/*void pause()
{
printf("\n... appuyer sur une touche pour retourner au menu...");
getch();
}

/* Quitter */
/*void quitter()
{
exit(0);
}*/

<\code>
0
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
Modifié par [Dal] le 17/05/2014 à 02:04
Ne retire pas les prototypes des fonctions que tu utilises.

Si tu commentes 80% du code, retire le avant de poster sur le forum, cela sera plus clair, et toi aussi, tu y verras plus clair.

Par ailleurs, poste toujours avec les balises code (tu as mis un antislash à la balise de fermeture, alors que c'est un slash qui est attendu par le forum).

quelques remarques (non exhaustives) :

1.

La variable n déclarée dans ta fonction main n'est pas initialisée, et donc tu ne sais pas quelle valeur elle a, ni quelle valeur tu multiplies à sizeof(Contact) dans ton malloc.

Si le but c'est de faire une allocation de mémoire pour un nombre maximal de contacts, éventuellement indiqué par l'utilisateur, il faudrait demander cette information à l'utilisateur, non ?

Cela ne devrait pas aller dans Creer_repertoire ?

Le prototype ne me parait pas cohérent (outre l'allocation, si tu vas demander une taille, tu devrais, permettre à la fonction appelante de savoir combien de contacts ont été alloués). Par ailleurs, tu ne fais rien d'utile dans la fonction actuelle Creer_repertoire.

2.

Le prototype de ajouter_contact ne me parait pas cohérent non plus.

Tu devrais passer un seul pointeur sur la structure Contact (qui contient Nom, Prenom et Numero), et non pas trois structures Contact (de plus dans ton main, tu l'appelle avec trois pointeurs sur Contact, ce qui fait que les types sont de toutes façons incompatibles). Par ailleurs, tu passes n, mais il n'est initialisé à rien et tu ne t'en sert pas dans la fonction.

Il te faut un moyen de savoir combien de contacts sont présents dans ton répertoire, et si un nouveau contact ne va pas dépasser la capacité allouée.

Si tu compiles avec gcc, ces erreurs te sont signalées en compilant avec les warnings. Ne postes plus de code sans avoir fait cela et avoir fait l'effort de comprendre ce qui est dit. Si tu ne comprend pas un message d'erreur ou un avertissement, poste ta question ici.

Avant de penser à afficher quelque chose, il faudrait déjà que la mémoire que tu alloues contienne quelque chose d'utile.

3.

Lorsque la mémoire est correctement allouée, et correctement remplie, afficher son contenu est trivial.

Par exemple :

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

#define MAX_CONTACTS    10

typedef struct Contact{
    char Nom[BUFSIZ];
    char Prenom[BUFSIZ];
    char Numero[BUFSIZ];
}Contact;

Contact * rep;

int main(void){
    int i;
    char st[BUFSIZ];

    /* allocation de mémoire pour un répertoire de taille MAX_CONTACTS */
    rep = malloc(MAX_CONTACTS * sizeof(Contact));
    if (!rep) {
        fprintf(stderr, "Erreur : impossible d'allouer %d contacts\n", 
                MAX_CONTACTS);
        exit(EXIT_FAILURE);
    }
    /* remplir avec des données d'exemple */
    for (i=0; i<MAX_CONTACTS; i++) {
        sprintf(st, "Nom%d", i);
        strcpy(rep[i].Nom, st);
        sprintf(st, "Prénom%d", i);
        strcpy(rep[i].Prenom, st);
        sprintf(st, "%d", i);
        strcpy(rep[i].Numero, st);
    }
    /* afficher */
    for (i=0; i<MAX_CONTACTS; i++)
        printf("Contact n°%d : %s %s - numéro : %s\n", 
                i, rep[i].Nom, rep[i].Prenom, rep[i].Numero);
    /* libérer la mémoire */
    free(rep);

    return 0;
}


Dal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mimisano Messages postés 6 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 17 mai 2014
17 mai 2014 à 12:53
Ok dacord on va essayer avec sa, puis on vous recontactera si nécessaire. MERCI
0