daily pastebin goal
12%
SHARE
TWEET

Untitled

a guest Jan 22nd, 2019 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int increment;
  5.  
  6. typedef struct
  7. {
  8.     int id;
  9.     char nazwa[25];
  10.     int ilosc;
  11.     int cena;
  12.     int status;
  13. } produkt;
  14.  
  15. typedef struct
  16. {
  17.     int nr_zamowienia;
  18.     int ilosc;
  19.     produkt *produkty;
  20.     int status;
  21. } zamowienie;
  22.  
  23. void menu(zamowienie *wsk)
  24. {
  25.     int mode;
  26.     printf("\nZamowienia\n\n");
  27.     printf("1. Dodaj nowe zamowienie\n");
  28.     printf("2. Zmien status produktu\n");
  29.     printf("3. Przelicz status zamowienia\n");
  30.     printf("4. Wyswietl zamowienia\n");
  31.     printf("Opcja: ");
  32.     scanf("%d", &mode);
  33.  
  34.     switch(mode)
  35.     {
  36.     case 1:
  37.         dodaj(wsk);
  38.         break;
  39.     case 2:
  40.         zmien(wsk);
  41.         break;
  42.     case 3:
  43.         przelicz(wsk);
  44.         break;
  45.     case 4:
  46.         wyswietl(wsk);
  47.         break;
  48.     }
  49. }
  50.  
  51. produkt* dodaj2(produkt *wsk, zamowienie *wsk2)
  52. {
  53.     wsk = (produkt*)malloc(sizeof(produkt));
  54.     int tmp = 0;
  55.     while(1)
  56.     {
  57.         printf("Czy chcesz dodac kolejny item? [T/N]: ");
  58.         fflush(stdin);
  59.         char D;
  60.         scanf("%c", &D);
  61.         if(D == 'T')
  62.         {
  63.             wsk = (produkt*)realloc(wsk,(tmp+1)*sizeof(produkt));
  64.             (wsk+tmp)->id = tmp;
  65.             printf("\n\nPodaj nazwe produktu: ");
  66.             scanf("%s", (wsk+tmp)->nazwa);
  67.             printf("\nPodaj cene: ");
  68.             scanf("%d", &(wsk+tmp)->cena);
  69.             printf("\nPodaj ilosc: ");
  70.             scanf("%d", &(wsk+tmp)->ilosc);
  71.             (wsk+tmp)->status = 0;
  72.             printf("\n\nDodano produkt ID: %d\n\n", (wsk+tmp)->id);
  73.             tmp++;
  74.             wsk2->ilosc = tmp;
  75.         }
  76.         else
  77.         {
  78.             return wsk;
  79.         }
  80.     }
  81. }
  82.  
  83. void dodaj(zamowienie *wsk)
  84. {
  85.     system("cls");
  86.     int offset = increment;
  87.     (wsk+offset)->nr_zamowienia = offset;
  88.     (wsk+offset)->produkty = dodaj2((wsk+offset)->produkty, (wsk+offset));
  89.     (wsk+offset)->status = 0;
  90.     printf("\n\nDodano zamowienie ID: %d\n\n", (wsk+offset)->nr_zamowienia);
  91.     increment++;
  92. }
  93.  
  94. void zmien(zamowienie *wsk)
  95. {
  96.     system("cls");
  97.     int offset;
  98.     printf("Podaj nr zamowienia do zmiany statusu: ");
  99.     scanf("%d", &offset);
  100.     int n = (wsk+offset)->ilosc;
  101.     produkt *wsk2 = (wsk+offset)->produkty;
  102.     for(int i=0; i<n; i++)
  103.     {
  104.         printf("Produkt: %d Nazwa: %s Status: %d\n", i, (wsk2+i)->nazwa, (wsk2+i)->status);
  105.     }
  106.     int m;
  107.     printf("Podaj nr produktu: ");
  108.     scanf("%d", &m);
  109.     printf("Podaj nowy status: ");
  110.     scanf("%d", &(wsk2+m)->status);
  111.     printf("Nowy status dla %s to %d", (wsk2+m)->nazwa, (wsk2+m)->status);
  112. }
  113.  
  114. void przelicz(zamowienie *wsk)
  115. {
  116.     int offset;
  117.     printf("Podaj nr zamowienia: ");
  118.     scanf("%d", &offset);
  119.     int n = (wsk+offset)->ilosc;
  120.     produkt *wsk2 = (wsk+offset)->produkty;
  121.     int x = 1;
  122.     for(int i=0; i<n; i++)
  123.     {
  124.         if((wsk2+i)->status == 0)
  125.         {
  126.             x = 0;
  127.         }
  128.     }
  129.     if(x == 0)
  130.     {
  131.         (wsk+offset)->status = 0;
  132.     }
  133.     else
  134.     {
  135.         (wsk+offset)->status = 1;
  136.     }
  137.     printf("Status zamowienia %d wynosi %d", offset, (wsk+offset)->status);
  138. }
  139.  
  140. void wyswietl(zamowienie *wsk)
  141. {
  142.     int offset;
  143.     printf("Podaj nr zamowienia: ");
  144.     scanf("%d", &offset);
  145.     int n = (wsk+offset)->ilosc;
  146.     produkt *wsk2 = (wsk+offset)->produkty;
  147.     printf("Nr zamowienia %d Ilosc %d Status %d\n\n", (wsk+offset)->nr_zamowienia, (wsk+offset)->ilosc, (wsk+offset)->status);
  148.     for(int i=0; i<n; i++)
  149.     {
  150.         printf("Nr produktu %d, Nazwa %s, Cena %d, Ilosc %d, Status %d\n", (wsk2+i)->id, (wsk2+i)->nazwa, (wsk2+i)->cena, (wsk2+i)->ilosc, (wsk2+i)->status);
  151.     }
  152.  
  153. }
  154.  
  155. int main()
  156. {
  157.     zamowienie *zamowienia = NULL;
  158.     zamowienia = (zamowienie*)malloc(10*sizeof(zamowienie));
  159.     increment = 0;
  160.  
  161.     while(1)
  162.     {
  163.         menu(zamowienia);
  164.     }
  165.     return 0;
  166. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top