Advertisement
JStefan

[Vezbi] Faktura

Mar 29th, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.24 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. // output:
  5. //Marko 2
  6. //proizvod1 10 4
  7. //proizvod2 20 3
  8. //3 2
  9.  
  10. //место за вашиот код
  11.  
  12. typedef struct Proizvod {
  13.     char kod[20];
  14.     int cena;
  15.     int dostapni_proizvodi;
  16. } Proizvod;
  17.  
  18. typedef struct Narachka {
  19.     char narachatel[15];
  20.     Proizvod proizvodi[10];
  21.     int narachani_proizvodi[10];  // na pozicija i se naogja brojot na narachani proizvodi od i-tiot proizvod
  22.     int kupeni_proizvodi;
  23. } Narachka;
  24.  
  25. void sortiraj_proizvodi(Narachka*);
  26.  
  27. int uspesna_naracka(Narachka n) {
  28.     int i;
  29.     for(i = 0; i < n.kupeni_proizvodi; ++i) {
  30.         if(n.narachani_proizvodi[i] > n.proizvodi[i].dostapni_proizvodi) return 0;
  31.     }
  32.     return 1;
  33. }
  34.  
  35. void pecatiFaktura(Narachka n) {
  36.     printf("Faktura za %s\n", n.narachatel);
  37.     if(uspesna_naracka(n)) {
  38.         sortiraj_proizvodi(&n);
  39.         int i, vkupna_suma = 0;
  40.         for(i = 0; i < n.kupeni_proizvodi; ++i) {
  41.             printf("%s %d %d %d\n", n.proizvodi[i].kod, n.proizvodi[i].cena, n.narachani_proizvodi[i], (n.proizvodi[i].cena * n.narachani_proizvodi[i]));
  42.             vkupna_suma += (n.proizvodi[i].cena * n.narachani_proizvodi[i]);
  43.         }
  44.         printf("Vkupnata suma na fakturata e %d", vkupna_suma);
  45.     } else {
  46.         printf("Fakturata ne moze da se izgotvi");
  47.     }
  48. }
  49.  
  50. void zameni_proizvodi(Proizvod* p1, Proizvod* p2) {
  51.     Proizvod temp = *p1;
  52.     *p1 = *p2;
  53.     *p2 = temp;
  54. }
  55.  
  56. void zameni_kolichini(int* a, int* b) {
  57.     int temp = *a;
  58.     *a = *b;
  59.     *b = temp;
  60. }
  61.  
  62. void sortiraj_proizvodi(Narachka* niza) {
  63.     int i,j;
  64.     for(i = 0; i < (*niza).kupeni_proizvodi - i - 1; ++i) {
  65.         for(j = 0; j < (*niza).kupeni_proizvodi - i - 1; ++j) {
  66.             if(strcmp((*niza).proizvodi[j].kod, (*niza).proizvodi[j+1].kod) > 0) {
  67.                 zameni_proizvodi(&(*niza).proizvodi[j], &(*niza).proizvodi[j+1]);
  68.                 //zameni_kolichini(&(*niza).narachani_proizvodi[j], &(*niza).narachani_proizvodi[j+1]);
  69.             }
  70.         }
  71.     }
  72. }
  73.  
  74. int main() {
  75.  
  76.     Narachka narachka;
  77.  
  78.     scanf("%s", narachka.narachatel);// внеси го името лицето кое ја прави нарачката
  79.     scanf("%d", &narachka.kupeni_proizvodi);// внеси го бројот на порачани производи во нарачката
  80.  
  81.     int i;
  82.     //за секој од нарачаните производи се внесуваат информации
  83.     for (i = 0; i < narachka.kupeni_proizvodi; ++i) {
  84.         scanf("%s", narachka.proizvodi[i].kod); // внеси код
  85.         scanf("%d", &narachka.proizvodi[i].cena); // внеси единицчна цена
  86.         scanf("%d", &narachka.proizvodi[i].dostapni_proizvodi); // внеси број на производи во магацин
  87.     }
  88.     //за секој производ се внесува колку такви производи се порачани во нарачката
  89.     int j;
  90.     for (j = 0; j < narachka.kupeni_proizvodi; ++j) {
  91.        //се внесува број на производи во нарачката
  92.        scanf("%d", &narachka.narachani_proizvodi[j]);
  93.     }
  94.  
  95.  
  96.     // повик на функцијата pecatiFaktura
  97.     pecatiFaktura(narachka);
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement