Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement