Grand moche!

Grand moche! - C - Programmation

Marsh Posté le 29-02-2012 à 11:51:14    

j'ai programmé un code qui n'est pas très joli, pourriez vous m'aider SVP?
Un bug: le choix 2 si je choisissais le numéro pour créer une nouvelle figure ou il y a déjà une figure, il sait pas remplacer.
 
 
 
 

Code :
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<conio.h>
  4. #include<time.h>
  5. #include<math.h>
  6. void afficherLesChoix()
  7. {
  8.     printf("\n1. Lister les figures d%cj%c cr%c%ces", 130, 133, 130, 130);
  9.     printf("\n2. Cr%cer une nouvelle figure", 130);
  10.     printf("\n3. Modifier les caract%cristiques d'une figure", 130);
  11.     printf("\n4. Supprimer une figure" );
  12.     printf("\n5. D%ccaler une figure", 130);
  13.     printf("\n6. Permuter 2 figures" );
  14.     printf("\n7. Quitter l'application\n" );
  15. }
  16. int main()
  17. {   
  18. const int NBETIQ = 10;
  19. typedef char etiquettetype[NBETIQ];
  20. const int NBFIG = 11;
  21. int i;
  22. int j;
  23. int accu = 0;
  24. int choix;
  25. int choose;
  26. int choosetype;
  27. int numsupprime;
  28. int decaler;
  29. int perm1, perm2;
  30. int sens, decalage;
  31. float longueur;
  32. float numlettre;
  33. char replace;
  34. struct point
  35. {
  36.    float x; float y;   
  37. };
  38. struct line
  39. {
  40.    struct point p1;
  41.    struct point p2;
  42. };
  43. struct rectangle
  44. {
  45.    struct point pcoin;
  46.    float largeur; float hauteur;   
  47. };
  48. struct cercle
  49. {
  50.    struct point pcentre;
  51.    float rayon;
  52. };
  53. struct figures
  54. {
  55.        etiquettetype etiquette;
  56.        int RVB1, RVB2, RVB3;
  57.        struct point figurespoint;
  58.        struct line figuresline;
  59.        struct rectangle figuresrectangle;
  60.        struct cercle figurescercle;
  61.        int type;
  62. };
  63. struct figures fig[NBFIG];
  64. struct figures temp[0];
  65. for(i = 1; i < NBFIG; i++)
  66. {
  67.     fig[i].etiquette[0]= 'N';
  68.     fig[i].etiquette[1]= 'O';
  69.     fig[i].etiquette[2]= 'N';
  70.     fig[i].etiquette[3]= 'E';
  71.     fig[i].etiquette[4]= '\0';
  72.     fig[i].RVB1 = 0;
  73.     fig[i].RVB2 = 0;
  74.     fig[i].RVB3 = 0;
  75.     fig[i].figurespoint.x = 0.0;
  76.     fig[i].figurespoint.y = 0.0;
  77.     fig[i].figuresline.p1.x = 0.0;
  78.     fig[i].figuresline.p1.y = 0.0;
  79.     fig[i].figuresline.p2.x = 0.0;
  80.     fig[i].figuresline.p2.y = 0.0;   
  81.     fig[i].figuresrectangle.pcoin.x = 0.0;
  82.     fig[i].figuresrectangle.pcoin.y = 0.0;
  83.     fig[i].figuresrectangle.largeur = 0.0;
  84.     fig[i].figuresrectangle.hauteur = 0.0;   
  85.     fig[i].figurescercle.pcentre.x = 0.0;
  86.     fig[i].figurescercle.pcentre.y = 0.0;
  87.     fig[i].figurescercle.rayon = 0.0;
  88.     fig[i].type = 0;
  89. }
  90.     temp[0].etiquette[0] = '\0';
  91.     temp[0].RVB1 = 0;
  92.     temp[0].RVB2 = 0;
  93.     temp[0].RVB3 = 0;
  94.     temp[0].figurespoint.x = 0.0;
  95.     temp[0].figurespoint.y = 0.0;
  96.     temp[0].figuresline.p1.x = 0.0;
  97.     temp[0].figuresline.p1.y = 0.0;
  98.     temp[0].figuresline.p2.x = 0.0;
  99.     temp[0].figuresline.p2.y = 0.0;   
  100.     temp[0].figuresrectangle.pcoin.x = 0.0;
  101.     temp[0].figuresrectangle.pcoin.y = 0.0;
  102.     temp[0].figuresrectangle.largeur = 0.0;
  103.     temp[0].figuresrectangle.hauteur = 0.0;   
  104.     temp[0].figurescercle.pcentre.x = 0.0;
  105.     temp[0].figurescercle.pcentre.y = 0.0;
  106.     temp[0].figurescercle.rayon = 0.0;
  107.     temp[0].type = 0;
  108.     afficherLesChoix();
  109.     printf("\nEntrez un choix: " );
  110.     scanf("%d",&choix);
  111.    
  112.     do
  113.     {
  114.        if (choix < 1 || choix > 7)
  115.         {
  116.            printf("Please pick a number between 1 and 7" );
  117.            getch();     
  118.         }
  119.         switch (choix)
  120.         {
  121.             case 0 : break;
  122.             case 1 :
  123.                  {
  124.                       printf("\nNum%cro\tType\tEtiquette\n",130);
  125.                       for(i = 1; i < NBFIG; i++)
  126.                          {
  127.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  128.                          }
  129.                  }
  130.                   break;
  131.             case 2 :
  132.                
  133.                  {
  134.                       printf("\nNum%cro\tType\tEtiquette\n",130);
  135.                       for(i = 1; i < NBFIG; i++)
  136.                          {
  137.                             //if (fig[i].type == 0)
  138.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  139.                          }
  140.                       printf("\nplease choose the number of the figure that you wish to modify: " );
  141.                       scanf("%d", &choose);
  142.                               if(fig[choose].type != 0)
  143.                          {
  144.                               printf("The figure already exists, replace it? O/N" );
  145.                               scanf("%c", &replace); getch();
  146.                               if (replace !='o')
  147.                                   {
  148.                                     choix = 2;
  149.                                     continue;
  150.                                    }
  151.                          }
  152.                       printf("\nplease choose the type of the figure: " );
  153.                       printf("\n 1. point" );
  154.                       printf("\n 2. line" );
  155.                       printf("\n 3. rectangle" );
  156.                       printf("\n 4. cercle\n" );
  157.                       scanf("%d", &choosetype);
  158.                       switch(choosetype)
  159.                         {
  160.                             case 1:
  161.                                  {
  162.                                  fig[choose].type = 1;     
  163.                                  printf("please type the x: " );
  164.                                  scanf("%f", &fig[choose].figurespoint.x);
  165.                                  printf("please type the y: " );
  166.                                  scanf("%f", &fig[choose].figurespoint.y);
  167.                                  }
  168.                                  break;
  169.                             case 2:
  170.                                  {
  171.                                  fig[choose].type = 2;
  172.                                  printf("please type the point 1 x: " );
  173.                                  scanf("%f", &fig[choose].figuresline.p1.x);
  174.                                  printf("please type the point 1 y: " );
  175.                                  scanf("%f", &fig[choose].figuresline.p1.y);
  176.                                  }
  177.                                  break;
  178.                             case 3:
  179.                                  {
  180.                                  fig[choose].type= 3;     
  181.                                  printf("please type the point x: " );
  182.                                  scanf("%f", &fig[choose].figuresrectangle.pcoin.x);
  183.                                  printf("please type the point y: " );
  184.                                  scanf("%f", &fig[choose].figuresrectangle.pcoin.y);
  185.                                  printf("please enter the largeur: " );
  186.                                  scanf("%f", &fig[choose].figuresrectangle.largeur);
  187.                                  printf("please enter the hauteur: " );
  188.                                  scanf("%f", &fig[choose].figuresrectangle.hauteur);
  189.                                  }
  190.                                  break;
  191.                             case 4:
  192.                                  {
  193.                                  fig[choose].type = 4;
  194.                                  printf("please pick the centre point x: " );
  195.                                  scanf("%f", &fig[choose].figurescercle.pcentre.x);
  196.                                  printf("please pick the centre point y: " );
  197.                                  scanf("%f", &fig[choose].figurescercle.pcentre.y);
  198.                                  printf("please pick the rayon: " );
  199.                                  scanf("%f", &fig[choose].figurescercle.rayon);         
  200.                                  }
  201.                                  break;
  202.                         }
  203.                         printf("\nPlease enter the RVB color: " );
  204.                         printf("\nRVB 1: " ); scanf("%d", &fig[choose].RVB1);
  205.                         printf("RVB 2: " ); scanf("%d", &fig[choose].RVB2);
  206.                         printf("RVB 3: " ); scanf("%d", &fig[choose].RVB3);
  207.                         printf("\nMake a ticket: " );
  208.                         scanf("%s", fig[choose].etiquette);
  209.                          for(i = 1; i < NBFIG; i++)
  210.                          {
  211.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  212.                          }
  213.                  }break;
  214.                
  215.                
  216.             case 3 :
  217.                
  218.                  {
  219.                        for(i = 1; i < NBFIG; i++)
  220.                        {accu += fig[i].type;}
  221.                        if (accu == 0)
  222.                        {
  223.                         printf("\nYou have not yet created any figure, press any key to return to the menu: " );
  224.                         getch();
  225.                         break;
  226.                         }
  227.                        printf("\nNum%cro\tType\tEtiquette\n",130);
  228.                        for(i = 1; i < NBFIG; i++)
  229.                          { 
  230.                             if (fig[i].type != 0)
  231.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  232.                          }
  233.                       printf("\nplease choose the number to modify: " );
  234.                       scanf("%d", &choose);
  235.                      
  236.                       printf("\nplease choose the type of the figure: " );
  237.                       printf("\n 1. point" );
  238.                       printf("\n 2. line" );
  239.                       printf("\n 3. rectangle" );
  240.                       printf("\n 4. cercle\n" );
  241.                       scanf("%d", &choosetype);
  242.                       switch(choosetype)
  243.                         {
  244.                             case 1:
  245.                                  {
  246.                                  fig[choose].type = 1;     
  247.                                  printf("please type the x: " );
  248.                                  scanf("%f", &fig[choose].figurespoint.x);
  249.                                  printf("please type the y: " );
  250.                                  scanf("%f", &fig[choose].figurespoint.y);
  251.                                  }
  252.                                  break;
  253.                             case 2:
  254.                                  {
  255.                                  fig[choose].type = 2;
  256.                                  printf("please type the point 1 x: " );
  257.                                  scanf("%f", &fig[choose].figuresline.p1.x);
  258.                                  printf("please type the point 1 y: " );
  259.                                  scanf("%f", &fig[choose].figuresline.p1.y);
  260.                                  }
  261.                                  break;
  262.                             case 3:
  263.                                  {
  264.                                  fig[choose].type= 3;     
  265.                                  printf("please type the point x: " );
  266.                                  scanf("%f", &fig[choose].figuresrectangle.pcoin.x);
  267.                                  printf("please type the point y: " );
  268.                                  scanf("%f", &fig[choose].figuresrectangle.pcoin.y);
  269.                                  printf("please enter the largeur: " );
  270.                                  scanf("%f", &fig[choose].figuresrectangle.largeur);
  271.                                  printf("please enter the hauteur: " );
  272.                                  scanf("%f", &fig[choose].figuresrectangle.hauteur);
  273.                                  }
  274.                                  break;
  275.                             case 4:
  276.                                  {
  277.                                  fig[choose].type = 4;
  278.                                  printf("please pick the centre point x: " );
  279.                                  scanf("%f", &fig[choose].figurescercle.pcentre.x);
  280.                                  printf("please pick the centre point y: " );
  281.                                  scanf("%f", &fig[choose].figurescercle.pcentre.y);
  282.                                  printf("please pick the rayon\n" );
  283.                                  scanf("%f", &fig[choose].figurescercle.rayon);         
  284.                                  }
  285.                                  break;
  286.                         }
  287.                         printf("\nPlease enter the RVB color: " );
  288.                         printf("\nRVB 1" ); scanf("%d", &fig[choose].RVB1);
  289.                         printf("RVB 2" ); scanf("%d", &fig[choose].RVB2);
  290.                         printf("RVB 3" ); scanf("%d", &fig[choose].RVB3);
  291.                         printf("\nMake a ticket" );
  292.                         scanf("%s", fig[choose].etiquette);
  293.                          for(i = 1; i < NBFIG; i++)
  294.                          {
  295.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  296.                          } 
  297.                  }break;
  298.                
  299.             case 4 :
  300.                
  301.                  {
  302.                         printf("\nNum%cro\tType\tEtiquette\n",130);
  303.                         for(i = 1; i < NBFIG; i++)
  304.                          {
  305.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  306.                          }
  307.                        
  308.                          printf("Please choose the figure to erase: " );
  309.                          scanf("%d", &numsupprime);
  310.                                  fig[numsupprime].etiquette[0] = 'N';
  311.                                  fig[numsupprime].etiquette[1] = 'O';
  312.                                  fig[numsupprime].etiquette[2] = 'N';
  313.                                  fig[numsupprime].etiquette[3] = 'E';
  314.                                  fig[numsupprime].etiquette[4] = '\0';
  315.                                  fig[numsupprime].RVB1 = 0;
  316.                                  fig[numsupprime].RVB2 = 0;
  317.                                  fig[numsupprime].RVB3 = 0;
  318.                                  fig[numsupprime].figurespoint.x = 0.0;
  319.                                  fig[numsupprime].figurespoint.y = 0.0;
  320.                                  fig[numsupprime].figuresline.p1.x = 0.0;
  321.                                  fig[numsupprime].figuresline.p1.y = 0.0;
  322.                                  fig[numsupprime].figuresline.p2.x = 0.0;
  323.                                  fig[numsupprime].figuresline.p2.y = 0.0;   
  324.                                  fig[numsupprime].figuresrectangle.pcoin.x = 0.0;
  325.                                  fig[numsupprime].figuresrectangle.pcoin.y = 0.0;
  326.                                  fig[numsupprime].figuresrectangle.largeur = 0.0;
  327.                                  fig[numsupprime].figuresrectangle.hauteur = 0.0;   
  328.                                  fig[numsupprime].figurescercle.pcentre.x = 0.0;
  329.                                  fig[numsupprime].figurescercle.pcentre.y = 0.0;
  330.                                  fig[numsupprime].figurescercle.rayon = 0.0;
  331.                                  fig[numsupprime].type = 0;
  332.                  }               break;
  333.                
  334.             case 5 :
  335.                  {
  336.                          printf("\nNum%cro\tType\tEtiquette\n",130);
  337.                          for(i = 1; i < NBFIG; i++)
  338.                          {
  339.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  340.                          }
  341.                        
  342.                          printf("\nPlease choose the figure to decaler: " );
  343.                          scanf("%d", &decaler);
  344.                          if(fig[decaler].type == 0)
  345.                          {
  346.                              printf("\ne figure that you have choosed doesn't exist!" );
  347.                              getch();
  348.                              break;     
  349.                          }
  350.                          printf("\nPlease choose the direction" );
  351.                          printf("\n1. horizontal" );
  352.                          printf("\n2. vertical\n" );
  353.                          scanf("%d",&sens);
  354.                          printf("\nPlease choose the sign" );
  355.                          printf("\n1. positive" );
  356.                          printf("\n2. negative\n" );
  357.                          scanf("%d",&decalage);
  358.                        
  359.                        
  360.                  }
  361.                  break;
  362.                
  363.             case 6 :
  364.                  {
  365.                        printf("\nNum%cro\tType\tEtiquette\n",130);
  366.                        for(i = 1; i < NBFIG; i++)
  367.                          {
  368.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  369.                          }
  370.                        printf("\nPlease pick the figure no1 to permutate: " );
  371.                        scanf("%d", &perm1);
  372.                        printf("\nPlease pick the figure no2 to permutate: " );
  373.                        scanf("%d", &perm2);
  374.                        if(fig[perm1].type == 0 || fig[perm2].type == 0)
  375.                          {
  376.                              printf("\nThe figure that you have choosed doesn't exist!" );
  377.                              break;     
  378.                          }
  379.                          temp[0] = fig[perm1];
  380.                          fig[perm1] = fig[perm2];
  381.                          fig[perm2] = temp[0];
  382.                          for(i = 1; i < NBFIG; i++)
  383.                          {
  384.                             printf("\n%d\t%d\t%s",i,fig[i].type,fig[i].etiquette);
  385.                          }
  386.                  } break;
  387.             case 7 :
  388.                  {
  389.                     printf("Thank you for choosing PTS system" );
  390.                     getch();
  391.                     choix = 0;
  392.                  }break;
  393.         }
  394.         if(choix == 0)
  395.           break;
  396.           else
  397.         {
  398.         printf("\n" );
  399.         afficherLesChoix();
  400.         printf("\nEntrez un choix: " );
  401.         scanf("%d",&choix);
  402.         }
  403.     }
  404.     while (choix != 0);
  405. getch();
  406. return 0;
  407. }


Message édité par gilou le 29-02-2012 à 12:31:27
Reply

Marsh Posté le 29-02-2012 à 11:51:14   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed