Facebook
From :), 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 50
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5.  
  6. void split(char tablica[2][50], char* napis)
  7. {
  8.     int i = 0;
  9.     int c = 0;
  10.     int j = 0;
  11.     while (napis[i] != '\0')
  12.     {
  13.         if (napis[i] != '-')
  14.         {
  15.             tablica[c][j] = napis[i];
  16.         }
  17.         else
  18.         {
  19.             tablica[c][j] = '\0';
  20.             j = -1;
  21.             c++;
  22.         }
  23.         i++;
  24.         j++;
  25.  
  26.  
  27.     }
  28.     tablica[c][j] = '\0';
  29.  
  30. }
  31. bool compare(string a, string b) {
  32.     for (int i = 0; a[i] != '\0'; i++) {
  33.         if (a[i] != b[i])
  34.             return false;
  35.     }
  36.     return true;
  37. }
  38. //faktyczny progrM
  39. //const int maxsize = 128;
  40. #define maxsize 128
  41.  
  42. struct mieNaTow
  43. {
  44.     unsigned short ilosctow;
  45.     char etykieta[2];
  46.    
  47. };
  48.  
  49. struct polka
  50. {
  51.     mieNaTow mieNaTow_[maxsize];
  52.     unsigned short iloscmiejsca;
  53.    
  54. };
  55.  
  56. struct regal
  57. {
  58.     polka polka_[maxsize];
  59.     unsigned short  iloscpolek;
  60.    
  61. };
  62.  
  63. struct magazyn
  64. {
  65.     regal regal_[maxsize];
  66.     short iloscreagalow;
  67.     polka podrpolka_;
  68.    
  69.    
  70. };
  71. struct skladd
  72. {
  73.     static magazyn magazyn_[maxsize];//nie traktj tego jako zmienna statyczna bo jest w sekcji globalbej,inline nie musisz deklarowac
  74.     unsigned short iloscmagazynow;
  75.     regal podrregal;
  76.     polka podrpolk;
  77.  
  78. };
  79.  
  80. magazyn skladd::magazyn_[128];
  81.  
  82.  
  83. int main() {
  84.     skladd sklad;
  85.  
  86.  
  87.     char a[2][50];
  88.     string second;
  89.     bool isEnd = false;
  90.     char choice[20];
  91.     while (!isEnd) {
  92.         cin >> choice;
  93.         //scanf("%s", &choice);
  94.         if (compare(choice, "END"))
  95.             isEnd = true;
  96.         else {
  97.             split(a, (char*)choice);
  98.             char* first = a[0];
  99.             char* second = a[1];
  100.             if (compare(first, "SET"))
  101.             {
  102.                 if (compare(second, "AP")) {
  103.                     short w;
  104.                     short r;
  105.                     short s;
  106.                     short P;
  107.                     cin >> w >> r >> s >> P;
  108.                 }
  109.                 else if (compare(second, "AS")) {
  110.                     short w;
  111.                     short r;
  112.                     short s;
  113.                     short P;
  114.                     cin >> w >> r >> s >> P;
  115.                 }
  116.                 else if (compare(second, "AR")) {
  117.                     short w;
  118.                     short r;
  119.                     short s;
  120.                     short P;
  121.                     cin >> w >> r >> s >> P;
  122.                 }
  123.                 else if (compare(second, "AW")) {
  124.                     short w;
  125.                     short r;
  126.                     short s;
  127.                     short P;
  128.                     cin >> w >> r >> s >> P;
  129.                 }
  130.                 else if (compare(second, "HW")) {
  131.                     short w;
  132.                     short P;
  133.                     cin >> w >> P;
  134.                 }
  135.                 else if (compare(second, "HR")) {
  136.                     short S;
  137.                     short P;
  138.                     cin >> S >> P;
  139.                 }
  140.                 else if (compare(second, "HS")) {
  141.                     short P;
  142.                     cin >> P;
  143.                 }
  144.             }
  145.             else if (compare(first, "PUT")) {
  146.                 if (compare(second, "W")) {
  147.                     short w;
  148.                     short r;
  149.                     short s;
  150.                     short P;
  151.                     short A;
  152.                     cin >> w >> r >> s >> P >> A;
  153.                 }
  154.                 else if (compare(second, "H")) {
  155.                     short w;
  156.                     short P;
  157.                     short A;
  158.                     cin >> w >> P >> A;
  159.                 }
  160.                 else if (compare(second, "R")) {
  161.                     short s;
  162.                     short p;
  163.                     short A;
  164.                     cin >> s >> p >> A;
  165.                 }
  166.                 else if (compare(second, "S")) {
  167.                     short p;
  168.                     short A;
  169.                     cin >> p >> A;
  170.                 }
  171.             }
  172.             else if (compare(first, "FILL")) {
  173.  
  174.                 short w;
  175.                 short r;
  176.                 short s;
  177.                 short p;
  178.                 short a;
  179.                 cin >> w >> r >> s >> p >> a;
  180.                 sklad.iloscmagazynow = w;
  181.                 sklad.podrpolk.iloscmiejsca = p;
  182.                 for (int z = 0; z < sklad.podrpolk.iloscmiejsca; z++) {
  183.                     sklad.podrpolk.mieNaTow_[z].ilosctow = a;
  184.                
  185.                 }
  186.  
  187.                 sklad.podrregal.iloscpolek = s;
  188.                 for (int f = 0; f < sklad.podrregal.iloscpolek; f++) {
  189.                     sklad.podrregal.polka_[f].iloscmiejsca = s;
  190.                     for (int z = 0; z < sklad.podrregal.polka_[f].iloscmiejsca; z++) {
  191.                         sklad.podrregal.polka_[f].mieNaTow_[z].ilosctow = a;
  192.  
  193.                     }
  194.                 }
  195.              
  196.                 for (int i = 0; i < sklad.iloscmagazynow; i++) {
  197.                     sklad.magazyn_[i].iloscreagalow = r;
  198.                     sklad.magazyn_[i].podrpolka_.iloscmiejsca = p;
  199.                     for (int z = 0; z < sklad.podrpolk.iloscmiejsca; z++) {
  200.                         sklad.magazyn_[i].podrpolka_.mieNaTow_[z].ilosctow = a;
  201.                     //polkipodreczne dla magazyn_ow mamy
  202.                     }
  203.                     sklad.magazyn_[i].podrpolka_.iloscmiejsca = p;
  204.                     for (int j = 0; j < sklad.magazyn_[i].iloscreagalow; j++) {
  205.                         sklad.magazyn_[i].regal_[j].iloscpolek = s;
  206.                         for (int k = 0; k < sklad.magazyn_[i].regal_[j].iloscpolek; k++) {
  207.                             sklad.magazyn_[i].regal_[j].polka_[k].iloscmiejsca = p;
  208.                             for (int g = 0; g < sklad.magazyn_[i].regal_[j].polka_[k].iloscmiejsca; g++) {
  209.                                 sklad.magazyn_[i].regal_[j].polka_[k].mieNaTow_[g].ilosctow = a;
  210.                                 sklad.magazyn_[i].regal_[j].polka_[k].mieNaTow_[g].etykieta[0] = '0';
  211.                                 sklad.magazyn_[i].regal_[j].polka_[k].mieNaTow_[g].etykieta[1] = '0';
  212.  
  213.                             }
  214.                         }
  215.                     }
  216.  
  217.                 }
  218.  
  219.  
  220.  
  221.             }
  222.  
  223.             else if (compare(first, "POP")) {
  224.                 if (compare(second, "W")) {
  225.                     short w;
  226.                     short r;
  227.                     short s;
  228.                     short p;
  229.                     short A;
  230.  
  231.                     cin >> w >> r >> s >> p >> A;
  232.                     cout << "xd";
  233.                     ;
  234.                 }
  235.                 else if (compare(second, "H")) {
  236.                     short w;
  237.                     short p;
  238.                     short A;
  239.                     cin >> w >> p >> A;
  240.                 }
  241.                 else if (compare(second, "R")) {
  242.                     short s;
  243.                     short p;
  244.                     short A;
  245.                     cin >> s >> p >> A;
  246.                 }
  247.                 else if (compare(second, "S")) {
  248.                     short p;
  249.                     short A;
  250.                     cin >> p >> A;
  251.                 }
  252.             }
  253.  
  254.             else if (compare(first, "MOV")) {
  255.                 if (compare(second, "W")) {
  256.                     short wb;
  257.                     short rb;
  258.                     short sb;
  259.                     short we;
  260.                     short re;
  261.                     short se;
  262.                     short p;
  263.                     short A;
  264.                     cin >> wb >> rb >> sb >> we >> re >> se >> p >> A;
  265.                 }
  266.                 else if (compare(second, "H")) {
  267.                     short w;
  268.                     short r;
  269.                     short s;
  270.                     short p;
  271.                     short A;
  272.                     cin >> w >> r >> s >> p >> A;
  273.                 }
  274.                 else if (compare(second, "R")) {
  275.                     short w;
  276.                     short r;
  277.                     short sb;
  278.                     short se;
  279.                     short p;
  280.                     short A;
  281.                     cin >> w >> r >> sb >> se >> p >> A;
  282.                 }
  283.                 else if (compare(second, "S")) {
  284.                     short s;
  285.                     short p;
  286.                     short A;
  287.                     cin >> s >> p >> A;
  288.                 }
  289.             }
  290.             else if (compare(first, "GET")) {
  291.                 if (compare(second, "E")) {
  292.                     //GET - E wyswietla ilosc towarow w skladzie
  293.                     int suma = 0;
  294.                     for (int i = 0; i < sklad.iloscmagazynow; i++) {// ddla kazdego magazyn_u
  295.                         for (int j = 0; j < sklad.magazyn_[i].iloscreagalow; j++) {//dla kazdego regal_u
  296.                             for (int k = 0; k < sklad.magazyn_[i].regal_[j].iloscpolek; k++) {//dla kazdegj polki
  297.                                 for (int g = 0; g < sklad.magazyn_[i].regal_[j].polka_[k].iloscmiejsca; g++) {//dla kazdego miejsca
  298.                                     //sprawdz czy od zera czy od jedynki
  299.                                     suma += sklad.magazyn_[i].regal_[j].polka_[k].mieNaTow_[g].ilosctow;
  300.                                 }
  301.                             }
  302.  
  303.                         }
  304.                     }
  305.  
  306.                     suma += sklad.podrpolk.iloscmiejsca;
  307.                     for (int i = 0; i < sklad.podrregal.iloscpolek; i++) {
  308.                         suma += sklad.podrregal.polka_[i].iloscmiejsca;
  309.  
  310.                     }
  311.                     for (int i = 0; i < sklad.iloscmagazynow; i++) {
  312.                         suma += sklad.magazyn_[i].podrpolka_.iloscmiejsca;
  313.  
  314.                     }
  315.                     cout << suma;
  316.                 }
  317.  
  318.                 else if (compare(second, "W")) {
  319.                     short w;
  320.                     cin >> w;//wyswietla ilosc towarow w magazyn_ie w
  321.                     if (sklad.iloscmagazynow < w || w < 0) {
  322.  
  323.                         cout << "error";
  324.                     }
  325.                     else {
  326.                         int suma = 0;
  327.                         for (int j = 0; j < sklad.magazyn_[w].iloscreagalow; j++) {//dla kazdego regal_u
  328.                             for (int k = 0; k < sklad.magazyn_[w].regal_[j].iloscpolek; k++) {//dla kazdegj polki
  329.                                 for (int g = 0; g < sklad.magazyn_[w].regal_[j].polka_[k].iloscmiejsca; g++) {//dla kazdego miejsca
  330.                                     //sprawdz czy od zera czy od jedynki
  331.                                     suma += sklad.magazyn_[w].regal_[j].polka_[k].mieNaTow_[g].ilosctow;
  332.                                 }
  333.                             }
  334.  
  335.                         }
  336.                         cout << suma;
  337.                     }
  338.                     int suma = 0;
  339.  
  340.                     // ddla kazdego magazyn_u
  341.  
  342.                 }
  343.                 else if (compare(second, "RW")) {
  344.                     int suma = 0;
  345.                     short w;
  346.                     short r;
  347.                     cin >> w;
  348.                     cin >> r;
  349.                     if (w < 0 || r < 0 || sklad.iloscmagazynow < w || sklad.magazyn_[w].iloscreagalow < r) {
  350.  
  351.                         cout << "error";
  352.                     }
  353.                     else {
  354.  
  355.                         //dla kazdego regal_u
  356.  
  357.                         // ddla kazdego magazyn_u
  358.                         //dla kazdego regal_u
  359.                         for (int k = 0; k < sklad.magazyn_[w].regal_[r].iloscpolek; k++) {//dla kazdegj polki
  360.                             for (int g = 0; g < sklad.magazyn_[w].regal_[r].polka_[k].iloscmiejsca; g++) {//dla kazdego miejsca
  361.                                 //sprawdz czy od zera czy od jedynki
  362.                                 suma += sklad.magazyn_[w].regal_[r].polka_[k].mieNaTow_[g].ilosctow;
  363.                             }
  364.                         }
  365.  
  366.                         cout << suma;
  367.  
  368.                     }
  369.  
  370.                 }
  371.  
  372.                 else if (compare(second, "RH")) {
  373.                     for (int i = 0; i < sklad.podrregal.iloscpolek; i++)
  374.                         cout << sklad.podrregal.polka_[i].mieNaTow_;
  375.  
  376.                 }
  377.                 else if (compare(second, "SW")) {
  378.                     short w;
  379.                     short r;
  380.                     short s;
  381.                     cin >> w;
  382.                     cin >> r;
  383.                     cin >> s;
  384.                     int suma = 0;
  385.                     if (w < 0 || r < 0 || s < 0 || sklad.iloscmagazynow < w || sklad.magazyn_[w].iloscreagalow < r || sklad.magazyn_[w].regal_[r].iloscpolek < s) {
  386.  
  387.                         cout << "error";
  388.                     }
  389.                     // ddla kazdego magazyn_u
  390.                     //dla kazdego regal_u
  391.                     //dla kazdegj polki
  392.                     for (int g = 0; g < sklad.magazyn_[w].regal_[r].polka_[s].iloscmiejsca; g++) {//dla kazdego miejsca
  393.                         //sprawdz czy od zera czy od jedynki
  394.                         suma += sklad.magazyn_[w].regal_[r].polka_[s].mieNaTow_[g].ilosctow;
  395.                     }
  396.  
  397.  
  398.                     cout << suma;
  399.                 }
  400.                 else if (compare(second, "SH")) {
  401.                     short w;
  402.                     cin >> w;
  403.                     if (sklad.iloscmagazynow < w || w < 0) {
  404.  
  405.                         cout << "error";
  406.                     }
  407.                     else {
  408.                         int suma;
  409.                         for (int i = 0; i < sklad.magazyn_[w].podrpolka_.iloscmiejsca; i++) {
  410.                             suma += sklad.magazyn_[w].podrpolka_.mieNaTow_[i].ilosctow;
  411.                         }
  412.  
  413.                         cout << suma;
  414.                     }
  415.  
  416.                 }
  417.                 else if (compare(second, "SR")) {
  418.                     short s;
  419.                     cin >> s;
  420.                     //podreczny regal_ na polsce o nr s
  421.                     if (sklad.podrregal.iloscpolek < 0 || sklad.podrregal.iloscpolek < 0) {
  422.  
  423.                         cout << "error";
  424.                     }
  425.                     else {
  426.                         int sum = 0;
  427.                         cout << sklad.podrregal.polka_[s].mieNaTow_;
  428.                         for (int i = 0; i < sklad.podrregal.polka_[s].iloscmiejsca; i++) {
  429.                             sum += sklad.podrregal.polka_[s].mieNaTow_[i].ilosctow;
  430.                         }
  431.                         cout << sum;
  432.                     }
  433.  
  434.                 }
  435.                 else if (compare(second, "S")) {
  436.  
  437.                     int sum = 0;
  438.                     for (int i = 0; i < sklad.podrpolk.iloscmiejsca; i++) {
  439.                         sum += sklad.podrpolk.mieNaTow_[i].ilosctow;
  440.                     }
  441.                     cout << sum; // bo jest tylko jedna dlatego bez petli i indexu
  442.                 }
  443.                 else if (compare(second, "LW")) {
  444.                     short s; //polka_  
  445.                     short w; //magazyn_
  446.                     short r;  //regal_
  447.                     short p;///miejsce
  448.                     cin >> s >> w >> r >> p;
  449.                     if (w < 0 || r < 0 || s < 0 || p < 0 || sklad.iloscmagazynow < w || sklad.magazyn_[w].iloscreagalow < r || sklad.magazyn_[w].regal_[r].iloscpolek < s || sklad.magazyn_[w].regal_[r].iloscpolek < p) {
  450.  
  451.                         cout << "error";
  452.                     }
  453.                     else {
  454.                         cout << sklad.magazyn_[w].regal_[r].polka_[s].mieNaTow_[p].etykieta; // bo jest tylko jedna dlatego bez petli i indexu
  455.                     }
  456.  
  457.                 }
  458.                 else if (compare(second, "LH")) {
  459.                     short w;
  460.                     short p;
  461.                     cin >> w >> p;
  462.                     if (w < 0 || p < 0 || sklad.iloscmagazynow < w || sklad.magazyn_[w].podrpolka_.iloscmiejsca < p) {
  463.                         cout << "error";
  464.                     }
  465.                     else {
  466.                         cout << sklad.magazyn_[w].podrpolka_.mieNaTow_[p].etykieta;
  467.                     }
  468.                     // bo jest tylko jedna dlatego bez petli i indexu
  469.                 }
  470.                 else if (compare(second, "LR")) {
  471.                     short s;
  472.                     short p;
  473.                     cin >> s >> p;
  474.                     if (s < 0 || p < 0 || sklad.podrregal.iloscpolek < s || sklad.podrregal.polka_[s].iloscmiejsca < p) {
  475.                         cout << sklad.podrregal.polka_[s].mieNaTow_[p].etykieta; // bo jest tylko jedna dlatego bez petli i indexu
  476.                     }
  477.  
  478.                 }
  479.                 else if (compare(second, "LS")) {
  480.  
  481.                     short p;
  482.                     cin >> p;
  483.                     if (p < 0 || sklad.podrpolk.iloscmiejsca < p) {
  484.                         cout << "error";
  485.                     }
  486.                     else {
  487.                         cout << sklad.podrpolk.mieNaTow_[p].etykieta;
  488.                     }
  489.                     // bo jest tylko jedna dlatego bez petli i indexu
  490.  
  491.                 }
  492.  
  493.  
  494.             }
  495.  
  496.         }
  497.  
  498.  
  499.  
  500.     }
  501.  
  502. }