Projet c repertoire telephonique
theclass11
Messages postés
7
Statut
Membre
-
theclass11 Messages postés 7 Statut Membre -
theclass11 Messages postés 7 Statut Membre -
salut j'ai besoin d'aide au niveau de l'ajout contact.Si j choisi dajouter un contact ami le programme sarrete.
MERCI
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:
- Projet création d'un répertoire téléphonique
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Creation compte gmail - Guide
- Création site web - Guide
- Localiser un indicatif téléphonique - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
6 réponses
'lut, perso en lançant le code (en virant
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
from human import idiocy
del idiocy
<conio.h>et les appels
systems 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
-get lances le programme dans GDB.
from human import idiocy
del idiocy
je ne vous comprend pas bien.Est ce tu peut etre plus clair
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question