Advertisement
AlfaWolfPL

Untitled

Apr 9th, 2022 (edited)
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 33.82 KB | None | 0 0
  1. #include <iostream>
  2. #include <locale>
  3. #include<string>
  4. #include <fstream>
  5. #include <windows.h>
  6.  
  7.  
  8.  
  9. using namespace std;
  10.  
  11. struct users{
  12.     unsigned short ID{};
  13.     string login;
  14.     string haslo;
  15.     int group{};
  16. };
  17.  
  18. struct urzadzenie {
  19.     unsigned short ID{};
  20.     string marka;
  21.     string wersja;
  22.     int data_produkcji{};
  23. };
  24.  
  25. struct klient {
  26.     unsigned short cl{};
  27.     unsigned short ID{};
  28.     string imie;
  29.     string nazwisko;
  30.     int rok_dolanczenia{};
  31. };
  32.  
  33. struct wizyta {
  34.     unsigned short ID{};
  35.     unsigned short cl{};
  36.     string nazwa_urzadzenia;
  37.     string wlasciciel;
  38.     string data_wizyty{};
  39.     unsigned short typ{};
  40. };
  41.  
  42. struct prace {
  43.     unsigned short ID{};
  44.     string nazwa_urzadzenia;
  45.     string wersja;
  46.     string problem;
  47.     string rozwiazanie;
  48.     int cena{};
  49.     string data{};
  50.     string klient;
  51.     unsigned short typ{};
  52. };
  53.  
  54. //tworzenie/usuwanie
  55.  
  56. void stworz(users**& us, const size_t rozmiar) {
  57.     us = new users * [rozmiar];
  58.     for (size_t ind = 0; ind < rozmiar; ind++)
  59.         us[ind] = new users;
  60. }
  61.  
  62. void usun(users**& us, size_t rozmiar) {
  63.     for (size_t ind = 0; ind < rozmiar; ind++)
  64.         delete us[ind];
  65.     delete[] us;
  66.     us = nullptr;
  67.     rozmiar = 0;
  68. }
  69.  
  70. void stworz(urzadzenie**& ur, const size_t rozmiar) {
  71.     ur = new urzadzenie * [rozmiar];
  72.     for (size_t ind = 0; ind < rozmiar; ind++)
  73.         ur[ind] = new urzadzenie;
  74. }
  75.  
  76. void usun(urzadzenie**& ur, size_t rozmiar) {
  77.     for (size_t ind = 0; ind < rozmiar; ind++)
  78.         delete ur[ind];
  79.     delete[] ur;
  80.     ur = nullptr;
  81.     rozmiar = 0;
  82. }
  83.  
  84. void stworz(klient**& kl, const size_t rozmiar) {
  85.     kl = new klient * [rozmiar];
  86.     for (size_t ind = 0; ind < rozmiar; ind++)
  87.         kl[ind] = new klient;
  88. }
  89.  
  90. void usun(klient**& kl, size_t rozmiar) {
  91.     for (size_t ind = 0; ind < rozmiar; ind++)
  92.         delete kl[ind];
  93.     delete[] kl;
  94.     kl = nullptr;
  95.     rozmiar = 0;
  96. }
  97.  
  98. void stworz(wizyta**& wi, const size_t rozmiar) {
  99.     wi = new wizyta * [rozmiar];
  100.     for (size_t ind = 0; ind < rozmiar; ind++)
  101.         wi[ind] = new wizyta;
  102. }
  103.  
  104. void usun(wizyta**& wi, size_t rozmiar) {
  105.     for (size_t ind = 0; ind < rozmiar; ind++)
  106.         delete wi[ind];
  107.     delete[] wi;
  108.     wi = nullptr;
  109.     rozmiar = 0;
  110. }
  111. void stworz(prace**& pr, const size_t rozmiarp) {
  112.     pr = new prace * [rozmiarp];
  113.     for (size_t ind = 0; ind < rozmiarp; ind++)
  114.         pr[ind] = new prace;
  115. }
  116.  
  117. void usun(prace**& pr, size_t rozmiarp) {
  118.     for (size_t ind = 0; ind < rozmiarp; ind++)
  119.         delete pr[ind];
  120.     delete[] pr;
  121.     pr = nullptr;
  122.     rozmiarp = 0;
  123. }
  124.  
  125. //enkrypcja string dla haseł i urzytkownków
  126.  
  127. string encrypt(string msg, string key)
  128. {
  129.     string tmp(key);
  130.     while (key.size() < msg.size())
  131.         key += tmp;
  132.     for (string::size_type i = 0; i < msg.size(); ++i)
  133.         msg[i] ^= key[i];
  134.     return msg;
  135. }
  136. string decrypt(string msg, string key)
  137. {
  138.     return encrypt(msg, key);
  139. }
  140.  
  141. //zapis/odczyt z/do pliku
  142.  
  143. void write(urzadzenie**& ur,const size_t rozmiar){
  144.     ofstream myfile("urzadzenia.txt");
  145.     if (myfile.is_open())
  146.     {
  147.         myfile << ur[0]->ID<<"\n";
  148.         for (int i = 0; i < rozmiar; i++) {
  149.             myfile << ur[i]->marka<<"\n";
  150.             myfile << ur[i]->data_produkcji<<"\n";
  151.             myfile << ur[i]->wersja<<"\n";
  152.         }
  153.         myfile.close();
  154.     }
  155. }
  156.  
  157. void read( urzadzenie**& ur, const size_t rozmiar){
  158.     ifstream myfile;
  159.     myfile.open("urzadzenia.txt");
  160.     myfile >> ur[0]->ID;
  161.     for (int i = 0; i < rozmiar; i++) {
  162.         myfile >> ur[i]->marka;
  163.         myfile >> ur[i]->data_produkcji;
  164.         myfile >> ur[i]->wersja;
  165.     }
  166. }
  167.  
  168. void write(klient**& kl, const size_t rozmiar){
  169.     ofstream myfile("klient.txt");
  170.     if (myfile.is_open())
  171.     {
  172.         myfile << kl[0]->ID << "\n";
  173.         for (int i = 0; i < rozmiar; i++) {
  174.             myfile << kl[i]->cl << "\n";
  175.             myfile << kl[i]->imie << "\n";
  176.             myfile << kl[i]->nazwisko << "\n";
  177.             myfile << kl[i]->rok_dolanczenia << "\n";
  178.         }
  179.         myfile.close();
  180.     }
  181. }
  182.  
  183. void read(klient**& kl, const size_t rozmiar){
  184.     ifstream myfile;
  185.     myfile.open("klient.txt");
  186.     myfile >> kl[0]->ID;
  187.     for (int i = 0; i < rozmiar; i++) {
  188.         myfile >> kl[i]->cl;
  189.         myfile >> kl[i]->imie;
  190.         myfile >> kl[i]->nazwisko;
  191.         myfile >> kl[i]->rok_dolanczenia;
  192.     }
  193. }
  194. void write(prace**& pr, const size_t rozmiarp) {
  195.     ofstream myfile("prace.txt");
  196.     if (myfile.is_open())
  197.     {
  198.         myfile << pr[0]->ID << "\n";
  199.         for (int i = 0; i < rozmiarp; i++) {
  200.             myfile << pr[i]->problem << "\n";
  201.             myfile << pr[i]->nazwa_urzadzenia << "\n";
  202.             myfile << pr[i]->wersja << "\n";
  203.             myfile << pr[i]->klient << "\n";
  204.             myfile << pr[i]->typ << "\n";
  205.             myfile << pr[i]->cena << "\n";
  206.             myfile << pr[i]->data << "\n";
  207.             myfile << pr[i]->rozwiazanie << "\n";
  208.         }
  209.         myfile.close();
  210.     }
  211. }
  212.  
  213. void read(prace**& pr, const size_t rozmiarp) {
  214.     ifstream myfile;
  215.     string z;
  216.     myfile.open("prace.txt");
  217.     myfile >> pr[0]->ID;
  218.     for (int i = 0; i < rozmiarp; i++) {
  219.         myfile >> noskipws >> z;
  220.         cout << z;
  221.         myfile >> pr[i]->nazwa_urzadzenia;
  222.         myfile >> pr[i]->wersja;
  223.         myfile >> pr[i]->klient;
  224.         myfile >> pr[i]->typ;
  225.         myfile >> pr[i]->cena;
  226.         myfile >> pr[i]->data;
  227.         myfile >> noskipws() >> pr[i]->rozwiazanie;
  228.     }
  229. }
  230. void write(wizyta**& wi, const size_t rozmiarz) {
  231.     ofstream myfile("wizyta.txt");
  232.     if (myfile.is_open())
  233.     {
  234.         myfile << wi[0]->ID << "\n";
  235.         for (int i = 0; i < rozmiarz; i++) {
  236.             myfile << wi[i]->cl << "\n";
  237.             myfile << wi[i]->wlasciciel << "\n";
  238.             myfile << wi[i]->nazwa_urzadzenia << "\n";
  239.             myfile << wi[i]->data_wizyty << "\n";
  240.             myfile << wi[i]->typ << "\n";
  241.         }
  242.         myfile.close();
  243.     }
  244. }
  245.  
  246. void read(wizyta**& wi, const size_t rozmiarz) {
  247.     ifstream myfile;
  248.     myfile.open("wizyta.txt");
  249.     myfile >> wi[0]->ID;
  250.     for (int i = 0; i < rozmiarz; i++) {
  251.         myfile >> wi[i]->cl;
  252.         myfile >> wi[i]->wlasciciel;
  253.         myfile >> wi[i]->nazwa_urzadzenia;
  254.         myfile >> wi[i]->data_wizyty;
  255.         myfile >> wi[i]->typ;
  256.     }
  257. }
  258. void write(users**& us, const size_t rozmiar){
  259.     string stl, stp;
  260.     ofstream myfile("users.txt");
  261.     myfile << us[0]->ID<< "\n";
  262.     if (myfile.is_open())
  263.     {
  264.         for (int i = 0; i < rozmiar; i++) {
  265.             string stl = encrypt(us[i]->login, "26");
  266.             string stp = encrypt(us[i]->haslo, "26");
  267.             myfile << stl << "\n";
  268.             myfile << stp << "\n";
  269.             myfile <<us[i]->group << "\n";
  270.         }
  271.         myfile.close();
  272.     }
  273. }
  274.  
  275. void read(users**& us, const size_t rozmiar)
  276. {
  277.     string stl, stp;
  278.     ifstream myfile;
  279.     myfile.open("users.txt");
  280.     myfile >> us[0]->ID;
  281.     for (int i = 0; i < rozmiar; i++) {
  282.         myfile >> stl;
  283.         myfile >> stp;
  284.         string stu = decrypt(stl, "26");
  285.         string sth = decrypt(stp, "26");
  286.         us[i]->login = stu;
  287.         us[i]->haslo = sth;
  288.         myfile >> us[i]->group;
  289.     }
  290. }
  291.  
  292. //dodatkowe skrypty
  293.  
  294. void skryp1(wizyta** wi, klient** kl, string wl, int tmp, const size_t rozmiar) {
  295.     for (int i = 0; i < rozmiar; i++) {
  296.         if (wl == kl[i]->imie) {
  297.             wi[tmp]->wlasciciel = wl;
  298.             i = 100;
  299.         }
  300.         else if (i == rozmiar - 1) {
  301.             cout << "Wprowadzono imię którego nie ma w bazie" << "\n"
  302.                 << "Wprowadź ponownie" << "\n";
  303.             cin >> wl;
  304.             i = -1;
  305.         }
  306.         else {
  307.         }
  308.     }
  309. }
  310.  
  311. void skryp2(wizyta** wi, urzadzenie** ur, string wu, int tmp, const size_t rozmiar) {
  312.     for (int i = 0; i < rozmiar; i++) {
  313.         if (wu == ur[i]->marka) {
  314.             wi[tmp]->nazwa_urzadzenia = wu;
  315.             i = 100;
  316.         }
  317.         else if (i == rozmiar - 1) {
  318.             cout << "Wprowadzono nazwę której nie ma w bazie" << "\n"
  319.                 << "Wprowadź ponownie" << "\n";
  320.             cin >> wu;
  321.             i = -1;
  322.         }
  323.         else {
  324.         }
  325.     }
  326. }
  327.  
  328. string sr1(int id, prace** pr) {
  329.     unsigned short tp;
  330.     string typ;
  331.     tp = pr[id]->typ;
  332.     if (tp == 1)
  333.         typ = "Serwis";
  334.     else if (tp == 2)
  335.         typ = "Konserwacja";
  336.     return typ;
  337. }
  338.  
  339. string sr1(int id, wizyta** wi) {
  340.     unsigned short tp;
  341.     string typ;
  342.     tp = wi[id]->typ;
  343.     if (tp == 1)
  344.         typ = "Serwis";
  345.     else if (tp == 2)
  346.         typ = "Konserwacja";
  347.     return typ;
  348. }
  349.  
  350. //dodawanie danych do bazy
  351.  
  352. void dodaj(urzadzenie** ur, const size_t rozmiar,const int IDU) {
  353.     unsigned short tmp = ur[IDU]->ID;
  354.     if (tmp > rozmiar) {
  355.         tmp = 0;
  356.     }
  357.     else {
  358.     };
  359.     cout << "Wprowadź datę produkcji : ";
  360.     cin >> ur[tmp]->data_produkcji;
  361.     cout << "Wprowadź markę : ";
  362.     cin >> ur[tmp]->marka;
  363.     cout << "Wprowadź wersję : ";
  364.     cin >> ur[tmp]->wersja;
  365.     tmp++;
  366.     ur[IDU]->ID = tmp;
  367.     cout << "Wprowadzono!" << endl;
  368. }
  369.  
  370. void dodaj(users** ur, const size_t rozmiar, const int IDU) {
  371.     string t;
  372.     unsigned short tmp = ur[IDU]->ID;
  373.     if (tmp > rozmiar) {
  374.         tmp = 0;
  375.     }
  376.     else {
  377.     };
  378.     cout << "Wprowadź login : ";
  379.     cin >> ur[tmp]->login;
  380.     cout << "Wprowadź haslo : ";
  381.     cin >> ur[tmp]->haslo;
  382.     cout << "Wprowadź grópę (admin,recepcja,konserwator) : ";
  383.     cin >> t;
  384.         if(t=="sudo")
  385.         ur[tmp]->group=1;
  386.         else if (t == "admin")
  387.             ur[tmp]->group = 2;
  388.         else if (t == "recepcja")
  389.             ur[tmp]->group = 3;
  390.         else if (t == "konserwator")
  391.             ur[tmp]->group = 4;
  392.     tmp++;
  393.     ur[IDU]->ID = tmp;
  394.     cout << "Wprowadzono!" << endl;
  395. }
  396.  
  397. void dodaj(klient** kl, const size_t rozmiar,const int IDU) {
  398.     unsigned short tmp = kl[IDU]->ID;
  399.     if (tmp > rozmiar) {
  400.         tmp = 0;
  401.     }
  402.     else {
  403.     };
  404.     for (int i = 0; i <= tmp; i++)
  405.         if (kl[i]->cl == 0) {
  406.             cout << "Wprowadź imię klienta : ";
  407.             cin >> kl[i]->imie;
  408.             cout << "Wprowadź nazwisko Klienta : ";
  409.             cin >> kl[i]->nazwisko;
  410.             cout << "Wprowadź rok dołączenia : ";
  411.             cin >> kl[i]->rok_dolanczenia;
  412.             kl[i]->cl = 1;
  413.             cout << "Wprowadzono!" << endl;
  414.             i = tmp + 3;
  415.         }
  416.         else if (i == tmp) {
  417.             cout << "Wprowadź imię klienta : ";
  418.             cin >> kl[tmp]->imie;
  419.             cout << "Wprowadź nazwisko Klienta : ";
  420.             cin >> kl[tmp]->nazwisko;
  421.             cout << "Wprowadź rok dołączenia : ";
  422.             cin >> kl[tmp]->rok_dolanczenia;
  423.             kl[tmp]->cl = 1;
  424.             tmp++;
  425.             kl[IDU]->ID = tmp;
  426.             cout << "Wprowadzono!" << endl;
  427.             i = tmp + 3;
  428.         }
  429.         else {};
  430. }
  431.  
  432. void dodaj(wizyta** wi, klient** kl, urzadzenie** ur, const size_t rozmiar, const int IDU) {
  433.     string wl;
  434.     string wu;
  435.     unsigned short tmp = wi[IDU]->ID;
  436.     if (tmp > rozmiar) {
  437.         tmp = 0;
  438.     }
  439.     else {
  440.     };
  441.     for (int l = 0; l <= tmp; l++)
  442.         if (wi[l]->cl == 0) {
  443.             cout << "Wprowadź nazwę urządzeia : ";
  444.             cin >> wu;
  445.             skryp2(wi, ur, wu, l, rozmiar);
  446.             cout << "Wprowadź właściciela : ";
  447.             cin >> wl;
  448.             skryp1(wi, kl, wl, l, rozmiar);
  449.             cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
  450.             cin >> wi[l]->typ;
  451.             cout << "Wprowadź datę wizyty : ";
  452.             wi[l]->cl = 1;
  453.             cin >> wi[l]->data_wizyty;
  454.             cout << "Wprowadzono!" << endl;
  455.             l = tmp + 3;
  456.         }
  457.         else if (l == tmp) {
  458.             cout << "Wprowadź nazwę urządzeia : ";
  459.             cin >> wu;
  460.             skryp2(wi, ur, wu, tmp, rozmiar);
  461.             cout << "Wprowadź właściciela : ";
  462.             cin >> wl;
  463.             skryp1(wi, kl, wl, tmp, rozmiar);
  464.             cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
  465.             cin >> wi[tmp]->typ;
  466.             cout << "Wprowadź datę wizyty : ";
  467.             wi[tmp]->cl = 1;
  468.             cin >> wi[tmp]->data_wizyty;
  469.             tmp++;
  470.             wi[IDU]->ID = tmp;
  471.             cout << "Wprowadzono!" << endl;
  472.             l = tmp + 3;
  473.         }
  474.         else {};
  475. }
  476.  
  477.  
  478. void dodaj(prace** pr, klient** kl, urzadzenie** ur, const size_t rozmiarp, const size_t rozmiar, const int IDU) {
  479.     string wl;
  480.     string wu;
  481.     string l1, l2;
  482.     unsigned short tmp = pr[IDU]->ID;
  483.     if (tmp > rozmiarp) {
  484.         tmp = 0;
  485.     }
  486.     else {
  487.     };
  488.     cout << "Wprowadź nazwę urządzenia : ";
  489.     cin >> wu;
  490.     for (int i = 0; i < rozmiar; i++) {
  491.         if (wu == ur[i]->marka) {
  492.             pr[tmp]->nazwa_urzadzenia = wu;
  493.             i = 100;
  494.         }
  495.         else if (i == rozmiar - 1) {
  496.             cout << "Wprowadzono nazwę której nie ma w bazie" << "\n"
  497.                 << "Wprowadź ponownie" << "\n";
  498.             cin >> wu;
  499.             i = -1;
  500.         }
  501.         else {
  502.         }
  503.     }
  504.     cout << "Wprowadź wersję urządzenia : ";
  505.     cin >> pr[tmp]->wersja;
  506.     cout << "Wprowadź opis problemu : ";
  507.     getline(cin, l1);
  508.     getline(cin, l1);
  509.     pr[tmp]->problem = l1;
  510.     cout << "Wprowadź rozwiązanie problemu : ";
  511.     getline(cin, l2);
  512.     pr[tmp]->rozwiazanie = l2;
  513.     cout << "Wprowadź imię klienta : ";
  514.     cin >> wl;
  515.     for (int i = 0; i < rozmiar; i++) {
  516.         if (wl == kl[i]->imie) {
  517.             pr[tmp]->klient = wl;
  518.             i = 100;
  519.         }
  520.         else if (i == rozmiar - 1) {
  521.             cout << "Wprowadzono imię którego nie ma w bazie" << "\n"
  522.                 << "Wprowadź ponownie" << "\n";
  523.             cin >> wl;
  524.             i = -1;
  525.         }
  526.         else {
  527.         }
  528.     }
  529.     cout << "Wprowadź datę wykonania : ";
  530.     cin >> pr[tmp]->data;
  531.     cout << "Wprowadź cenę usługi : ";
  532.     cin >> pr[tmp]->cena;
  533.     cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
  534.     cin >> pr[tmp]->typ;
  535.     tmp++;
  536.     pr[IDU]->ID = tmp;
  537.     cout << "Wprowadzono!" << endl;
  538. }
  539.  
  540. //wywietlanie
  541.  
  542. void zzwp(prace**& pr, const size_t rozmiarp) {
  543.     int clk=0;
  544.     for(int i = 0; i < rozmiarp; i++)
  545.         clk = clk + pr[i]->cena;
  546.     cout << "Zarobki za wykonane prace" << endl;
  547.     cout << clk << endl;
  548. }
  549.  
  550. void print(users**& ur, const size_t rozmiar) {
  551.     unsigned short tmp = ur[0]->ID;
  552.     if (tmp > rozmiar) {
  553.         tmp = 0;
  554.     }
  555.     else {};
  556.     cout << "<======= urzytkownicy =======>" << endl;
  557.     for (int id = 0; id < tmp; id++) {
  558.         cout << "login: " << ur[id]->login << "\t" << "hasło: " << ur[id]->haslo
  559.             << "\t" << "grupa: " << ur[id]->group << endl;
  560.     }
  561. }
  562.  
  563.  
  564. void print(urzadzenie**& ur, const size_t rozmiar) {
  565.     unsigned short tmp = ur[0]->ID;
  566.     if (tmp > rozmiar) {
  567.         tmp = 0;
  568.     }
  569.     else {};
  570.     cout << "<======= Urządzenia =======>" << endl;
  571.     for (int id = 0; id < tmp; id++) {
  572.         cout << "Marka: " << ur[id]->marka << "\t" << "Wersja: " << ur[id]->wersja
  573.             << "\t" << "Data produkcji: " << ur[id]->data_produkcji << endl;
  574.     }
  575. }
  576.  
  577. void print(klient**& kl, const size_t rozmiar) {
  578.     unsigned short tmp = kl[0]->ID;
  579.     if (tmp > rozmiar) {
  580.         tmp = 0;
  581.     }
  582.     else {};
  583.     cout << "<======= Klienci =======>" << endl;
  584.     for (int id = 0; id < tmp; id++) {
  585.         cout << id << ". " << "Imię klienta: " << kl[id]->imie << "\t" << "Nazwisko klienta: " << kl[id]->nazwisko
  586.             << "\t" << "Rok dołączenia klienta: " << kl[id]->rok_dolanczenia << endl;
  587.     }
  588. }
  589.  
  590. void print(wizyta**& wi, const size_t rozmiar) {
  591.     unsigned short tmp = wi[0]->ID;
  592.     if (tmp > rozmiar) {
  593.         tmp = 0;
  594.     }
  595.     else {};
  596.     cout << "<======= Wizyty =======>" << endl;
  597.     for (int id = 0; id < tmp; id++) {
  598.         string typ = sr1(id, wi);
  599.         cout << "Imię klienta: " << wi[id]->wlasciciel << "\t" << "Data wizyty u klienta: " << "Typ usługi:" << typ << wi[id]->data_wizyty
  600.             << "\t" << "Nazwa urządzenia: " << wi[id]->nazwa_urzadzenia << endl;
  601.     }
  602. }
  603.  
  604. void print(prace**& pr, const size_t rozmiar) {
  605.     unsigned short tmp = pr[0]->ID;
  606.     if (tmp > rozmiar) {
  607.         tmp = 0;
  608.     }
  609.     else {};
  610.     cout << "<======= Wykonane prace =======>" << endl;
  611.     for (int id = 0; id < tmp; id++) {
  612.         string typ = sr1(id, pr);
  613.         cout << "Typ usługi:" << typ << "Nazwa urządzenia: " << pr[id]->nazwa_urzadzenia << "\t" << "Wersja: " << pr[id]->wersja << "\t" << "Opis problemu: " << pr[id]->problem
  614.             << "\t \n" << "Opis rozwiązania: " << pr[id]->rozwiazanie << "\t" << "Imię klienta: " << pr[id]->klient << "\t" << "Data: " << pr[id]->data << "\t" << "Cena usługi: " << pr[id]->cena << "\n==========><==========\n" << endl;
  615.     }
  616. }
  617.  
  618. //koniec wyświetlania
  619.  
  620. //usuwanie wybranego klienta
  621.  
  622. void usuw(klient**& kl, size_t rozmiar, const int IDU) {
  623.     int p;
  624.     string l;
  625.     cout << "Wyświetlić listę klientów? T/N" << endl;
  626.     cin >> l;
  627.     if (l == "T"||l=="t") {
  628.         print(kl, rozmiar);
  629.     }
  630.     else {};
  631.     cout << "wpisz liczbę od 0 do ostatniej wyświetlonej" << endl;
  632.     cin >> p;
  633.     kl[p]->imie = "--";
  634.     kl[p]->nazwisko = "--";
  635.     kl[p]->rok_dolanczenia = 000;
  636.     kl[p]->cl = 0;
  637. }
  638.  
  639. //usuwanie wybranej wizyty
  640.  
  641. void usuw(wizyta**& wi, size_t rozmiar, const int IDU) {
  642.     int p;
  643.     string l;
  644.     cout << "Wyświetlić listę wizyt? T/N" << endl;
  645.     cin >> l;
  646.     if (l == "T"||l=="t") {
  647.         print(wi, rozmiar);
  648.     }
  649.     else {};
  650.     cout << "wpisz liczbę od 0 do ostatniej wyświetlonej" << endl;
  651.     cin >> p;
  652.     wi[p]->wlasciciel = "--";
  653.     wi[p]->nazwa_urzadzenia = "--";
  654.     wi[p]->data_wizyty = "000";
  655.     wi[p]->cl = 0;
  656. }
  657.  
  658. // menu dla super user
  659.  
  660. void menu() {
  661.     const int IDU=0;
  662.     setlocale(LC_CTYPE, "Polish");
  663.     users** us{ nullptr };
  664.     urzadzenie** ur{ nullptr };
  665.     klient** kl{ nullptr };
  666.     wizyta** wi{ nullptr };
  667.     prace** pr{ nullptr };
  668.     const size_t rozmiar = 10;
  669.     const size_t rozmiarz = 20;
  670.     const size_t rozmiarp = 40;
  671.     size_t choice{};
  672.     do {
  673.         cout << "Menu\n\n";
  674.         cout << "1. Stwórz odpowiednie tablice" << endl;
  675.         cout << "2. Dodaj urządzenie" << endl;
  676.         cout << "3. Wyświetl urządzenia" << endl;
  677.         cout << "4. Dodaj klienta" << endl;
  678.         cout << "5. Pokarz klientów" << endl;
  679.         cout << "6. Usuń klienta" << endl;
  680.         cout << "7. Dodaj wizytę" << endl;
  681.         cout << "8. Pokarz wizyty" << endl;
  682.         cout << "9. Usuń wizytę" << endl;
  683.         cout << "10. Dodaj wykonanie pracy" << endl;
  684.         cout << "11. Wyświetl wykonane prace" << endl;
  685.         cout << "12. dodaj urzytkownika" << endl;
  686.         cout << "13.pokaż urzytkowników" << endl;
  687.         cout << "0. Exit" << endl;
  688.         cout << "Wybież opcję : ";
  689.         if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
  690.             stworz(us, rozmiar);
  691.             stworz(ur, rozmiar);
  692.             stworz(kl, rozmiar);
  693.             stworz(wi, rozmiarz);
  694.             stworz(pr, rozmiarp);
  695.             read(us, rozmiar);
  696.             read(ur, rozmiar);
  697.             read(kl, rozmiar);
  698.             read(wi, rozmiarz);
  699.             read(pr, rozmiarp);
  700.         }
  701.         cin >> choice;
  702.         switch (choice) {
  703.         case 1:
  704.             if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
  705.                 stworz(us, rozmiar);
  706.                 stworz(ur, rozmiar);
  707.                 stworz(kl, rozmiar);
  708.                 stworz(wi, rozmiarz);
  709.                 stworz(pr, rozmiarp);
  710.                 read(us, rozmiar);
  711.                 read(ur, rozmiar);
  712.                 read(kl, rozmiar);
  713.                 read(wi, rozmiarz);
  714.                 read(pr, rozmiarp);
  715.             }
  716.             else
  717.                 cout << "Tablice są stworzone" << endl;
  718.                 system("pause");
  719.                 system("cls");
  720.             break;
  721.         case 2:
  722.             if (ur != nullptr)
  723.                 dodaj(ur, rozmiar, IDU);
  724.             else
  725.                 cout << "Stwórz tablicę" << endl;
  726.                 system("pause");
  727.                 system("cls");
  728.             break;
  729.         case 3:
  730.             if (ur != nullptr) {
  731.                 print(ur, rozmiar);
  732.             }
  733.             else
  734.                 cout << "Stwórz tablicę !" << endl;
  735.                 system("pause");
  736.                 system("cls");
  737.             break;
  738.         case 4:
  739.             if (kl != nullptr)
  740.                 dodaj(kl, rozmiar, IDU);
  741.             else
  742.                 cout << "Stwórz tablice" << endl;
  743.                 system("pause");
  744.                 system("cls");
  745.             break;
  746.         case 5:
  747.             if (kl != nullptr) {
  748.                 print(kl, rozmiar);
  749.             }
  750.             else
  751.                 cout << "brak danych !" << endl;
  752.                 system("pause");
  753.                 system("cls");
  754.             break;
  755.         case 6:
  756.             if (kl != nullptr)
  757.                 usuw(kl, rozmiar, IDU);
  758.             else
  759.                 cout << "Stwórz tablice" << endl;
  760.                 system("pause");
  761.                 system("cls");
  762.            
  763.             break;
  764.         case 7:
  765.             if (wi != nullptr)
  766.                 dodaj(wi, kl, ur, rozmiarz, IDU);
  767.             else
  768.                 cout << "Stwórz tablice" << endl;
  769.                 system("pause");
  770.                 system("cls");
  771.             break;
  772.         case 8:
  773.             if (wi != nullptr)
  774.                 print(wi, rozmiarz);
  775.             else
  776.                 cout << "brak danych" << endl;
  777.                 system("pause");
  778.                 system("cls");
  779.             break;
  780.         case 9:
  781.             if (wi != nullptr)
  782.                 usuw(wi, rozmiarz, IDU);
  783.             else
  784.                 cout << "Stwórz tablice" << endl;
  785.                 system("pause");
  786.                 system("cls");
  787.             break;
  788.         case 10:
  789.             if (pr != nullptr)
  790.                 dodaj(pr, kl, ur, rozmiarp,rozmiar, IDU);
  791.             else
  792.                 cout << "Stwórz tablice" << endl;
  793.                 system("pause");
  794.                 system("cls");
  795.             break;
  796.         case 11:
  797.             if (pr != nullptr)
  798.                 print(pr, rozmiarp);
  799.             else
  800.                 cout << "Stwórz tablice" << endl;
  801.                 system("pause");
  802.                 system("cls");
  803.             break;
  804.         case 12:
  805.             if (us != nullptr)
  806.                 dodaj(us, rozmiar,IDU);
  807.             else
  808.                 cout << "Stwórz tablice" << endl;
  809.             system("pause");
  810.             system("cls");
  811.             break;
  812.         case 13:
  813.             if (us != nullptr)
  814.                 print(us, rozmiar);
  815.             else
  816.                 cout << "Stwórz tablice" << endl;
  817.             system("pause");
  818.             system("cls");
  819.             break;
  820.         case 0:
  821.             if (ur != nullptr || kl != nullptr || wi != nullptr || pr != nullptr) {
  822.                 write(kl, rozmiar);
  823.                 write(ur, rozmiar);
  824.                 write(us, rozmiar);
  825.                 write(wi, rozmiarz);
  826.                 write(pr, rozmiarp);
  827.                 usun(us, rozmiar);
  828.                 usun(ur, rozmiar);
  829.                 usun(kl, rozmiar);
  830.                 usun(wi, rozmiarz);
  831.                 usun(pr, rozmiarp);
  832.             }
  833.             if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
  834.                 cout << "Baza jest pusta !" << endl;
  835.                 break;
  836.         default:
  837.             cout << "Błędny wybór. Powtórz\n";
  838.             }
  839.         }  
  840.     }while (choice != 0);
  841. }
  842.  
  843. // menu dla recepcji
  844.  
  845. void recmenu(){
  846.     urzadzenie** ur{ nullptr };
  847.     klient** kl{ nullptr };
  848.     wizyta** wi{ nullptr };
  849.     const size_t rozmiarz = 20;
  850.     const int IDU = 0;
  851.     setlocale(LC_CTYPE, "Polish");
  852.     const size_t rozmiar = 10;
  853.     size_t choice{};
  854.     do {
  855.         cout << "RECEPCJA\n\n";
  856.         cout << "1. Wprowadź klienta" << endl;
  857.         cout << "2. Pokarz klientów" << endl;
  858.         cout << "3. Usuń klienta" << endl;
  859.         cout << "4. Dodaj wizytę Serwisanta u klienta" << endl;
  860.         cout << "5. Wyświetl wizyty" << endl;
  861.         cout << "6. Usuń wyzytę" << endl;
  862.         cout << "7. Wyświetl urządzenia" << endl;
  863.         cout << "0. Wyjście" << endl;
  864.         cout << "Wybież opcję : ";
  865.         if (ur == nullptr || kl == nullptr || wi == nullptr ) {
  866.             stworz(ur, rozmiar);
  867.             stworz(kl, rozmiar);
  868.             stworz(wi, rozmiarz);
  869.             read(ur, rozmiar);
  870.             read(kl, rozmiar);
  871.             read(wi, rozmiarz);
  872.         }
  873.         cin >> choice;
  874.         switch (choice) {
  875.         case 1:
  876.             if (kl != nullptr)
  877.                 dodaj(kl, rozmiar, IDU);
  878.             else
  879.                 cout << "Błąd !" << endl;
  880.             system("pause");
  881.             system("cls");
  882.             break;
  883.         case 2:
  884.             if (kl != nullptr) {
  885.                 print(kl, rozmiar);
  886.             }
  887.             else
  888.                 cout << "Błąd !" << endl;
  889.             system("pause");
  890.             system("cls");
  891.             break;
  892.         case 3:
  893.             if (kl != nullptr)
  894.                 usuw(kl, rozmiar, IDU);
  895.             else
  896.                 cout << "Błąd !" << endl;
  897.             system("pause");
  898.             system("cls");
  899.             break;
  900.         case 4:
  901.             if (wi != nullptr)
  902.                 dodaj(wi, kl, ur, rozmiarz, IDU);
  903.             else
  904.                 cout << "Błąd !" << endl;
  905.             system("pause");
  906.             system("cls");
  907.             break;
  908.         case 5:
  909.             if (wi != nullptr)
  910.                 print(wi, rozmiarz);
  911.             else
  912.                 cout << "Błąd !" << endl;
  913.             system("pause");
  914.             system("cls");
  915.             break;
  916.         case 6:
  917.             if (wi != nullptr)
  918.                 usuw(wi, rozmiarz, IDU);
  919.             else
  920.                 cout << "Błąd !" << endl;
  921.             system("pause");
  922.             system("cls");
  923.             break;
  924.         case 7:
  925.             if (ur != nullptr) {
  926.                 print(ur, rozmiar);
  927.             }
  928.             else
  929.                 cout << "Błąd !" << endl;
  930.             system("pause");
  931.             system("cls");
  932.             break;
  933.         case 0:
  934.             if (ur != nullptr || kl != nullptr || wi != nullptr ) {
  935.                 write(kl, rozmiar);
  936.                 write(ur, rozmiar);
  937.                 write(wi, rozmiarz);
  938.                 usun(ur, rozmiar);
  939.                 usun(kl, rozmiar);
  940.                 usun(wi, rozmiarz);
  941.             }
  942.             if (ur == nullptr || kl == nullptr || wi == nullptr ) {
  943.                 cout << "Baza jest pusta !" << endl;
  944.                 break;
  945.         default:
  946.             cout << "Błędny wybór. Powtórz\n";
  947.             }
  948.         }
  949.     } while (choice != 0);
  950.    
  951. }
  952.  
  953. //menu dla administratora (włściciela)
  954.  
  955. void adminmenu() {
  956.     urzadzenie** ur{ nullptr };
  957.     users** us{ nullptr };
  958.     prace** pr{ nullptr };
  959.     const int IDU = 0;
  960.     setlocale(LC_CTYPE, "Polish");
  961.     const size_t rozmiar = 10;
  962.     const size_t rozmiarp = 40;
  963.     size_t choice{};
  964.     do {
  965.         cout << "WŁAŚCICIEL\n\n";
  966.         cout << "1. Wprowadź urządzenie" << endl;
  967.         cout << "2. Pokarz urządzenia" << endl;
  968.         cout << "3. Usuń urządzenie" << endl;
  969.         cout << "4. Dodaj urzytkownika" << endl;
  970.         cout << "5. Wyświetl urzytkowników" << endl;
  971.         cout << "6. Wyświetl zarobki za wykonane prace" << endl;
  972.         cout << "0. Wyjście" << endl;
  973.         cout << "Wybież opcję : ";
  974.         if (ur == nullptr || us == nullptr || pr == nullptr) {
  975.             stworz(ur, rozmiar);
  976.             stworz(us, rozmiar);
  977.             stworz(pr, rozmiarp);
  978.             read(ur, rozmiar);
  979.             read(us, rozmiar);
  980.             read(pr, rozmiarp);
  981.         }
  982.         cin >> choice;
  983.         switch (choice) {
  984.         case 1:
  985.             if (ur != nullptr)
  986.                 dodaj(ur, rozmiar, IDU);
  987.             else
  988.                 cout << "Błąd" << endl;
  989.             system("pause");
  990.             system("cls");
  991.             break;
  992.         case 2:
  993.             if (ur != nullptr) {
  994.                 print(ur, rozmiar);
  995.             }
  996.             else
  997.                 cout << "Błąd" << endl;
  998.             system("pause");
  999.             system("cls");
  1000.             break;
  1001.         case 3:
  1002.             if (ur != nullptr) {}
  1003.                // usuw(kl, rozmiar, IDU);
  1004.             else
  1005.                 cout << "Błąd !" << endl;
  1006.             system("pause");
  1007.             system("cls");
  1008.             break;
  1009.         case 4:
  1010.             if (us != nullptr)
  1011.                 dodaj(us, rozmiar, IDU);
  1012.             else
  1013.                 cout << "Błąd" << endl;
  1014.             system("pause");
  1015.             system("cls");
  1016.             break;
  1017.         case 5:
  1018.             if (us != nullptr)
  1019.                 print(us, rozmiar);
  1020.             else
  1021.                 cout << "Błąd" << endl;
  1022.             system("pause");
  1023.             system("cls");
  1024.             break;
  1025.         case 6:
  1026.             if (us != nullptr)
  1027.                 zzwp(pr, rozmiarp);
  1028.             else
  1029.                 cout << "Błąd" << endl;
  1030.             system("pause");
  1031.             system("cls");
  1032.             break;
  1033.         case 0:
  1034.             if (ur != nullptr || us != nullptr || pr != nullptr) {
  1035.                 write(us, rozmiar);
  1036.                 write(ur, rozmiar);
  1037.                 usun(ur, rozmiar);
  1038.                 usun(us, rozmiar);
  1039.                 usun(pr, rozmiarp);
  1040.             }
  1041.             if (ur == nullptr || us == nullptr || pr == nullptr) {
  1042.                 cout << "Baza jest pusta !" << endl;
  1043.                 break;
  1044.         default:
  1045.             cout << "Błędny wybór. Powtórz\n";
  1046.             }
  1047.         }
  1048.     } while (choice != 0);
  1049.  
  1050. }
  1051.  
  1052. //menu dla konseratora
  1053.  
  1054. void konsmenu() {
  1055.     urzadzenie** ur{ nullptr };
  1056.     prace** pr{ nullptr };
  1057.     klient** kl{ nullptr };
  1058.     wizyta** wi{ nullptr };
  1059.     const int IDU = 0;
  1060.     setlocale(LC_CTYPE, "Polish");
  1061.     const size_t rozmiar = 10;
  1062.     const size_t rozmiarp = 40;
  1063.     const size_t rozmiarz = 20;
  1064.     size_t choice{};
  1065.     do {
  1066.         cout << "KONSERWATOR\n\n";
  1067.         cout << "1. Dodaj wykonane prace" << endl;
  1068.         cout << "2. Wyświetl wykonane prace" << endl;
  1069.         cout << "3. Usuń wizytę" << endl;
  1070.         cout << "0. Wyjście" << endl;
  1071.         cout << "Wybież opcję : ";
  1072.         if (ur == nullptr || kl == nullptr || pr == nullptr || wi == nullptr) {
  1073.             stworz(ur, rozmiar);
  1074.             stworz(kl, rozmiar);
  1075.             stworz(pr, rozmiarp);
  1076.             stworz(wi, rozmiarz);
  1077.             read(wi, rozmiarz);
  1078.             read(ur, rozmiar);
  1079.             read(kl, rozmiar);
  1080.             read(pr, rozmiarp);
  1081.         }
  1082.         cin >> choice;
  1083.         switch (choice) {
  1084.         case 1:
  1085.             if (pr != nullptr)
  1086.                 dodaj(pr, kl, ur, rozmiarp,rozmiar, IDU);
  1087.             else
  1088.                 cout << "Stwórz tablice" << endl;
  1089.             system("pause");
  1090.             system("cls");
  1091.             break;
  1092.         case 2:
  1093.             if (pr != nullptr)
  1094.                 print(pr, rozmiarp);
  1095.             else
  1096.                 cout << "Stwórz tablice" << endl;
  1097.             system("pause");
  1098.             system("cls");
  1099.             break;
  1100.         case 3:
  1101.             if (wi != nullptr)
  1102.                 usuw(wi, rozmiarz, IDU);
  1103.             else
  1104.                 cout << "Stwórz tablice" << endl;
  1105.             system("pause");
  1106.             system("cls");
  1107.             break;
  1108.         case 0:
  1109.             if (ur != nullptr || kl != nullptr || pr != nullptr || wi != nullptr) {
  1110.                 write(kl, rozmiar);
  1111.                 write(ur, rozmiar);
  1112.                 write(wi, rozmiarz);
  1113.                 write(pr, rozmiarp);
  1114.                 usun(ur, rozmiar);
  1115.                 usun(kl, rozmiar);
  1116.                 usun(pr, rozmiarp);
  1117.                 usun(wi, rozmiarz);
  1118.             }
  1119.             if (ur == nullptr || kl == nullptr || pr == nullptr || wi == nullptr) {
  1120.                 cout << "Baza jest pusta !" << endl;
  1121.                 break;
  1122.         default:
  1123.             cout << "Błędny wybór. Powtórz\n";
  1124.             }
  1125.         }
  1126.     } while (choice != 0);
  1127.  
  1128. }
  1129.  
  1130. //logowanie
  1131.  
  1132. void login(users** us, const size_t rozmiar) {
  1133.     string u;
  1134.     getline(cin, u);
  1135.     HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
  1136.     DWORD mode = 0;
  1137.     GetConsoleMode(hStdin, &mode);
  1138.     SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));
  1139.     string p;
  1140.     getline(cin, p);
  1141.     SetConsoleMode(hStdin, mode);
  1142.     for (size_t i = 0; i <= rozmiar; i++) {
  1143.         if (u == us[i]->login && p == us[i]->haslo) {
  1144.             if (us[i]->group == 1) {
  1145.                 usun(us, rozmiar);
  1146.                 system("cls");
  1147.                 menu();
  1148.                 i = rozmiar + 3;
  1149.             }
  1150.             else if (us[i]->group == 2) {
  1151.                 usun(us, rozmiar);
  1152.                 system("cls");
  1153.                 adminmenu();
  1154.                 i = rozmiar + 3;
  1155.             }
  1156.             else if (us[i]->group == 3) {
  1157.                 usun(us, rozmiar);
  1158.                 system("cls");
  1159.                 recmenu();
  1160.                 i = rozmiar + 3;
  1161.             }
  1162.             else if (us[i]->group == 4) {
  1163.                 usun(us, rozmiar);
  1164.                 system("cls");
  1165.                 konsmenu();
  1166.                 i = rozmiar + 3;
  1167.             }            
  1168.         }
  1169.     }
  1170.  
  1171. }
  1172.  
  1173. int main() {
  1174.     users** us{ nullptr };
  1175.     const size_t rozmiar = 10;
  1176.     stworz(us, rozmiar);
  1177.     read(us, rozmiar);
  1178.     login(us, rozmiar);
  1179.     // menu();
  1180. }
  1181.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement