karimsqualli96

main.c

Jan 20th, 2014
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "main.h"
  5.  
  6.  
  7. #define clean_input_stream() while(getchar() != '\n')
  8.  
  9. #define TAX 0.2
  10.  
  11. int nombreProduit;
  12. struct produit listeProduits[MAX_PRODUITS];
  13.  
  14. int main()
  15. {
  16.     char ref[64];
  17.     int refId;
  18.     int quantite;
  19.  
  20.     int nbrProduitAchete;
  21.     struct infoProduitAchete listeProduitsAchete[MAX_PRODUITS];
  22.  
  23.     int continuer;
  24.  
  25.     float totalht = 0;
  26.  
  27.     printf("================= Saisie de produit =================\n");
  28.     printf("Veuillez saisir le nombre de produit : ");
  29.     scanf("%d", &nombreProduit);
  30.  
  31.  
  32.  
  33.     for(int i = 0; i < nombreProduit; i++) {
  34.  
  35.  
  36.         printf("\n==== Produit n %d ====\n", i+1);
  37.  
  38.         clean_input_stream();
  39.         printf("Veuillez saisir la reference du produit : ");
  40.         scanf("%[^\n]s", listeProduits[i].reference);
  41.  
  42.         clean_input_stream();
  43.         printf("Veuillez saisir la designation : ");
  44.         scanf("%[^\n]s", listeProduits[i].designation);
  45.  
  46.         clean_input_stream();
  47.         printf("Veuillez saisir le stock de ce produit : ");
  48.         scanf("%d", &(listeProduits[i].stock));
  49.  
  50.         clean_input_stream();
  51.         printf("Veuillez saisir le seuil : ");
  52.         scanf("%d", &(listeProduits[i].seuil));
  53.  
  54.         clean_input_stream();
  55.         printf("Veuillez saisir le prix HT : ");
  56.         scanf("%f", &(listeProduits[i].prixHT));
  57.     }
  58.  
  59.     do {
  60.         system("cls");
  61.         nbrProduitAchete = 0;
  62.         printf("================= Nouveau client =================\n\n");
  63.         do {
  64.             printf("--- saisie du produit n %d ---\n", nbrProduitAchete + 1);
  65.             // saisie de la reference du produit, boucle bloquante tant que la reference est invalide
  66.             do {
  67.                 clean_input_stream();
  68.  
  69.                 printf("Veuillez saisir la reference du produit : ");
  70.                 scanf("%[^\n]s", ref);
  71.                 refId = get_id_by_ref(ref);
  72.  
  73.                 if(refId == -1)
  74.                     printf("Reference invalide !!\n");
  75.  
  76.             }while(refId == -1);
  77.  
  78.             // sasie de la quantite voulue
  79.             printf("Veuillez saisir la quantite du produit voulue : ");
  80.             scanf("%d", &quantite);
  81.  
  82.             listeProduitsAchete[nbrProduitAchete].id = refId;
  83.             listeProduitsAchete[nbrProduitAchete].quantite = quantite;
  84.  
  85.             nbrProduitAchete++;
  86.  
  87.  
  88.             do {
  89.                 clean_input_stream();
  90.                 printf("Voulez vous continuer ?(O/N) : ");
  91.                 continuer = tolower(getchar());
  92.             }while(continuer != 'o' && continuer != 'n');
  93.  
  94.         }while(continuer == 'o');
  95.  
  96.         system("cls");
  97.         printf("Reference\tDesignation\tQuantite Achete\tPrix Unitaire\tMontant HT\n\n");
  98.  
  99.         for(int i = 0; i < nbrProduitAchete; printf("\n"), i++) {
  100.             printf("%-9s\t", listeProduits[listeProduitsAchete[i].id].reference);
  101.             printf("%-11s\t", listeProduits[isteProduitsAchete[i].id].designation);
  102.             printf("%-15d\t", listeProduitsAchete[i].quantite);
  103.             printf("%-13f\t",  listeProduits[listeProduitsAchete[i].id].prixHT);
  104.             printf("%f", (listeProduitsAchete[i].quantite * listeProduits[listeProduitsAchete[i].id].prixHT));
  105.  
  106.             totalht += listeProduitsAchete[i].quantite * listeProduits[listeProduitsAchete[i].id].prixHT)
  107.         }
  108.  
  109.         printf("\n\n Total Hors Tax : %f\n", totalht);
  110.         printf("Total Toute Tax Comprise : %f\n\n", totalht + totalht*TAX);
  111.  
  112.         system("pause");
  113.     }while(1);
  114.  
  115.     return 1;
  116. }
  117.  
  118. int get_id_by_ref(char ref[]) {
  119.     for(int i = 0; i < nombreProduit; i++)
  120.         if(strcmp(tolower(ref), tolower((listeProduits[i]).reference)) == 0 )
  121.             return i;
  122.     return -1;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment