Bon Voilà le souci .. j'ai plusieurs prog à faire pour demain ( je m'en tape un sur les listes chainées en ce moment ) ..
mais là je suis trop à la bourre .. si ça branche qq de m'aider ça serai super sympa ... Merci d'avance à tout le monde
/////////////////////////////////////////////////////////////
Soit le programme suivant pour gérer une liste de contacts:
struct contact
{
char NOM[20];
char PRENOM[20];
int AGE;
int TEL;
};
int main (void)
{
char CHOIX;
struct contact C;
struct contact TC[50];
int N=0;
lire_tableau_contact("contact_list.txt", TC, &N);
while(1)
{
printf("Tapez \n\
a : pour ajouter une nouvelle contact \n\
v : pour voir la liste de contacts \n\
c : pour chercher une contact \n\
q : pour quitter \n" );
CHOIX = getch();
if( CHOIX == 'q' )
break;
switch (CHOIX)
{
case 'a':
C = demander_contact();
ajouter_contact( C, TC, &N);
break;
case 'v':
afficher_tableau_contact( TC, &N);
break;
case 'c':
chercher_tableau_contact(TC, &N);
break;
}
}
ecrire_tableau_contact("contact_list.txt", TC, &N);
return 1;
}
Défini les fonctions suivantes:
1. struct contact demander_contact( );
Remplir toutes les champs de la structure contact au clavier et retour la variable rempli.
2. void afficher_contact( struct contact C );
Affiche toutes les champs d'une structure contact donnée.
3. void modifier_contact( struct contact *C );
Demande au utilisateur si il va changer une des champs d'une structure contact transmis à la fonction par son adresse. Si la réponse est "oui", demande une nouvelle valeur pour le champ.
4. void copier_contact( struct contact *C1, struct contact *C2);
Copie toutes les champs de la structure C2 à C1.
Note : Utilise la fonction strcpy( char * str1, char * str2) pour copier la chaîne de caractère str2 à str1
5. void ajouter_contact( struct contact C, struct contact* TC, int *N);
Ajouter la variable C à la fin du tableau TC. La contenu de pointeur N est égal à le nombre d'éléments initial dans TC. Mis à jour le nombre d'éléments.
Note : Suppose qu'il n'y a aucun risque d'excéder la taille maximale de TC.
6. void supprimer_contact( int INDX, struct contact* TC, int *N);
Supprimer l'élément dans cas numéro "INDX" de tableau TC. Décale tout les éléments après l'élément supprime pour remplir le cas vide. Mis à jour le nombre d'éléments.
Note: Utilise la fonction copier_contact( struct contact *C1, struct contact *C2) pour décalage.
7. void afficher_tableau_contact( struct contact* TC, int *N);
Afficher N éléments du tableau TC.
Utilisateur devrait pouvoir modifier ou supprimer un contact affiche.
8. void afficher_tableau_contact_avec_NOM( struct contact* TC, int *N, char *NOM);
Chercher et afficher les éléments du tableau TC lesquelles ont le champ NOM avec la même chaîne de caractères que l'argument NOM.
Utilisateur devrait pouvoir modifier ou supprimer un contact affiche.
Note : Utilise la fonction int strcmp( char *str1, char *str2) qui retour une valeur zéro si les deux chaînes sont identique.
9. void afficher_tableau_contact_avec_AGE( struct contact* TC, int *N, int AGE_MIN, int AGE_MAX);
Chercher et afficher les éléments du tableau TC dans lesquelles la valeur du champ AGE est entre (AGE_MIN, AGE_MAX).
Utilisateur devrait pouvoir modifier ou supprimer un contact affiche.
10. void chercher_tableau_contact(struct contact* TC, int *N);
Demande au utilisateur une argument de recherche dans la tableau TC, soit par NOM, soit par AGE. Selon le choix demande un nom ou un intervalle d'age.
11. void ecrire_tableau_contact( char *NOM_FICHIER, struct contact* TC, int *N);
Ecrire le contenu de tableau TC dans un fichier texte. Le nom du fichier est donne avec l'argument NOM_FICHIER.
12. void lire_tableau_contact( char *NOM_FICHIER, struct contact* TC, int *N);
Lire un tableau de structure contact depuis un fichier écrit par la fonction au dessou