Projet c repertoire telephonique

Fermé
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014 - Modifié par Twinuts le 20/05/2014 à 09:34
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014 - 21 mai 2014 à 18:12
salut j'ai besoin d'aide au niveau de l'ajout contact.Si j choisi dajouter un contact ami le programme sarrete.
MERCI



#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;
  char option;
  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,B,n);
	break;

      case 2:
	printf("\t voulez vous ajouter un contact Ami ( y / n ): ");
	scanf("%s",&option);
	fflush(stdin);
	system("cls");
	printf("\n");
	switch(option){
	  case 'n':
	    printf("********************Ajouter un contact****************\n");
	    printf("\n");
	    printf("\n");
	    ajouter_contact(Nom,Prenom,Numero,n);
	    break;
	  case 'y':
	    printf("****************Ajouter un contact Ami****************\n");
	    printf("\n");
	    printf("\n");
	    ajouter_contact_Ami(nom,prenom,portable,domicile,email,anniversaire,ville,adresse_postale,n);
	    break;
	  default:
	    printf(" choix invalide ");
	} 
	printf("\nOperation avec succes...");



      /*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,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[],int n)
{
  int i;
  do{
    printf("Donner le nombre de contact a ajouter:");
    scanf("%d",&n);
  }while(n<0 || 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 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)
{
  int j,m;
  do{
    printf("Donner le nombre de contact a ajouter:");
    scanf("%d",&m);
  }while(m<0 || m>100);
  for(j=0;j<m;j++)
  {
    printf("Nom:");
    scanf("%s",&B[j].nom);
    printf("Prenom: ");
    scanf("%s",&B[j].prenom);
    printf("Portable: ");
    scanf("%s",&B[j].portable);
    printf("Domicile: ");
    scanf("%s",&B[j].domicile);
    printf("Email: ");
    scanf("%s",&B[j].email);
    printf("Anniversaire: ");
    scanf("%s",&B[j].anniversaire);
    printf("Ville: ");
    scanf("%s",&B[j].ville);
    printf("Adresse_postale: ");
    scanf("%s",&B[j].adresse_postale);
    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);
  }*/
A voir également:

6 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 2
20 mai 2014 à 09:35
J'ai modifié ton message en ajoutant les balises code...
0
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014
20 mai 2014 à 19:49
le probleme n'est toujour pas resolu
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
Modifié par gravgun le 20/05/2014 à 19:57
'lut, perso en lançant le code (en virant
<conio.h>
et les appels
system
s qui sont pas portables (vire-les d'ailleurs)) sur mon Linux avec GCC 4.9.0 64 bit, ça marche correctement...
Append à te servir d'un débogueur et trace d'où viens le problème en analysant la pile des appels. Ce débogueur varie selon ton environnement de dev, si c'est du MS Visual Studio le déboguer est intégré, sinon d'autres IDE le gèrent aussi (Code::Blocks, KDevelop); ou si tu fait du GCC en ligne de commande, compile avec
-g
et lances le programme dans GDB.
from human import idiocy
del idiocy
0
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014
20 mai 2014 à 20:40
je ne vous comprend pas bien.Est ce tu peut etre plus clair
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
20 mai 2014 à 20:43
Je peut pas faire plus clair; du moment que ça marche pour moi, c'est que ton code n'est pas totalement défectueux et vient d'un endroit moins évident, d'où l'utilisation d'un débogueur afin d'analyser ce qui cause la fermeture du programme. Tu lances le débogueur, ajoutes des points d'arrêts dans ta fonction d'ajout, éxécute le programme donc étape par étape, et regarde ce qui fait planter.
0

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

Posez votre question
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014
21 mai 2014 à 17:38
okay.
Mais je sais pas comment utiliser le debogueur
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
21 mai 2014 à 17:39
Et bah cherche, y'a plein de documentation sur le net...
0
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014
21 mai 2014 à 17:46
okay mais tu ne connait un exemple de debogueur
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
21 mai 2014 à 17:50
Relit mon premier post et tu trouveras...
0
theclass11 Messages postés 6 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 21 mai 2014
21 mai 2014 à 18:12
ok merci
0