Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ShopManagement - program umożliwa zarządzanie siecią sklepów
- //
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- using namespace std;
- //=====================================
- void menu();
- int stringToInt(string hour);
- string copyString(int n, int m, string godz);
- //void shop_management(); //przenieść do wnętrza klasy
- void displayTime(int hh, int mm);
- void displayDays(bool dni[]);
- //====================================
- //enum dni_tygodnia
- //{
- // poniedzialek = 0,
- // wtorek,
- // sroda,
- // czwartek,
- // piatek,
- // sobota,
- // niedziela = 6,
- //};
- const string daysOfWeek[7] = {"poniedzialek", "wtorek", "sroda", "czwartek", "piatek", "sobota", "niedziela"};
- struct hours
- {
- short o_hour;
- short o_min;
- short c_hour;
- short c_min;
- };
- struct address
- {
- string city;
- string state;
- string postalCode;
- string street;
- string number;
- };
- //======================================'
- class dzial
- {
- public:
- //~dzial();
- void setId(int n);
- private:
- int id;
- int size;
- string name;
- // product **polka;
- };
- class shop
- {
- public:
- //~shop();
- void destroy();
- void add();
- void find();
- void shop_management();
- private:
- int id;
- string name;
- address shopAddress;
- int size; //określa ilość działów
- hours godziny;
- bool closedByUser;//czy supervisor zamknął sklep
- bool dni_tygodni[7];
- dzial **departments;
- void open_hours();
- void print();
- void days();
- void find(int id);//wyszukiwanie sklepu po ID
- void find(string state, bool type);//wyszukiwanie po wojewodztwie lub miescie
- void create(int n, dzial **&dep);
- void deleteShop();
- void alocateDep(dzial *&dep);
- };
- class polka
- {
- private:
- int id;
- int size;
- //product **produkty;
- };
- class product
- {
- private:
- int id;
- string numbers;
- string name;
- double price;
- string TPN;
- };
- //=====================================
- shop **sklep = new shop*[]; //spróbować później przenieść wewnątrz klasy
- int shops = 0; //spróbować później przenieść wewnątrz klasy
- void shop::add()
- {
- shop *tmp;
- bool _ok = 0;
- char select = 'f';
- tmp = new shop;
- while(!_ok)
- {
- tmp->id = shops;
- cin.sync();
- cout<<"Podaj nazwe sklepu\n";
- getline(cin,tmp->name);
- cout<<"Podaj miejscowosc\n";
- getline(cin,tmp->shopAddress.city);
- cout<<"Podaj wojewodztwo\n";
- getline(cin,tmp->shopAddress.state);
- cout<<"Podaj kod pocztowy\n";
- getline(cin,tmp->shopAddress.postalCode);
- cout<<"Podaj ulice\n";
- getline(cin,tmp->shopAddress.street);
- cout<<"Podaj numer\n";
- getline(cin,tmp->shopAddress.number);
- cout<<"Podaj ilosc dzialow\n";
- cin>>tmp->size;
- cin.sync();
- tmp->open_hours();
- cout<<"Podaj dni otwarcia\n";
- tmp->days();
- tmp->closedByUser = 0;
- cout<<"Wprowadziles sklep o ponizszych danych\n";
- tmp->print();
- while(select == 'f')
- {
- cout<<"Czy wprowadzone dane sa poprawne? [T/\N]\n";
- cin>>select;
- switch (select)
- {
- case 't':
- case 'T': _ok = 1;
- break;
- case 'n':
- case 'N': _ok = 0;
- break;
- default: cout<<"Bledny wybor, sprobuj ponownie\n";
- select = 'f';
- break;
- }
- }
- create(tmp->size, tmp->departments);
- shops ++;
- sklep[tmp->id] = tmp;
- }
- }
- void shop::destroy()
- {
- for (int i=0;i<this->size;i++)
- {
- delete this->departments[i];
- }
- this->departments = NULL;
- delete [] this->departments;
- delete this;
- --shops;
- }
- void shop::print()
- {
- cout<<"ID sklepu: "<<id<<endl;
- cout<<name<<endl;
- cout<<shopAddress.postalCode<<"\t"<<shopAddress.city<<endl;
- cout<<shopAddress.street<<" "<<shopAddress.number<<endl;
- displayDays(dni_tygodni);
- cout<<"Czynny od: ";
- displayTime(godziny.o_hour, godziny.o_min);
- cout<<" do: ";
- displayTime(godziny.c_hour, godziny.c_min);
- cout<<endl;
- cout<<endl;
- }
- void shop::open_hours()
- {
- string godz;
- string tmp;
- cout<<"Podaj godziny otwarcia\n";
- getline(cin,godz);
- tmp = copyString(2,0,godz);
- godziny.o_hour = stringToInt(tmp);
- tmp = copyString(2,3,godz);
- godziny.o_min = stringToInt(tmp);
- cout<<"Podaj godziny zamknięcia\n";
- getline(cin, godz);
- tmp = copyString(2,0,godz);
- godziny.c_hour = stringToInt(tmp);
- tmp = copyString(2,3,godz);
- godziny.c_min = stringToInt(tmp);
- }
- void shop::days()
- {
- cout<<"O = otwarte\nZ = zamkniete\n";
- char a;
- for (int i = 0;i<7;i++)
- {
- cout<<"\t"<<daysOfWeek[i]<<":"<<endl;
- cin>>a;
- if (a == 'O' || a == 'o') dni_tygodni[i] = 1;
- else dni_tygodni[i] = 0;
- }
- }
- void shop::find(string state, bool type)
- {
- bool found = 0;
- if (type)
- {
- for (int i=0;i<shops;i++)
- {
- if (sklep[i]->shopAddress.city == state)
- {
- sklep[i]->print();
- found = 1;
- }
- }
- }
- else
- {
- for (int i=0;i<shops;i++)
- {
- if (sklep[i]->shopAddress.state == state)
- {
- sklep[i]->print();
- found = 1;
- }
- }
- }
- if (!found) cout<<"Nie odnalezione zadnego sklepu spelniajacego kryteria\n";
- }
- void shop::find(int id) //wyszukuje sklep po id;
- {
- if (id>=shops)
- {
- cout<<"Nie odnaleziono sklepu o podanym numerze ID\n";
- return;
- }
- else
- {
- sklep[id]->print();
- }
- }
- void shop::deleteShop()
- {
- int id;
- cout<<"Podaj sklep ktory chcesz usunac\n";
- cin>>id;
- if (id<shops)
- {
- sklep[id]->destroy();
- for (int i=id;i<(shops - 1);i++)
- {
- sklep[id] = sklep[id+1];
- }
- }
- else cout<<"Nie odnaleziono sklepu o podanym nr ID\n";
- }
- void shop::find()
- {
- int select;
- string state;
- cout<<"\t\tWyszukaj sklep:\n";
- cout<<"\t\t\t[1] po ID\n";
- cout<<"\t\t\t[2] po wojewodztwie\n";
- cout<<"\t\t\t[3] po miejscowosci\n";
- cout<<"\n\t\t\t[0]Powrot\n";
- cin>>select;
- switch (select)
- {
- case 1: cout<<"Podaj ID\n";
- cin>>select;
- find(select);
- break;
- case 2: cout<<"Podaj wojewodztwo\n";
- getline(cin,state);
- find(state,0);
- break;
- case 3: cout<<"Podaj miejscowosc\n";
- getline(cin,state);
- find(state,1);
- break;
- case 0: return;
- break;
- default: cout<<"Bledny wybor\n";
- break;
- }
- }
- void shop::alocateDep(dzial *&dz)
- {
- //dzial *tmp;
- dz = new dzial;
- //dz = tmp;
- }
- void shop::create(int n, dzial **&dep)
- {
- dep = new dzial*[];
- for (int i=0;i<n;i++)
- {
- alocateDep(dep[i]);
- dep[i]->setId(i);
- }
- }
- //=====================================
- void dzial::setId(int n)
- {
- this->id = n;
- }
- //=====================================
- void menu()
- {
- char select = 'x';
- while(select != '0')
- {
- cout<<"================ Shop Management v.1 ==============================\n";
- cout<<"Wybierz akcje\n";
- cout<<"\t0 - Koniec\n";
- cout<<"\t1 - Zarzadzaj sklepami\n";
- cin>>select;
- switch (select)
- {
- case '0': break;
- case '1': sklep[0]->shop_management();
- break;
- default: cout<<"Bledny wybor\n";
- break;
- }
- }
- }
- void shop::shop_management()
- {
- char select = 'x';
- while (select != '0')
- {
- cout<<"\t0 - powrot\n";
- cout<<"\t\t1 - Dodaj nowy sklep\n";
- cout<<"\t\t2 - Wyszukaj sklep\n";
- cout<<"\t\t3 - Wyburz sklep\n";
- cin>>select;
- switch (select)
- {
- case '0': break;
- case '1': add();
- break;
- case '2': find();
- break;
- case '3': deleteShop();
- break;
- default: cout<<"Bledny wybor\n";
- break;
- }
- }
- }
- int stringToInt(string hour)//konwertuje podany string na int;
- {
- int godzina = 0;
- char tmp;
- int g;
- for (int i= 0;i<2;i++)
- {
- tmp = hour[i];
- g = static_cast<int>(tmp);
- g -= 48;
- godzina = godzina * 10 * i;
- godzina = godzina + g;
- }
- return godzina;
- }
- void displayDays(bool dni[])
- {
- cout<<"Sklep jest otwart w nastepujace dni:\n";
- for (int i=0;i<7;i++)
- {
- if (dni[i]) cout<<"\t"<<daysOfWeek[i]<<endl;
- }
- }
- string copyString(int n, int m, string godz)
- {
- //n - ilosc znakow kopiowanych, m - poczatek kopiowania
- string hh = "";
- for (int i=0; i<n; i++)
- {
- hh = hh + godz[m+i];
- }
- return hh;
- }
- void displayTime(int hh, int mm)
- {
- cout<<hh<<":"<<mm;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- menu();
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement