Guest User

Untitled

a guest
Aug 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.83 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. //#include "stog_polje.h"
  4. #include "stog_pokazivac.h"
  5.  
  6. using namespace std;
  7.  
  8. troba roba3[1000];
  9. int brojac;
  10.  
  11. void upis(stack *stog){
  12. troba roba2;
  13. cout<<endl;
  14. cout<<"Unesite sljedece podatke: "<<endl;
  15. cout<<"sifra: ";
  16. cin>>roba2.sifra;
  17. cout<<endl;
  18. cout<<"naziv: ";
  19. cin.ignore();
  20. cin.getline(roba2.naziv,20);
  21. cout<<endl;
  22. cout<<"vrsta robe: ";
  23. cin.getline(roba2.vrsta,20);
  24. cout<<endl;
  25. cout<<"datum proizvodnje(u rasponu od 1.1.2010 do 31.12.2011.): ";
  26. do{
  27. cout<<"dan: ";
  28. cin>>roba2.datum.dan;
  29. cout<<endl;}
  30. while(roba2.datum.dan<1||roba2.datum.dan>31);
  31. do{
  32. cout<<"mjesec: ";
  33. cin>>roba2.datum.mjesec;
  34. cout<<endl;}
  35. while(roba2.datum.mjesec<1||roba2.datum.mjesec>12);
  36. do{
  37. cout<<"godina: ";
  38. cin>>roba2.datum.godina;
  39. cout<<endl; }
  40. while(roba2.datum.godina<2010||roba2.datum.godina>2011);
  41.  
  42. cout<<"rok trajanja: ";
  43. do{
  44. cout<<"dan: ";
  45. cin>>roba2.rok.dan;
  46. cout<<endl;}
  47. while(roba2.rok.dan<1||roba2.rok.dan>31);
  48. do{
  49. cout<<"mjesec: ";
  50. cin>>roba2.rok.mjesec;
  51. cout<<endl;}
  52. while(roba2.rok.mjesec<1||roba2.rok.mjesec>12);
  53. do{
  54. cout<<"godina: ";
  55. cin>>roba2.rok.godina;
  56. cout<<endl;}
  57. while(roba2.rok.godina<roba2.datum.godina);
  58.  
  59. cout<<endl<<endl;
  60. pushs(roba2,stog);
  61. };
  62.  
  63.  
  64. void istovar_2010(stack *stog, stack *stog2){
  65. troba roba2;
  66. troba roba3[1000];
  67. int brojac=0;
  68.  
  69. cout<<"Roba proizvedena prije 23.09.2010."<<endl;
  70. while(!isempty(stog)){
  71. roba2=tops(stog);
  72. pops(stog);
  73. pushs(roba2,stog2);
  74.  
  75. if((roba2.datum.godina<=2010)&&(roba2.datum.mjesec<9))
  76. {
  77. cout<<endl;
  78. cout<<"sifra: "<<roba2.sifra<<endl;
  79. cout<<"naziv: "<<roba2.naziv<<endl;
  80. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  81. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  82. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  83. cout<<endl;}
  84.  
  85. else if((roba2.datum.godina<=2010)&&(roba2.datum.mjesec==9) && (roba2.datum.dan<23)){
  86. cout<<endl;
  87. cout<<"sifra: "<<roba2.sifra<<endl;
  88. cout<<"naziv: "<<roba2.naziv<<endl;
  89. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  90. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  91. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  92. cout<<endl;}}
  93.  
  94. while(!isempty(stog2)){
  95. roba3[brojac]=tops(stog2);
  96. pops(stog2);
  97. brojac++;
  98. }
  99.  
  100. for(int i=0;i<brojac;i++){
  101. roba2=roba3[i];
  102. pushs(roba2,stog2);
  103. }
  104.  
  105. cout<<"Stanje na stogu"<<endl;
  106. while(!isempty(stog2)){
  107. roba2=tops(stog2);
  108. pops(stog2);
  109. if(roba2.datum.godina>2010) {
  110. pushs(roba2,stog);
  111. cout<<"sifra: "<<roba2.sifra<<endl;
  112. cout<<"naziv: "<<roba2.naziv<<endl;
  113. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  114. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  115. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  116. cout<<endl; }
  117.  
  118. if((roba2.datum.godina>=2010)&&(roba2.datum.mjesec>9)){
  119. pushs(roba2,stog);
  120. cout<<"sifra: "<<roba2.sifra<<endl;
  121. cout<<"naziv: "<<roba2.naziv<<endl;
  122. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  123. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  124. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  125. cout<<endl; }
  126. else if((roba2.datum.mjesec==9) && (roba2.datum.dan>23)){
  127. pushs(roba2,stog);
  128. cout<<"sifra: "<<roba2.sifra<<endl;
  129. cout<<"naziv: "<<roba2.naziv<<endl;
  130. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  131. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  132. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  133. cout<<endl;}}
  134.  
  135. };
  136.  
  137. bool provjera(troba roba){
  138. int razlika=15;
  139.  
  140. if((roba.datum.godina==roba.rok.godina)&&(roba.datum.mjesec==roba.rok.mjesec)){
  141. razlika=roba.rok.dan-roba.datum.dan;}
  142.  
  143. else if(roba.datum.godina==roba.rok.godina){
  144. if(roba.rok.mjesec-roba.datum.mjesec==1)
  145. razlika=(31-roba.datum.dan)+roba.rok.dan;}
  146.  
  147. else if(roba.rok.godina-roba.datum.godina==1){
  148. if(roba.datum.mjesec-roba.rok.mjesec==11)
  149. razlika=(31-roba.datum.dan)+roba.rok.dan;
  150. }
  151.  
  152. if (razlika<=14) return true;
  153. else return false;
  154. };
  155.  
  156. void istovar(stack *stog){
  157. troba roba2;
  158. if(isempty(stog)) {return ;}
  159. roba2=tops(stog);
  160. pops(stog);
  161.  
  162. if(provjera(roba2)){
  163. cout<<"================================"<<endl;
  164. cout<<"sifra: "<<roba2.sifra<<endl;
  165. cout<<"naziv: "<<roba2.naziv<<endl;
  166. cout<<"vrsta robe: "<<roba2.vrsta<<endl;
  167. cout<<"datum: "<<roba2.datum.dan<<"."<<roba2.datum.mjesec<<"."<<roba2.datum.godina<<"."<<endl;
  168. cout<<"rok: "<<roba2.rok.dan<<"."<<roba2.rok.mjesec<<"."<<roba2.rok.godina<<"."<<endl;
  169. cout<<endl; }
  170. else {roba3[brojac]=roba2; brojac++;}
  171. istovar(stog);
  172. };
  173.  
  174. void stanje(stack *stog){
  175. cout<<"Stanje na stogu"<<endl;
  176. for(int i=0;i<brojac;i++){
  177. pushs(roba3[i],stog);
  178. cout<<"================================"<<endl;
  179. cout<<"sifra: "<<roba3[i].sifra<<endl;
  180. cout<<"naziv: "<<roba3[i].naziv<<endl;
  181. cout<<"vrsta robe: "<<roba3[i].vrsta<<endl;
  182. cout<<"datum: "<<roba3[i].datum.dan<<"."<<roba3[i].datum.mjesec<<"."<<roba3[i].datum.godina<<"."<<endl;
  183. cout<<"rok: "<<roba3[i].rok.dan<<"."<<roba3[i].rok.mjesec<<"."<<roba3[i].rok.godina<<"."<<endl;
  184. cout<<endl;}
  185. };
  186.  
  187. void nula(){
  188. for(int i=0;i<brojac;i++){
  189. roba3[i].sifra=0;
  190. roba3[i].naziv[0]='/0';
  191. roba3[i].vrsta[0]='/0';
  192. roba3[i].datum.dan=0;
  193. roba3[i].datum.mjesec=0;
  194. roba3[i].datum.godina=0;
  195. roba3[i].rok.dan=0;
  196. roba3[i].rok.mjesec=0;
  197. roba3[i].rok.godina=0;
  198. }
  199. brojac=0;
  200. }
  201.  
  202. int main()
  203. {
  204. int izbor;
  205. stack *stog;
  206. stog=new stack;
  207. inits(stog);
  208. stack *stog2;
  209. stog2=new stack;
  210. inits(stog2);
  211. troba roba2;
  212.  
  213.  
  214. do{
  215. cout<<"__________________________________________________________"<<endl;
  216. cout<<"Odaberite"<<endl;
  217. cout<<"1 za utovar robe u skladište!"<<endl;
  218. cout<<"2 za istovar robe proizvedene prije 23.09.2010.(pomocni stog)"<<endl;
  219. cout<<"3 za istovar lako pokvarljive robe u drugoj trgovini(rekurzija)"<<endl;
  220. cout<<"9 za izlaz iz programa"<<endl;
  221. cin>>izbor;
  222.  
  223. switch(izbor){
  224. case 1: upis(stog); break;
  225. case 2: istovar_2010(stog,stog2);break;
  226. case 3: {if(isempty(stog)){cout<<"Stog je prazan"<<endl; break;}
  227. nula();
  228. istovar(stog);
  229. stanje(stog);
  230. }
  231. break;
  232. case 9: return 0; break;
  233. default: break;
  234. }}
  235. while(izbor!=9);
  236.  
  237. system("PAUSE");
  238. return EXIT_SUCCESS;
  239. }
Add Comment
Please, Sign In to add comment