lonsomehell

Untitled

Feb 19th, 2013
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. //Something is wrong with fflush because the program is not going well.Something is stuck in memory.
  5. //Need sometime to figure out what is the probleme.Program is working but glitchy.
  6. typedef struct Personne Personne;
  7. struct Personne
  8. {
  9.     char nom[32];
  10.     char telephone[16];
  11. };
  12. typedef struct carnet carnet;
  13. struct carnet
  14. {
  15.     Personne Tableau[20];
  16.     int compteur;
  17. };
  18. Personne creer(Personne p)
  19. {
  20.     fflush(stdin);
  21.     printf("\nDonner le nom de la personne : ");
  22.     gets(p.nom);
  23.     do{
  24.         fflush(stdin);
  25.         printf("\nDonner le numero du telephone : ");
  26.         gets(p.telephone);
  27.     }while(atoi(p.telephone)==0);
  28.     return p;
  29. };
  30. void affichep(Personne p)
  31. {
  32.     printf("\nle nom de la personne : ");
  33.     puts(p.nom);
  34.     printf("\nle telephone de la personne : ");
  35.     puts(p.telephone);
  36. }
  37. void add(Personne p,carnet *c)
  38. {
  39.     if((*c).compteur<19)
  40.     {
  41.         c->Tableau[c->compteur]=p;
  42.         c->compteur=(c->compteur)+1;
  43.     }
  44.     else
  45.         printf("\nProbleme ajout personne : nombre max atteint");
  46. }
  47. void affichec(carnet c)
  48. {
  49.     int i;
  50.     for(i=0;i<((c.compteur));i++)
  51.     {
  52.         affichep(c.Tableau[i]);
  53.     }
  54. }
  55. void Del(carnet *c)
  56. {
  57.     int n;
  58.     do{
  59.         printf("\nDonner l element a supprimer : ");
  60.         scanf("%d",&n);
  61.         n--;
  62.     }while((n<0)||(n>(*c).compteur-1));//bug here need some fixing.Working at last.
  63.     int i;
  64.     for(i=n;i<(*c).compteur-1;i++)
  65.     {
  66.         c->Tableau[i]=c->Tableau[i+1];
  67.     }
  68.     (c->compteur)--;
  69. }
  70.  
  71. void trier(carnet *c)
  72. {
  73.     Personne aux;
  74.     int i,j;
  75.     for (i=1;i<(c->compteur);i++)
  76.     {
  77.         aux=(c->Tableau[i]);
  78.         j=i;
  79.         while((j>0)&&(strcmp(c->Tableau[j-1].nom,aux.nom)>0))
  80.         {
  81.             c->Tableau[j]=c->Tableau[j-1];
  82.             j--;
  83.         }
  84.         c->Tableau[j]=aux;
  85.     }
  86. }
  87. int recherche(carnet c)
  88. {
  89.     char ch[32];
  90.     printf("\n Donner le nom de la personne : ");
  91.     gets(ch);
  92.     int i=0;
  93.     while((strcmp(c.Tableau[i].nom,ch)!=0)&&(i<(c.compteur+1)))
  94.         i++;
  95.     if(i<=c.compteur)
  96.         return i+1;
  97.     else
  98.         return 0;
  99. }
  100. int main()
  101. {
  102.     char cont;
  103.     int n,r,i;
  104.     Personne p;
  105.     carnet c;
  106.     c.compteur=0;
  107.     printf("##################################################\n");
  108.     printf("#\n#\t\tTP STRUCTURES\n#\n");
  109.     printf("##################################################\n");
  110.     printf("\nDonner la commande voulue:");
  111.     printf("\nA Ajout personne");
  112.     printf("\nD Supprimmer une personne");
  113.     printf("\nV Affichage carnet");
  114.     printf("\nS Recherche d une personne");
  115.     printf("\nT Trie;");
  116.     printf("\nQ Quitte");
  117.     do{
  118.     fflush(stdin);
  119.     fflush(NULL);
  120.     do{
  121.         fflush(stdin);
  122.         fflush(NULL);
  123.         printf("\nWaiting for instructions : ");
  124.         scanf("%c",&cont);
  125.     }while((cont!='A')&&(cont!='D')&&(cont!='V')&&(cont!='S')&&(cont!='T')&&(cont!='Q'));
  126.     fflush(stdin);
  127.     fflush(NULL);
  128.     switch (cont)
  129.     {
  130.         case 'A':
  131.             printf("\nDonner le nombre de personne a ajouter : ");
  132.             fflush(stdout);
  133.             fflush(NULL);
  134.             scanf("%d",&n);
  135.             fflush(stdin);
  136.             fflush(NULL);
  137.             for(i=0;i<n;i++)
  138.             {
  139.                 fflush(NULL);
  140.                 p=creer(p);
  141.                 add(p,&c);
  142.             }
  143.             printf("\n***************Task Done***************");
  144.             break;
  145.         case 'D':
  146.             Del(&c);
  147.             printf("\n***************Task Done***************");
  148.             break;
  149.         case 'V':
  150.             affichec(c);
  151.             printf("\n***************Task Done***************");
  152.             break;
  153.         case 'S':
  154.             r=recherche(c);
  155.             if(r==0)
  156.                 {
  157.                     printf("\n L element rechercher n existe pas");
  158.                     printf("\n***************Task Done***************");
  159.                 }
  160.             else
  161.             {
  162.                 printf("\nLa premiere occurence de l'element recherche est : %d",r);
  163.                 printf("\n***************Task Done***************");
  164.             }
  165.             break;
  166.         case 'T':
  167.             trier(&c);
  168.             break;
  169.         default:
  170.             printf("\nAu revoir\nClosing.....\n");
  171.     }
  172.     }while(cont!='Q');
  173.     return 0;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment