Tom's Guide > Forum > Programmation > reconnaissance des données dans un repertoire

reconnaissance des données dans un repertoire

Forum Programmation : reconnaissance des données dans un repertoire

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonsoir,

Voici l'énoncé :
je doit constituer un repertoire telephonique en langage C :
on introduit :
- son nom
- son prenom
- son num de telephone
- sa catégorie (parent, rel. pers., rel. prof.).
erreur à prévoir :
-personne deja enregistré : afficher un message d'erreur puis les renseignements de cxette personne.
- catégorie éronnée.

J'arrive a saisir mais des que je tape le meme nom et prenom, ben il n'y a pas de reconnaissan ce.

Merci de m'aider.

Paul


voici ce que j'ai fait :

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef char CH15[16];
  4. typedef char CH15[16];
  5. typedef char CH10[11];
  6. struct PERSONNE
  7. {
  8.     CH15 nom;
  9.     CH15 prenom;
  10.     CH10 tel;
  11.     int cat;
  12. };
  13. void main()
  14. {
  15.     PERSONNE tab[100];
  16.     int nbp=0;
  17.     void INSCR(PERSONNE [],int);
  18.     //
  19.     char code;
  20.     printf("Veuillez entrer un code :\n" );
  21.     while((code=getchar())!='Q')
  22.     {
  23.         switch(code)
  24.         {
  25.         case 'I':
  26.             INSCR(tab,nbp);
  27.             break;
  28.         case 'S':
  29.             break;
  30.         case 'M':
  31.             break;
  32.         case 'T':
  33.             break;
  34.         case 'F':
  35.             break;
  36.         case 'A':
  37.             break;
  38.         case 'P':
  39.             break;
  40.         case 'R':
  41.             break;
  42.         case 'N':
  43.             break;
  44.         case 'B':
  45.             break;
  46.         default:
  47.             printf("Code errone\n" );
  48.         }
  49.         printf("Veuillez entrer un code :\n" );
  50.         fflush(stdin);
  51.     }
  52. }
  53. //fonction INSCRIPTION de la personne
  54. void INSCR(PERSONNE tab[],int nbp)
  55. {
  56.     CH15 nom;
  57.     CH15 prenom;
  58.     CH10 tel;
  59.     int cat;
  60.     fflush(stdin);
  61.     printf("Veuillez entrer un nom :\n" );
  62.     gets(nom);
  63.     printf("Veuillez entrer un prenom :\n" );
  64.     gets(prenom);
  65.     int nb=0,i;
  66.     int Tnb[100];
  67.     for(i=0;i<nbp&&strcmp(nom,tab[i].nom)!=0&&strcmp(prenom,tab[i].prenom)!=0;i=i+1);
  68.     if(i==nbp)
  69.     {
  70.         printf("Veuillez entrer son telephone :\n" );
  71.         gets(tel);
  72.         printf("Veuillez entrer son code categorie :\n" );
  73.         scanf("%d",&cat);
  74.         strcpy(tab[i].nom,nom);
  75.         strcpy(tab[i].prenom,prenom);
  76.         strcpy(tab[i].tel,tel);
  77.         tab[i].cat=cat;
  78.         printf("%s %s %s %d\n",tab[i].nom,tab[i].prenom,tab[i].tel,tab[i].cat);
  79.     }
  80.     else
  81.     {
  82.         Tnb[i]=Tnb[i+1];
  83.         printf("Personne deja enregistre" );
  84.         printf("%s %s %s %d\n",tab[i].nom,tab[i].prenom,tab[i].tel,tab[i].cat);
  85.     }
  86. }

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ton compteur nbp il est jamais incrémenté !! donc tu as toujours zero personne dans ton tableau meme apres une insertion.

Répondre à Zx-81@IDN

zx81 a surment raison!

Répondre à battal

les balises "code" existent :) ?

Code :
  1. int main(int argv, char* argv[])
  2. {
  3.   printf("Hello World\n" );
  4. }

Répondre à lissyx

je suis en 1re année d'iut info !
donc connais pas tout !
et comment je fait alors,
si je ne met pas nbp=0 ca foire !

Répondre à free2048

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. typedef char CH15[16];
  4. typedef char CH10[11];
  5. typedef struct PERSONNE {
  6.     CH15 nom;
  7.     CH15 prenom;
  8.     CH10 tel;
  9.     int cat;
  10. } PERSONNE;
  11. int main( int argc, char **argv)
  12. {
  13.     PERSONNE tab[100];
  14.     int nbp=0;
  15.     void INSCR(PERSONNE [],int *);
  16.     char code;
  17.     printf("Veuillez entrer un code :\n" );
  18.     while((code=getchar())!='Q')
  19.     {
  20.         switch(code)
  21.         {
  22.         case 'I':            INSCR(tab, &nbp);
  23.         break;
  24.         ....
  25.         default:      printf("Code errone\n" );
  26.         }
  27.         printf("Veuillez entrer un code :\n" );
  28.         fflush(stdin);
  29.     }
  30. }
  31. void INSCR(PERSONNE tab[],int *nbp)
  32. {
  33.     CH15 nom;
  34.     CH15 prenom;
  35.     CH10 tel;
  36.     int cat;
  37.     fflush(stdin);
  38.     printf("Veuillez entrer un nom :\n" );
  39.     gets(nom);
  40.     printf("Veuillez entrer un prenom :\n" );
  41.     gets(prenom);
  42.     int nb=0,i;
  43.     int Tnb[100];
  44.     for(i=0;i<*nbp&&strcmp(nom,tab[i].nom)!=0&&strcmp(prenom,tab[i].prenom)!=0;i=i+1);
  45.     if(i==*nbp)
  46.     {
  47.         printf("Veuillez entrer son telephone :\n" );
  48.         gets(tel);
  49.         printf("Veuillez entrer son code categorie :\n" );
  50.         scanf("%d",&cat);
  51.         strcpy(tab[i].nom,nom);
  52.         strcpy(tab[i].prenom,prenom);
  53.         strcpy(tab[i].tel,tel);
  54.         tab[i].cat=cat;
  55.       /* Et voila */
  56.         (*nbp)++;
  57.         printf("%s %s %s %d\n",tab[i].nom,tab[i].prenom,tab[i].tel,tab[i].cat);
  58.     }
  59.     else
  60.     ......
  61. }

Répondre à Zx-81@IDN

désolé mais il m'a l'air d'avoir quelque faute dans ton code ;-)

dans ton premier "while" il manque un = à ton test :-o
donc tu fais une affectation au lieu d'un test!

et pourquoi ta fonction INSCR est écrite après son premier appel :-?

Répondre à rouxbcm

merci zx-81

mais je vien de tester et il marche pas ta correction :(
elle n'arrive pas a detecter la repetition du nom et du prenom :(

Merci encore

Répondre à free2048

Désolé j'ai oublié des parentheses ... chez moi ca marche nickel sous gcc :

Code :
  1. /* Et voila */
  2.     (*nbp)++;



C'est le nombre de fiches qu'on veut incrémenter, pas le pointeur :-(.

Et sinon pour rouxbcm le '=' (et pas == ) dans le while il est normal, c'est meme un classique avec getchar ou autre :-D.

Répondre à Zx-81@IDN
Tom's Guide > Forum > Programmation > reconnaissance des données dans un repertoire
Aller à :

Il y a 1775 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens