Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale>
- #include<string>
- #include <fstream>
- #include <windows.h>
- using namespace std;
- struct users{
- unsigned short ID{};
- string login;
- string haslo;
- int group{};
- };
- struct urzadzenie {
- unsigned short ID{};
- string marka;
- string wersja;
- int data_produkcji{};
- };
- struct klient {
- unsigned short cl{};
- unsigned short ID{};
- string imie;
- string nazwisko;
- int rok_dolanczenia{};
- };
- struct wizyta {
- unsigned short ID{};
- unsigned short cl{};
- string nazwa_urzadzenia;
- string wlasciciel;
- string data_wizyty{};
- unsigned short typ{};
- };
- struct prace {
- unsigned short ID{};
- string nazwa_urzadzenia;
- string wersja;
- string problem;
- string rozwiazanie;
- int cena{};
- string data{};
- string klient;
- unsigned short typ{};
- };
- //tworzenie/usuwanie
- void stworz(users**& us, const size_t rozmiar) {
- us = new users * [rozmiar];
- for (size_t ind = 0; ind < rozmiar; ind++)
- us[ind] = new users;
- }
- void usun(users**& us, size_t rozmiar) {
- for (size_t ind = 0; ind < rozmiar; ind++)
- delete us[ind];
- delete[] us;
- us = nullptr;
- rozmiar = 0;
- }
- void stworz(urzadzenie**& ur, const size_t rozmiar) {
- ur = new urzadzenie * [rozmiar];
- for (size_t ind = 0; ind < rozmiar; ind++)
- ur[ind] = new urzadzenie;
- }
- void usun(urzadzenie**& ur, size_t rozmiar) {
- for (size_t ind = 0; ind < rozmiar; ind++)
- delete ur[ind];
- delete[] ur;
- ur = nullptr;
- rozmiar = 0;
- }
- void stworz(klient**& kl, const size_t rozmiar) {
- kl = new klient * [rozmiar];
- for (size_t ind = 0; ind < rozmiar; ind++)
- kl[ind] = new klient;
- }
- void usun(klient**& kl, size_t rozmiar) {
- for (size_t ind = 0; ind < rozmiar; ind++)
- delete kl[ind];
- delete[] kl;
- kl = nullptr;
- rozmiar = 0;
- }
- void stworz(wizyta**& wi, const size_t rozmiar) {
- wi = new wizyta * [rozmiar];
- for (size_t ind = 0; ind < rozmiar; ind++)
- wi[ind] = new wizyta;
- }
- void usun(wizyta**& wi, size_t rozmiar) {
- for (size_t ind = 0; ind < rozmiar; ind++)
- delete wi[ind];
- delete[] wi;
- wi = nullptr;
- rozmiar = 0;
- }
- void stworz(prace**& pr, const size_t rozmiarp) {
- pr = new prace * [rozmiarp];
- for (size_t ind = 0; ind < rozmiarp; ind++)
- pr[ind] = new prace;
- }
- void usun(prace**& pr, size_t rozmiarp) {
- for (size_t ind = 0; ind < rozmiarp; ind++)
- delete pr[ind];
- delete[] pr;
- pr = nullptr;
- rozmiarp = 0;
- }
- //enkrypcja string dla haseł i urzytkownków
- string encrypt(string msg, string key)
- {
- string tmp(key);
- while (key.size() < msg.size())
- key += tmp;
- for (string::size_type i = 0; i < msg.size(); ++i)
- msg[i] ^= key[i];
- return msg;
- }
- string decrypt(string msg, string key)
- {
- return encrypt(msg, key);
- }
- //zapis/odczyt z/do pliku
- void write(urzadzenie**& ur,const size_t rozmiar){
- ofstream myfile("urzadzenia.txt");
- if (myfile.is_open())
- {
- myfile << ur[0]->ID<<"\n";
- for (int i = 0; i < rozmiar; i++) {
- myfile << ur[i]->marka<<"\n";
- myfile << ur[i]->data_produkcji<<"\n";
- myfile << ur[i]->wersja<<"\n";
- }
- myfile.close();
- }
- }
- void read( urzadzenie**& ur, const size_t rozmiar){
- ifstream myfile;
- myfile.open("urzadzenia.txt");
- myfile >> ur[0]->ID;
- for (int i = 0; i < rozmiar; i++) {
- myfile >> ur[i]->marka;
- myfile >> ur[i]->data_produkcji;
- myfile >> ur[i]->wersja;
- }
- }
- void write(klient**& kl, const size_t rozmiar){
- ofstream myfile("klient.txt");
- if (myfile.is_open())
- {
- myfile << kl[0]->ID << "\n";
- for (int i = 0; i < rozmiar; i++) {
- myfile << kl[i]->cl << "\n";
- myfile << kl[i]->imie << "\n";
- myfile << kl[i]->nazwisko << "\n";
- myfile << kl[i]->rok_dolanczenia << "\n";
- }
- myfile.close();
- }
- }
- void read(klient**& kl, const size_t rozmiar){
- ifstream myfile;
- myfile.open("klient.txt");
- myfile >> kl[0]->ID;
- for (int i = 0; i < rozmiar; i++) {
- myfile >> kl[i]->cl;
- myfile >> kl[i]->imie;
- myfile >> kl[i]->nazwisko;
- myfile >> kl[i]->rok_dolanczenia;
- }
- }
- void write(prace**& pr, const size_t rozmiarp) {
- ofstream myfile("prace.txt");
- if (myfile.is_open())
- {
- myfile << pr[0]->ID << "\n";
- for (int i = 0; i < rozmiarp; i++) {
- myfile << pr[i]->problem << "\n";
- myfile << pr[i]->nazwa_urzadzenia << "\n";
- myfile << pr[i]->wersja << "\n";
- myfile << pr[i]->klient << "\n";
- myfile << pr[i]->typ << "\n";
- myfile << pr[i]->cena << "\n";
- myfile << pr[i]->data << "\n";
- myfile << pr[i]->rozwiazanie << "\n";
- }
- myfile.close();
- }
- }
- void read(prace**& pr, const size_t rozmiarp) {
- ifstream myfile;
- string z;
- myfile.open("prace.txt");
- myfile >> pr[0]->ID;
- for (int i = 0; i < rozmiarp; i++) {
- myfile >> noskipws >> z;
- cout << z;
- myfile >> pr[i]->nazwa_urzadzenia;
- myfile >> pr[i]->wersja;
- myfile >> pr[i]->klient;
- myfile >> pr[i]->typ;
- myfile >> pr[i]->cena;
- myfile >> pr[i]->data;
- myfile >> noskipws() >> pr[i]->rozwiazanie;
- }
- }
- void write(wizyta**& wi, const size_t rozmiarz) {
- ofstream myfile("wizyta.txt");
- if (myfile.is_open())
- {
- myfile << wi[0]->ID << "\n";
- for (int i = 0; i < rozmiarz; i++) {
- myfile << wi[i]->cl << "\n";
- myfile << wi[i]->wlasciciel << "\n";
- myfile << wi[i]->nazwa_urzadzenia << "\n";
- myfile << wi[i]->data_wizyty << "\n";
- myfile << wi[i]->typ << "\n";
- }
- myfile.close();
- }
- }
- void read(wizyta**& wi, const size_t rozmiarz) {
- ifstream myfile;
- myfile.open("wizyta.txt");
- myfile >> wi[0]->ID;
- for (int i = 0; i < rozmiarz; i++) {
- myfile >> wi[i]->cl;
- myfile >> wi[i]->wlasciciel;
- myfile >> wi[i]->nazwa_urzadzenia;
- myfile >> wi[i]->data_wizyty;
- myfile >> wi[i]->typ;
- }
- }
- void write(users**& us, const size_t rozmiar){
- string stl, stp;
- ofstream myfile("users.txt");
- myfile << us[0]->ID<< "\n";
- if (myfile.is_open())
- {
- for (int i = 0; i < rozmiar; i++) {
- string stl = encrypt(us[i]->login, "26");
- string stp = encrypt(us[i]->haslo, "26");
- myfile << stl << "\n";
- myfile << stp << "\n";
- myfile <<us[i]->group << "\n";
- }
- myfile.close();
- }
- }
- void read(users**& us, const size_t rozmiar)
- {
- string stl, stp;
- ifstream myfile;
- myfile.open("users.txt");
- myfile >> us[0]->ID;
- for (int i = 0; i < rozmiar; i++) {
- myfile >> stl;
- myfile >> stp;
- string stu = decrypt(stl, "26");
- string sth = decrypt(stp, "26");
- us[i]->login = stu;
- us[i]->haslo = sth;
- myfile >> us[i]->group;
- }
- }
- //dodatkowe skrypty
- void skryp1(wizyta** wi, klient** kl, string wl, int tmp, const size_t rozmiar) {
- for (int i = 0; i < rozmiar; i++) {
- if (wl == kl[i]->imie) {
- wi[tmp]->wlasciciel = wl;
- i = 100;
- }
- else if (i == rozmiar - 1) {
- cout << "Wprowadzono imię którego nie ma w bazie" << "\n"
- << "Wprowadź ponownie" << "\n";
- cin >> wl;
- i = -1;
- }
- else {
- }
- }
- }
- void skryp2(wizyta** wi, urzadzenie** ur, string wu, int tmp, const size_t rozmiar) {
- for (int i = 0; i < rozmiar; i++) {
- if (wu == ur[i]->marka) {
- wi[tmp]->nazwa_urzadzenia = wu;
- i = 100;
- }
- else if (i == rozmiar - 1) {
- cout << "Wprowadzono nazwę której nie ma w bazie" << "\n"
- << "Wprowadź ponownie" << "\n";
- cin >> wu;
- i = -1;
- }
- else {
- }
- }
- }
- string sr1(int id, prace** pr) {
- unsigned short tp;
- string typ;
- tp = pr[id]->typ;
- if (tp == 1)
- typ = "Serwis";
- else if (tp == 2)
- typ = "Konserwacja";
- return typ;
- }
- string sr1(int id, wizyta** wi) {
- unsigned short tp;
- string typ;
- tp = wi[id]->typ;
- if (tp == 1)
- typ = "Serwis";
- else if (tp == 2)
- typ = "Konserwacja";
- return typ;
- }
- //dodawanie danych do bazy
- void dodaj(urzadzenie** ur, const size_t rozmiar,const int IDU) {
- unsigned short tmp = ur[IDU]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {
- };
- cout << "Wprowadź datę produkcji : ";
- cin >> ur[tmp]->data_produkcji;
- cout << "Wprowadź markę : ";
- cin >> ur[tmp]->marka;
- cout << "Wprowadź wersję : ";
- cin >> ur[tmp]->wersja;
- tmp++;
- ur[IDU]->ID = tmp;
- cout << "Wprowadzono!" << endl;
- }
- void dodaj(users** ur, const size_t rozmiar, const int IDU) {
- string t;
- unsigned short tmp = ur[IDU]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {
- };
- cout << "Wprowadź login : ";
- cin >> ur[tmp]->login;
- cout << "Wprowadź haslo : ";
- cin >> ur[tmp]->haslo;
- cout << "Wprowadź grópę (admin,recepcja,konserwator) : ";
- cin >> t;
- if(t=="sudo")
- ur[tmp]->group=1;
- else if (t == "admin")
- ur[tmp]->group = 2;
- else if (t == "recepcja")
- ur[tmp]->group = 3;
- else if (t == "konserwator")
- ur[tmp]->group = 4;
- tmp++;
- ur[IDU]->ID = tmp;
- cout << "Wprowadzono!" << endl;
- }
- void dodaj(klient** kl, const size_t rozmiar,const int IDU) {
- unsigned short tmp = kl[IDU]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {
- };
- for (int i = 0; i <= tmp; i++)
- if (kl[i]->cl == 0) {
- cout << "Wprowadź imię klienta : ";
- cin >> kl[i]->imie;
- cout << "Wprowadź nazwisko Klienta : ";
- cin >> kl[i]->nazwisko;
- cout << "Wprowadź rok dołączenia : ";
- cin >> kl[i]->rok_dolanczenia;
- kl[i]->cl = 1;
- cout << "Wprowadzono!" << endl;
- i = tmp + 3;
- }
- else if (i == tmp) {
- cout << "Wprowadź imię klienta : ";
- cin >> kl[tmp]->imie;
- cout << "Wprowadź nazwisko Klienta : ";
- cin >> kl[tmp]->nazwisko;
- cout << "Wprowadź rok dołączenia : ";
- cin >> kl[tmp]->rok_dolanczenia;
- kl[tmp]->cl = 1;
- tmp++;
- kl[IDU]->ID = tmp;
- cout << "Wprowadzono!" << endl;
- i = tmp + 3;
- }
- else {};
- }
- void dodaj(wizyta** wi, klient** kl, urzadzenie** ur, const size_t rozmiar, const int IDU) {
- string wl;
- string wu;
- unsigned short tmp = wi[IDU]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {
- };
- for (int l = 0; l <= tmp; l++)
- if (wi[l]->cl == 0) {
- cout << "Wprowadź nazwę urządzeia : ";
- cin >> wu;
- skryp2(wi, ur, wu, l, rozmiar);
- cout << "Wprowadź właściciela : ";
- cin >> wl;
- skryp1(wi, kl, wl, l, rozmiar);
- cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
- cin >> wi[l]->typ;
- cout << "Wprowadź datę wizyty : ";
- wi[l]->cl = 1;
- cin >> wi[l]->data_wizyty;
- cout << "Wprowadzono!" << endl;
- l = tmp + 3;
- }
- else if (l == tmp) {
- cout << "Wprowadź nazwę urządzeia : ";
- cin >> wu;
- skryp2(wi, ur, wu, tmp, rozmiar);
- cout << "Wprowadź właściciela : ";
- cin >> wl;
- skryp1(wi, kl, wl, tmp, rozmiar);
- cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
- cin >> wi[tmp]->typ;
- cout << "Wprowadź datę wizyty : ";
- wi[tmp]->cl = 1;
- cin >> wi[tmp]->data_wizyty;
- tmp++;
- wi[IDU]->ID = tmp;
- cout << "Wprowadzono!" << endl;
- l = tmp + 3;
- }
- else {};
- }
- void dodaj(prace** pr, klient** kl, urzadzenie** ur, const size_t rozmiarp, const size_t rozmiar, const int IDU) {
- string wl;
- string wu;
- string l1, l2;
- unsigned short tmp = pr[IDU]->ID;
- if (tmp > rozmiarp) {
- tmp = 0;
- }
- else {
- };
- cout << "Wprowadź nazwę urządzenia : ";
- cin >> wu;
- for (int i = 0; i < rozmiar; i++) {
- if (wu == ur[i]->marka) {
- pr[tmp]->nazwa_urzadzenia = wu;
- i = 100;
- }
- else if (i == rozmiar - 1) {
- cout << "Wprowadzono nazwę której nie ma w bazie" << "\n"
- << "Wprowadź ponownie" << "\n";
- cin >> wu;
- i = -1;
- }
- else {
- }
- }
- cout << "Wprowadź wersję urządzenia : ";
- cin >> pr[tmp]->wersja;
- cout << "Wprowadź opis problemu : ";
- getline(cin, l1);
- getline(cin, l1);
- pr[tmp]->problem = l1;
- cout << "Wprowadź rozwiązanie problemu : ";
- getline(cin, l2);
- pr[tmp]->rozwiazanie = l2;
- cout << "Wprowadź imię klienta : ";
- cin >> wl;
- for (int i = 0; i < rozmiar; i++) {
- if (wl == kl[i]->imie) {
- pr[tmp]->klient = wl;
- i = 100;
- }
- else if (i == rozmiar - 1) {
- cout << "Wprowadzono imię którego nie ma w bazie" << "\n"
- << "Wprowadź ponownie" << "\n";
- cin >> wl;
- i = -1;
- }
- else {
- }
- }
- cout << "Wprowadź datę wykonania : ";
- cin >> pr[tmp]->data;
- cout << "Wprowadź cenę usługi : ";
- cin >> pr[tmp]->cena;
- cout << "Wprowadź typ usługi" << '\n' << "1. Serwis" << '\n' << "2. Konserwacja" << '\n' << endl;
- cin >> pr[tmp]->typ;
- tmp++;
- pr[IDU]->ID = tmp;
- cout << "Wprowadzono!" << endl;
- }
- //wywietlanie
- void zzwp(prace**& pr, const size_t rozmiarp) {
- int clk=0;
- for(int i = 0; i < rozmiarp; i++)
- clk = clk + pr[i]->cena;
- cout << "Zarobki za wykonane prace" << endl;
- cout << clk << endl;
- }
- void print(users**& ur, const size_t rozmiar) {
- unsigned short tmp = ur[0]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {};
- cout << "<======= urzytkownicy =======>" << endl;
- for (int id = 0; id < tmp; id++) {
- cout << "login: " << ur[id]->login << "\t" << "hasło: " << ur[id]->haslo
- << "\t" << "grupa: " << ur[id]->group << endl;
- }
- }
- void print(urzadzenie**& ur, const size_t rozmiar) {
- unsigned short tmp = ur[0]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {};
- cout << "<======= Urządzenia =======>" << endl;
- for (int id = 0; id < tmp; id++) {
- cout << "Marka: " << ur[id]->marka << "\t" << "Wersja: " << ur[id]->wersja
- << "\t" << "Data produkcji: " << ur[id]->data_produkcji << endl;
- }
- }
- void print(klient**& kl, const size_t rozmiar) {
- unsigned short tmp = kl[0]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {};
- cout << "<======= Klienci =======>" << endl;
- for (int id = 0; id < tmp; id++) {
- cout << id << ". " << "Imię klienta: " << kl[id]->imie << "\t" << "Nazwisko klienta: " << kl[id]->nazwisko
- << "\t" << "Rok dołączenia klienta: " << kl[id]->rok_dolanczenia << endl;
- }
- }
- void print(wizyta**& wi, const size_t rozmiar) {
- unsigned short tmp = wi[0]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {};
- cout << "<======= Wizyty =======>" << endl;
- for (int id = 0; id < tmp; id++) {
- string typ = sr1(id, wi);
- cout << "Imię klienta: " << wi[id]->wlasciciel << "\t" << "Data wizyty u klienta: " << "Typ usługi:" << typ << wi[id]->data_wizyty
- << "\t" << "Nazwa urządzenia: " << wi[id]->nazwa_urzadzenia << endl;
- }
- }
- void print(prace**& pr, const size_t rozmiar) {
- unsigned short tmp = pr[0]->ID;
- if (tmp > rozmiar) {
- tmp = 0;
- }
- else {};
- cout << "<======= Wykonane prace =======>" << endl;
- for (int id = 0; id < tmp; id++) {
- string typ = sr1(id, pr);
- cout << "Typ usługi:" << typ << "Nazwa urządzenia: " << pr[id]->nazwa_urzadzenia << "\t" << "Wersja: " << pr[id]->wersja << "\t" << "Opis problemu: " << pr[id]->problem
- << "\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;
- }
- }
- //koniec wyświetlania
- //usuwanie wybranego klienta
- void usuw(klient**& kl, size_t rozmiar, const int IDU) {
- int p;
- string l;
- cout << "Wyświetlić listę klientów? T/N" << endl;
- cin >> l;
- if (l == "T"||l=="t") {
- print(kl, rozmiar);
- }
- else {};
- cout << "wpisz liczbę od 0 do ostatniej wyświetlonej" << endl;
- cin >> p;
- kl[p]->imie = "--";
- kl[p]->nazwisko = "--";
- kl[p]->rok_dolanczenia = 000;
- kl[p]->cl = 0;
- }
- //usuwanie wybranej wizyty
- void usuw(wizyta**& wi, size_t rozmiar, const int IDU) {
- int p;
- string l;
- cout << "Wyświetlić listę wizyt? T/N" << endl;
- cin >> l;
- if (l == "T"||l=="t") {
- print(wi, rozmiar);
- }
- else {};
- cout << "wpisz liczbę od 0 do ostatniej wyświetlonej" << endl;
- cin >> p;
- wi[p]->wlasciciel = "--";
- wi[p]->nazwa_urzadzenia = "--";
- wi[p]->data_wizyty = "000";
- wi[p]->cl = 0;
- }
- // menu dla super user
- void menu() {
- const int IDU=0;
- setlocale(LC_CTYPE, "Polish");
- users** us{ nullptr };
- urzadzenie** ur{ nullptr };
- klient** kl{ nullptr };
- wizyta** wi{ nullptr };
- prace** pr{ nullptr };
- const size_t rozmiar = 10;
- const size_t rozmiarz = 20;
- const size_t rozmiarp = 40;
- size_t choice{};
- do {
- cout << "Menu\n\n";
- cout << "1. Stwórz odpowiednie tablice" << endl;
- cout << "2. Dodaj urządzenie" << endl;
- cout << "3. Wyświetl urządzenia" << endl;
- cout << "4. Dodaj klienta" << endl;
- cout << "5. Pokarz klientów" << endl;
- cout << "6. Usuń klienta" << endl;
- cout << "7. Dodaj wizytę" << endl;
- cout << "8. Pokarz wizyty" << endl;
- cout << "9. Usuń wizytę" << endl;
- cout << "10. Dodaj wykonanie pracy" << endl;
- cout << "11. Wyświetl wykonane prace" << endl;
- cout << "12. dodaj urzytkownika" << endl;
- cout << "13.pokaż urzytkowników" << endl;
- cout << "0. Exit" << endl;
- cout << "Wybież opcję : ";
- if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
- stworz(us, rozmiar);
- stworz(ur, rozmiar);
- stworz(kl, rozmiar);
- stworz(wi, rozmiarz);
- stworz(pr, rozmiarp);
- read(us, rozmiar);
- read(ur, rozmiar);
- read(kl, rozmiar);
- read(wi, rozmiarz);
- read(pr, rozmiarp);
- }
- cin >> choice;
- switch (choice) {
- case 1:
- if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
- stworz(us, rozmiar);
- stworz(ur, rozmiar);
- stworz(kl, rozmiar);
- stworz(wi, rozmiarz);
- stworz(pr, rozmiarp);
- read(us, rozmiar);
- read(ur, rozmiar);
- read(kl, rozmiar);
- read(wi, rozmiarz);
- read(pr, rozmiarp);
- }
- else
- cout << "Tablice są stworzone" << endl;
- system("pause");
- system("cls");
- break;
- case 2:
- if (ur != nullptr)
- dodaj(ur, rozmiar, IDU);
- else
- cout << "Stwórz tablicę" << endl;
- system("pause");
- system("cls");
- break;
- case 3:
- if (ur != nullptr) {
- print(ur, rozmiar);
- }
- else
- cout << "Stwórz tablicę !" << endl;
- system("pause");
- system("cls");
- break;
- case 4:
- if (kl != nullptr)
- dodaj(kl, rozmiar, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 5:
- if (kl != nullptr) {
- print(kl, rozmiar);
- }
- else
- cout << "brak danych !" << endl;
- system("pause");
- system("cls");
- break;
- case 6:
- if (kl != nullptr)
- usuw(kl, rozmiar, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 7:
- if (wi != nullptr)
- dodaj(wi, kl, ur, rozmiarz, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 8:
- if (wi != nullptr)
- print(wi, rozmiarz);
- else
- cout << "brak danych" << endl;
- system("pause");
- system("cls");
- break;
- case 9:
- if (wi != nullptr)
- usuw(wi, rozmiarz, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 10:
- if (pr != nullptr)
- dodaj(pr, kl, ur, rozmiarp,rozmiar, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 11:
- if (pr != nullptr)
- print(pr, rozmiarp);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 12:
- if (us != nullptr)
- dodaj(us, rozmiar,IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 13:
- if (us != nullptr)
- print(us, rozmiar);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 0:
- if (ur != nullptr || kl != nullptr || wi != nullptr || pr != nullptr) {
- write(kl, rozmiar);
- write(ur, rozmiar);
- write(us, rozmiar);
- write(wi, rozmiarz);
- write(pr, rozmiarp);
- usun(us, rozmiar);
- usun(ur, rozmiar);
- usun(kl, rozmiar);
- usun(wi, rozmiarz);
- usun(pr, rozmiarp);
- }
- if (ur == nullptr || kl == nullptr || wi == nullptr || pr == nullptr) {
- cout << "Baza jest pusta !" << endl;
- break;
- default:
- cout << "Błędny wybór. Powtórz\n";
- }
- }
- }while (choice != 0);
- }
- // menu dla recepcji
- void recmenu(){
- urzadzenie** ur{ nullptr };
- klient** kl{ nullptr };
- wizyta** wi{ nullptr };
- const size_t rozmiarz = 20;
- const int IDU = 0;
- setlocale(LC_CTYPE, "Polish");
- const size_t rozmiar = 10;
- size_t choice{};
- do {
- cout << "RECEPCJA\n\n";
- cout << "1. Wprowadź klienta" << endl;
- cout << "2. Pokarz klientów" << endl;
- cout << "3. Usuń klienta" << endl;
- cout << "4. Dodaj wizytę Serwisanta u klienta" << endl;
- cout << "5. Wyświetl wizyty" << endl;
- cout << "6. Usuń wyzytę" << endl;
- cout << "7. Wyświetl urządzenia" << endl;
- cout << "0. Wyjście" << endl;
- cout << "Wybież opcję : ";
- if (ur == nullptr || kl == nullptr || wi == nullptr ) {
- stworz(ur, rozmiar);
- stworz(kl, rozmiar);
- stworz(wi, rozmiarz);
- read(ur, rozmiar);
- read(kl, rozmiar);
- read(wi, rozmiarz);
- }
- cin >> choice;
- switch (choice) {
- case 1:
- if (kl != nullptr)
- dodaj(kl, rozmiar, IDU);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 2:
- if (kl != nullptr) {
- print(kl, rozmiar);
- }
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 3:
- if (kl != nullptr)
- usuw(kl, rozmiar, IDU);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 4:
- if (wi != nullptr)
- dodaj(wi, kl, ur, rozmiarz, IDU);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 5:
- if (wi != nullptr)
- print(wi, rozmiarz);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 6:
- if (wi != nullptr)
- usuw(wi, rozmiarz, IDU);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 7:
- if (ur != nullptr) {
- print(ur, rozmiar);
- }
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 0:
- if (ur != nullptr || kl != nullptr || wi != nullptr ) {
- write(kl, rozmiar);
- write(ur, rozmiar);
- write(wi, rozmiarz);
- usun(ur, rozmiar);
- usun(kl, rozmiar);
- usun(wi, rozmiarz);
- }
- if (ur == nullptr || kl == nullptr || wi == nullptr ) {
- cout << "Baza jest pusta !" << endl;
- break;
- default:
- cout << "Błędny wybór. Powtórz\n";
- }
- }
- } while (choice != 0);
- }
- //menu dla administratora (włściciela)
- void adminmenu() {
- urzadzenie** ur{ nullptr };
- users** us{ nullptr };
- prace** pr{ nullptr };
- const int IDU = 0;
- setlocale(LC_CTYPE, "Polish");
- const size_t rozmiar = 10;
- const size_t rozmiarp = 40;
- size_t choice{};
- do {
- cout << "WŁAŚCICIEL\n\n";
- cout << "1. Wprowadź urządzenie" << endl;
- cout << "2. Pokarz urządzenia" << endl;
- cout << "3. Usuń urządzenie" << endl;
- cout << "4. Dodaj urzytkownika" << endl;
- cout << "5. Wyświetl urzytkowników" << endl;
- cout << "6. Wyświetl zarobki za wykonane prace" << endl;
- cout << "0. Wyjście" << endl;
- cout << "Wybież opcję : ";
- if (ur == nullptr || us == nullptr || pr == nullptr) {
- stworz(ur, rozmiar);
- stworz(us, rozmiar);
- stworz(pr, rozmiarp);
- read(ur, rozmiar);
- read(us, rozmiar);
- read(pr, rozmiarp);
- }
- cin >> choice;
- switch (choice) {
- case 1:
- if (ur != nullptr)
- dodaj(ur, rozmiar, IDU);
- else
- cout << "Błąd" << endl;
- system("pause");
- system("cls");
- break;
- case 2:
- if (ur != nullptr) {
- print(ur, rozmiar);
- }
- else
- cout << "Błąd" << endl;
- system("pause");
- system("cls");
- break;
- case 3:
- if (ur != nullptr) {}
- // usuw(kl, rozmiar, IDU);
- else
- cout << "Błąd !" << endl;
- system("pause");
- system("cls");
- break;
- case 4:
- if (us != nullptr)
- dodaj(us, rozmiar, IDU);
- else
- cout << "Błąd" << endl;
- system("pause");
- system("cls");
- break;
- case 5:
- if (us != nullptr)
- print(us, rozmiar);
- else
- cout << "Błąd" << endl;
- system("pause");
- system("cls");
- break;
- case 6:
- if (us != nullptr)
- zzwp(pr, rozmiarp);
- else
- cout << "Błąd" << endl;
- system("pause");
- system("cls");
- break;
- case 0:
- if (ur != nullptr || us != nullptr || pr != nullptr) {
- write(us, rozmiar);
- write(ur, rozmiar);
- usun(ur, rozmiar);
- usun(us, rozmiar);
- usun(pr, rozmiarp);
- }
- if (ur == nullptr || us == nullptr || pr == nullptr) {
- cout << "Baza jest pusta !" << endl;
- break;
- default:
- cout << "Błędny wybór. Powtórz\n";
- }
- }
- } while (choice != 0);
- }
- //menu dla konseratora
- void konsmenu() {
- urzadzenie** ur{ nullptr };
- prace** pr{ nullptr };
- klient** kl{ nullptr };
- wizyta** wi{ nullptr };
- const int IDU = 0;
- setlocale(LC_CTYPE, "Polish");
- const size_t rozmiar = 10;
- const size_t rozmiarp = 40;
- const size_t rozmiarz = 20;
- size_t choice{};
- do {
- cout << "KONSERWATOR\n\n";
- cout << "1. Dodaj wykonane prace" << endl;
- cout << "2. Wyświetl wykonane prace" << endl;
- cout << "3. Usuń wizytę" << endl;
- cout << "0. Wyjście" << endl;
- cout << "Wybież opcję : ";
- if (ur == nullptr || kl == nullptr || pr == nullptr || wi == nullptr) {
- stworz(ur, rozmiar);
- stworz(kl, rozmiar);
- stworz(pr, rozmiarp);
- stworz(wi, rozmiarz);
- read(wi, rozmiarz);
- read(ur, rozmiar);
- read(kl, rozmiar);
- read(pr, rozmiarp);
- }
- cin >> choice;
- switch (choice) {
- case 1:
- if (pr != nullptr)
- dodaj(pr, kl, ur, rozmiarp,rozmiar, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 2:
- if (pr != nullptr)
- print(pr, rozmiarp);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 3:
- if (wi != nullptr)
- usuw(wi, rozmiarz, IDU);
- else
- cout << "Stwórz tablice" << endl;
- system("pause");
- system("cls");
- break;
- case 0:
- if (ur != nullptr || kl != nullptr || pr != nullptr || wi != nullptr) {
- write(kl, rozmiar);
- write(ur, rozmiar);
- write(wi, rozmiarz);
- write(pr, rozmiarp);
- usun(ur, rozmiar);
- usun(kl, rozmiar);
- usun(pr, rozmiarp);
- usun(wi, rozmiarz);
- }
- if (ur == nullptr || kl == nullptr || pr == nullptr || wi == nullptr) {
- cout << "Baza jest pusta !" << endl;
- break;
- default:
- cout << "Błędny wybór. Powtórz\n";
- }
- }
- } while (choice != 0);
- }
- //logowanie
- void login(users** us, const size_t rozmiar) {
- string u;
- getline(cin, u);
- HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
- DWORD mode = 0;
- GetConsoleMode(hStdin, &mode);
- SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT));
- string p;
- getline(cin, p);
- SetConsoleMode(hStdin, mode);
- for (size_t i = 0; i <= rozmiar; i++) {
- if (u == us[i]->login && p == us[i]->haslo) {
- if (us[i]->group == 1) {
- usun(us, rozmiar);
- system("cls");
- menu();
- i = rozmiar + 3;
- }
- else if (us[i]->group == 2) {
- usun(us, rozmiar);
- system("cls");
- adminmenu();
- i = rozmiar + 3;
- }
- else if (us[i]->group == 3) {
- usun(us, rozmiar);
- system("cls");
- recmenu();
- i = rozmiar + 3;
- }
- else if (us[i]->group == 4) {
- usun(us, rozmiar);
- system("cls");
- konsmenu();
- i = rozmiar + 3;
- }
- }
- }
- }
- int main() {
- users** us{ nullptr };
- const size_t rozmiar = 10;
- stworz(us, rozmiar);
- read(us, rozmiar);
- login(us, rozmiar);
- // menu();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement