Advertisement
Blady214

Untitled

Jan 28th, 2013
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.97 KB | None | 0 0
  1. // ShopManagement - program umożliwa zarządzanie siecią sklepów
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10.  
  11. //=====================================
  12. void menu();
  13. int stringToInt(string hour);
  14. string copyString(int n, int m, string godz);
  15. //void shop_management(); //przenieść do wnętrza klasy
  16. void displayTime(int hh, int mm);
  17. void displayDays(bool dni[]);
  18. //====================================
  19. //enum dni_tygodnia
  20. //{
  21. //  poniedzialek = 0,
  22. //  wtorek,
  23. //  sroda,
  24. //  czwartek,
  25. //  piatek,
  26. //  sobota,
  27. //  niedziela = 6,
  28. //};
  29.  
  30. const string daysOfWeek[7] = {"poniedzialek", "wtorek", "sroda", "czwartek", "piatek", "sobota", "niedziela"};
  31.  
  32. struct hours
  33. {
  34.     short o_hour;
  35.     short o_min;
  36.     short c_hour;
  37.     short c_min;
  38. };
  39.  
  40. struct address
  41. {
  42.     string city;
  43.     string state;
  44.     string postalCode;
  45.     string street;
  46.     string number;
  47. };
  48.  
  49. //======================================'
  50. class dzial
  51. {
  52. public:
  53.     //~dzial();
  54.     void setId(int n);
  55. private:
  56.     int id;
  57.     int size;
  58.     string name;
  59.     //  product **polka;
  60. };
  61.  
  62. class shop
  63. {
  64. public:
  65.     //~shop();
  66.     void destroy();
  67.     void add();
  68.     void find();
  69.     void shop_management();
  70. private:
  71.     int id;
  72.     string name;
  73.     address shopAddress;
  74.     int size; //określa ilość działów
  75.     hours godziny;
  76.     bool closedByUser;//czy supervisor zamknął sklep
  77.     bool dni_tygodni[7];
  78.     dzial **departments;
  79.     void open_hours();
  80.     void print();
  81.     void days();   
  82.     void find(int id);//wyszukiwanie sklepu po ID
  83.     void find(string state, bool type);//wyszukiwanie po wojewodztwie lub miescie
  84.     void create(int n, dzial **&dep);
  85.     void deleteShop();
  86.     void alocateDep(dzial *&dep);
  87. };
  88.  
  89. class polka
  90. {
  91. private:
  92.     int id;
  93.     int size;
  94.     //product **produkty;
  95. };
  96.  
  97.  
  98.  
  99.  
  100. class product
  101. {
  102. private:
  103.     int id;
  104.     string numbers;
  105.     string name;
  106.     double price;
  107.     string TPN;
  108. };
  109. //=====================================
  110.  
  111. shop **sklep = new shop*[]; //spróbować później przenieść wewnątrz klasy
  112. int shops = 0; //spróbować później przenieść wewnątrz klasy
  113.  
  114. void shop::add()
  115. {
  116.     shop *tmp;
  117.     bool _ok = 0;
  118.     char select = 'f';
  119.     tmp = new shop;
  120.  
  121.  
  122.     while(!_ok)
  123.     {
  124.         tmp->id = shops;
  125.  
  126.         cin.sync();
  127.         cout<<"Podaj nazwe sklepu\n";
  128.         getline(cin,tmp->name);
  129.  
  130.         cout<<"Podaj miejscowosc\n";
  131.         getline(cin,tmp->shopAddress.city);
  132.  
  133.         cout<<"Podaj wojewodztwo\n";
  134.         getline(cin,tmp->shopAddress.state);
  135.  
  136.         cout<<"Podaj kod pocztowy\n";
  137.         getline(cin,tmp->shopAddress.postalCode);
  138.  
  139.         cout<<"Podaj ulice\n";
  140.         getline(cin,tmp->shopAddress.street);
  141.  
  142.         cout<<"Podaj numer\n";
  143.         getline(cin,tmp->shopAddress.number);
  144.  
  145.         cout<<"Podaj ilosc dzialow\n";
  146.         cin>>tmp->size;
  147.         cin.sync();
  148.         tmp->open_hours();
  149.  
  150.         cout<<"Podaj dni otwarcia\n";
  151.         tmp->days();
  152.  
  153.         tmp->closedByUser = 0;
  154.  
  155.         cout<<"Wprowadziles sklep o ponizszych danych\n";
  156.         tmp->print();
  157.  
  158.         while(select == 'f')
  159.         {
  160.             cout<<"Czy wprowadzone dane sa poprawne? [T/\N]\n";
  161.             cin>>select;
  162.  
  163.             switch (select)
  164.             {
  165.             case 't':
  166.             case 'T': _ok = 1;
  167.                 break;
  168.             case 'n':
  169.             case 'N': _ok = 0;
  170.                 break;
  171.             default: cout<<"Bledny wybor, sprobuj ponownie\n";
  172.                 select = 'f';
  173.                 break;
  174.             }
  175.         }
  176.         create(tmp->size, tmp->departments);
  177.         shops ++;
  178.         sklep[tmp->id] = tmp;
  179.     }
  180. }
  181.  
  182. void shop::destroy()
  183. {
  184.  
  185.     for (int i=0;i<this->size;i++)
  186.     {
  187.         delete this->departments[i];
  188.     }
  189.     this->departments = NULL;
  190.     delete [] this->departments;
  191.     delete this;
  192.     --shops;
  193. }
  194.  
  195. void shop::print()
  196. {
  197.     cout<<"ID sklepu: "<<id<<endl;
  198.     cout<<name<<endl;
  199.     cout<<shopAddress.postalCode<<"\t"<<shopAddress.city<<endl;
  200.     cout<<shopAddress.street<<" "<<shopAddress.number<<endl;
  201.     displayDays(dni_tygodni);
  202.     cout<<"Czynny od: ";
  203.     displayTime(godziny.o_hour, godziny.o_min);
  204.     cout<<" do: ";
  205.     displayTime(godziny.c_hour, godziny.c_min);
  206.     cout<<endl;
  207.     cout<<endl;
  208. }
  209.  
  210. void shop::open_hours()
  211. {
  212.     string godz;
  213.     string tmp;
  214.  
  215.     cout<<"Podaj godziny otwarcia\n";
  216.     getline(cin,godz);
  217.  
  218.     tmp = copyString(2,0,godz);
  219.     godziny.o_hour = stringToInt(tmp);
  220.  
  221.     tmp = copyString(2,3,godz);
  222.     godziny.o_min = stringToInt(tmp);
  223.  
  224.     cout<<"Podaj godziny zamknięcia\n";
  225.     getline(cin, godz);
  226.  
  227.     tmp = copyString(2,0,godz);
  228.     godziny.c_hour = stringToInt(tmp);
  229.  
  230.     tmp = copyString(2,3,godz);
  231.     godziny.c_min = stringToInt(tmp);
  232. }
  233.  
  234. void shop::days()
  235. {
  236.     cout<<"O = otwarte\nZ = zamkniete\n";
  237.     char a;
  238.  
  239.     for (int i = 0;i<7;i++)
  240.     {
  241.         cout<<"\t"<<daysOfWeek[i]<<":"<<endl;
  242.         cin>>a;
  243.  
  244.         if (a == 'O' || a == 'o') dni_tygodni[i] = 1;
  245.         else dni_tygodni[i] = 0;
  246.     }
  247. }
  248.  
  249. void shop::find(string state, bool type)
  250. {
  251.     bool found = 0;
  252.  
  253.     if (type)
  254.     {
  255.         for (int i=0;i<shops;i++)
  256.         {
  257.             if (sklep[i]->shopAddress.city == state)
  258.             {
  259.                 sklep[i]->print();
  260.                 found = 1;
  261.             }
  262.         }
  263.     }
  264.     else
  265.     {
  266.         for (int i=0;i<shops;i++)
  267.         {
  268.             if (sklep[i]->shopAddress.state == state)
  269.             {
  270.                 sklep[i]->print();
  271.                 found = 1;
  272.             }
  273.         }
  274.     }
  275.  
  276.     if (!found) cout<<"Nie odnalezione zadnego sklepu spelniajacego kryteria\n";
  277. }
  278.  
  279. void shop::find(int id) //wyszukuje sklep po id;
  280. {
  281.     if (id>=shops)
  282.     {
  283.         cout<<"Nie odnaleziono sklepu o podanym numerze ID\n";
  284.         return;
  285.     }
  286.     else
  287.     {
  288.         sklep[id]->print();
  289.     }
  290. }
  291.  
  292. void shop::deleteShop()
  293. {
  294.     int id;
  295.     cout<<"Podaj sklep ktory chcesz usunac\n";
  296.     cin>>id;
  297.  
  298.     if (id<shops)
  299.     {
  300.         sklep[id]->destroy();
  301.  
  302.         for (int i=id;i<(shops - 1);i++)
  303.         {
  304.             sklep[id] = sklep[id+1];
  305.         }
  306.     }
  307.     else cout<<"Nie odnaleziono sklepu o podanym nr ID\n";
  308. }
  309.  
  310. void shop::find()
  311. {
  312.     int select;
  313.     string state;
  314.  
  315.     cout<<"\t\tWyszukaj sklep:\n";
  316.     cout<<"\t\t\t[1] po ID\n";
  317.     cout<<"\t\t\t[2] po wojewodztwie\n";
  318.     cout<<"\t\t\t[3] po miejscowosci\n";
  319.     cout<<"\n\t\t\t[0]Powrot\n";
  320.  
  321.     cin>>select;
  322.  
  323.     switch (select)
  324.     {
  325.     case 1: cout<<"Podaj ID\n";
  326.         cin>>select;
  327.         find(select);
  328.         break;
  329.     case 2: cout<<"Podaj wojewodztwo\n";
  330.         getline(cin,state);
  331.         find(state,0);
  332.         break;
  333.     case 3: cout<<"Podaj miejscowosc\n";
  334.         getline(cin,state);
  335.         find(state,1);
  336.         break;
  337.     case 0: return;
  338.         break;
  339.     default: cout<<"Bledny wybor\n";
  340.         break;
  341.     }
  342. }
  343.  
  344. void shop::alocateDep(dzial *&dz)
  345. {
  346.     //dzial *tmp;
  347.     dz = new dzial;
  348.     //dz = tmp;
  349. }
  350.  
  351. void shop::create(int n, dzial **&dep)
  352. {
  353.  
  354.     dep = new dzial*[];
  355.  
  356.  
  357.     for (int i=0;i<n;i++)
  358.     {
  359.         alocateDep(dep[i]);
  360.         dep[i]->setId(i);
  361.     }
  362. }
  363.  
  364. //=====================================
  365.  
  366. void dzial::setId(int n)
  367. {
  368.     this->id = n;
  369. }
  370.  
  371. //=====================================
  372. void menu()
  373. {
  374.     char select = 'x';
  375.  
  376.     while(select != '0')
  377.     {
  378.         cout<<"================ Shop Management v.1 ==============================\n";
  379.         cout<<"Wybierz akcje\n";
  380.         cout<<"\t0 - Koniec\n";
  381.         cout<<"\t1 - Zarzadzaj sklepami\n";
  382.         cin>>select;
  383.  
  384.         switch (select)
  385.         {
  386.         case '0': break;
  387.         case '1': sklep[0]->shop_management();
  388.             break;
  389.         default: cout<<"Bledny wybor\n";
  390.             break;
  391.         }
  392.     }
  393. }
  394.  
  395. void shop::shop_management()
  396. {
  397.     char select = 'x';
  398.  
  399.     while (select != '0')
  400.     {
  401.         cout<<"\t0 - powrot\n";
  402.         cout<<"\t\t1 - Dodaj nowy sklep\n";
  403.         cout<<"\t\t2 - Wyszukaj sklep\n";
  404.         cout<<"\t\t3 - Wyburz sklep\n";
  405.         cin>>select;
  406.  
  407.         switch (select)
  408.         {
  409.         case '0': break;
  410.         case '1': add();
  411.             break;
  412.         case '2': find();
  413.             break;
  414.         case '3': deleteShop();
  415.             break;
  416.         default: cout<<"Bledny wybor\n";
  417.             break;
  418.         }
  419.     }
  420. }
  421.  
  422. int stringToInt(string hour)//konwertuje podany string na int;
  423. {
  424.     int godzina = 0;
  425.     char tmp;
  426.     int g;
  427.  
  428.     for (int i= 0;i<2;i++)
  429.     {
  430.         tmp = hour[i];
  431.         g = static_cast<int>(tmp);
  432.         g -= 48;
  433.         godzina = godzina * 10 * i;
  434.         godzina = godzina + g;
  435.     }
  436.  
  437.     return godzina;
  438. }
  439.  
  440. void displayDays(bool dni[])
  441. {
  442.     cout<<"Sklep jest otwart w nastepujace dni:\n";
  443.  
  444.     for (int i=0;i<7;i++)
  445.     {
  446.         if (dni[i]) cout<<"\t"<<daysOfWeek[i]<<endl;
  447.     }
  448. }
  449.  
  450. string copyString(int n, int m, string godz)
  451. {
  452.     //n - ilosc znakow kopiowanych, m - poczatek kopiowania
  453.     string hh = "";
  454.  
  455.     for (int i=0; i<n; i++)
  456.     {
  457.         hh = hh + godz[m+i];
  458.     }
  459.     return hh;
  460. }
  461.  
  462. void displayTime(int hh, int mm)
  463. {
  464.     cout<<hh<<":"<<mm;
  465. }
  466.  
  467. int _tmain(int argc, _TCHAR* argv[])
  468. {
  469.     menu();
  470.     system("PAUSE");
  471.     return 0;
  472. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement