Advertisement
Matrxi999

Untitled

Mar 31st, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.86 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <ctime>
  4. #include <cstdlib>
  5. #include <iomanip>
  6. #include <time.h>
  7. #include <regex>
  8. #include "Lekarz.h"
  9.  
  10. using namespace std;
  11.  
  12. void WyborMiesiaca(string Miesiac, string &MiesiacINT)
  13. {
  14.     if(Miesiac=="Styczen") MiesiacINT="1";
  15.     else if(Miesiac=="Luty") MiesiacINT="2";
  16.     else if(Miesiac=="Marzec") MiesiacINT="3";
  17.     else if(Miesiac=="Kwiecien") MiesiacINT="4";
  18.     else if(Miesiac=="Maj") MiesiacINT="5";
  19.     else if(Miesiac=="Czerwiec") MiesiacINT="6";
  20.     else if(Miesiac=="Lipiec") MiesiacINT="7";
  21.     else if(Miesiac=="Sierpien") MiesiacINT="8";
  22.     else if(Miesiac=="Wrzesien") MiesiacINT="9";
  23.     else if(Miesiac=="Pazdziernik") MiesiacINT="10";
  24.     else if(Miesiac=="Listopad") MiesiacINT="11";
  25.     else if(Miesiac=="Grudzien") MiesiacINT="12";
  26.     else
  27.     {
  28.         cout << "Taki miesiac nie istnieje, prosze sprobowac jeszcze raz" << endl;
  29.         exit(0);
  30.     }
  31. }
  32.  
  33. int main()
  34. {
  35.     cout << "Witaj w systemie rejestracji pacjentow \n"
  36.             "Wybierz interesujaca cie specjalizacje: \n " << endl;
  37.  
  38.     ifstream Specjalizacje;
  39.     Specjalizacje.open("../System_rejestracji_przychodni/Specjalizacje.txt", ios::in);
  40.  
  41.     string linijkaSpecjalizacji;
  42.     if(Specjalizacje.good())
  43.         {
  44.             do
  45.             {
  46.                 getline(Specjalizacje, linijkaSpecjalizacji);
  47.                 cout<<linijkaSpecjalizacji<<endl;
  48.             }while(!Specjalizacje.eof());
  49.         }
  50.     Specjalizacje.close();
  51.  
  52.     string Specjalizacja;
  53.     getline(cin, Specjalizacja);
  54.  
  55.     cout << "--------------------------------------------------------------------------------------" << endl;;
  56.  
  57.  
  58.     if((Specjalizacja != "Internista") && (Specjalizacja != "Ortopeda") && (Specjalizacja != "Chirurg") && (Specjalizacja != "Dermatolog") && (Specjalizacja != "Okulista") && (Specjalizacja != "Endokrynolog") && (Specjalizacja != "Stomatolog") && (Specjalizacja != "Urolog") && (Specjalizacja  != "Ginekolog") && (Specjalizacja != "Pediatra"))
  59.     {
  60.         cout << "Niestety taki specjalista nie znajduje sie w naszej przychodni. \n"
  61.                 "Prosze sprobowac jeszcze raz" << endl;
  62.         getline(cin, Specjalizacja);
  63.     }
  64.  
  65.     Lekarz l[40]; //0-39
  66.     for (int i=0; i<40; i++) //tworzenie wszystkich lekarzy jako obiekty
  67.     {
  68.         l[i].nr_lekarza=i+1;
  69.         l[i].wczytaj();
  70.  
  71.         if(Specjalizacja==l[i].specjalizacja)
  72.         {
  73.             l[i].wyswietl();
  74.         }
  75.  
  76.     }
  77.  
  78.     cout << "Wybierz, w jakim miesiacu interesuje cie wizyta (Pelna nazwa bez polskich znakow): ";
  79.  
  80.     string Miesiac;
  81.     string MiesiacINT;
  82.     getline(cin, Miesiac);
  83.  
  84.     cout << "--------------------------------------------------------------------------------------";
  85.  
  86.     WyborMiesiaca(Miesiac, MiesiacINT);
  87.  
  88.     cout << endl << "Oto lista specjalistow ktora przyjmuje w miesiacu: " << Miesiac << endl << endl;
  89.  
  90.     int sumaM=0;
  91.  
  92.     for (int i=0; i<40; i++) //wyświetlanie po podaniu miesiąca
  93.     {
  94.         if(Specjalizacja==l[i].specjalizacja)
  95.         {
  96.             if(l[i].miesiac.find(MiesiacINT) != string::npos)
  97.             {
  98.                 l[i].wyswietl();
  99.                 sumaM++;
  100.             }
  101.         }
  102.     }
  103.  
  104.     if(sumaM>0)
  105.         cout << "W tym miesiacu przyjmuje " << sumaM << " specjalistow:" << endl;
  106.     else
  107.         cout << "Niestety w tym miesiacu nie przyjmuje zaden specjalista" << endl;
  108.  
  109.     cout << "Wybierz, w ktorym dniu miesiaca interesuje cie wizyta: ";
  110.  
  111.     string Dzien;
  112.     getline(cin, Dzien);
  113.  
  114.     cout << "--------------------------------------------------------------------------------------" << endl;
  115.  
  116.     int sumaD=0;
  117.     for (int i=0; i<40; i++) //wyświetlanie po podaniu dnia
  118.     {
  119.         if(Specjalizacja==l[i].specjalizacja)
  120.         {
  121.             if(l[i].miesiac.find(MiesiacINT) != string::npos)
  122.             {
  123.                 if(l[i].dzien.find(Dzien) != string ::npos)
  124.                 {
  125.                     l[i].wyswietlGodz();
  126.                     sumaD++;
  127.                 }
  128.             }
  129.         }
  130.     }
  131.  
  132.     if(sumaD>0)
  133.         cout << "W tym miesiacu tego dnia przyjmuje " << sumaD << " specjalistow:" << endl << endl;
  134.     else
  135.         cout << "Niestety w tym dniu nie przyjmuje zaden specjalista" << endl;
  136.  
  137.     cout << "Podaj numer lekarza do ktorego chcialbys sie zapisac" << endl;
  138.  
  139.     int numer_l;
  140.     cin >> numer_l;
  141.  
  142.     cout << "--------------------------------------------------------------------------------------" << endl << endl;
  143.  
  144.     for (int i=0; i<40; i++) //zapis na wizyte po podaniu numeru lekarza
  145.     {
  146.         if(Specjalizacja==l[i].specjalizacja)
  147.         {
  148.             if(l[i].miesiac.find(MiesiacINT) != string::npos)
  149.             {
  150.                 if(l[i].dzien.find(Dzien) != string ::npos)
  151.                 {
  152.                     if(numer_l==l[i].nr_lekarza)
  153.                     {
  154.                         l[i].zapisNaWizyte();
  155.                     }
  156.                 }
  157.             }
  158.         }
  159.     }
  160.  
  161.     cout << "Po dodaniu wizyty: " << endl;
  162.  
  163.     for (int i=0; i<40; i++) //wyswietlanie po zapisie na wizyte
  164.     {
  165.         if(Specjalizacja==l[i].specjalizacja)
  166.         {
  167.             if(l[i].miesiac.find(MiesiacINT) != string::npos)
  168.             {
  169.                 if(l[i].dzien.find(Dzien) != string ::npos)
  170.                 {
  171.                     if(numer_l==l[i].nr_lekarza)
  172.                     {
  173.                         l[i].wyswietlGodz();
  174.                     }
  175.                 }
  176.             }
  177.         }
  178.     }
  179.  
  180.     //ZAPIS DO PLIKU (UTRZYMANIE REZERWACJI WIZYT)
  181.  
  182.     ofstream Lekarze;
  183.     Lekarze.open("../System_rejestracji_przychodni/Lekarze.txt");
  184.  
  185.     if(Lekarze.good()==false)
  186.     {
  187.         cout<<"Nie udalo sie wczytac listy lekarzy"<<endl;
  188.         exit(0);
  189.     }
  190.  
  191.     for (int i=0; i<40; i++)
  192.     {
  193.         Lekarze << l[i].imie << endl;
  194.         Lekarze << l[i].nazwisko << endl;
  195.         Lekarze << l[i].specjalizacja << endl;
  196.         Lekarze << l[i].miesiac << endl;
  197.         Lekarze << l[i].dzien << endl;
  198.         Lekarze << l[i].godzina_roz << endl;
  199.         Lekarze << l[i].godzina_kon << endl;
  200.         Lekarze << l[i].wizyty << endl;
  201.     }
  202.  
  203.     Lekarze.close();
  204.  
  205.     return 0;
  206. }
  207.  
  208.  
  209.  
  210.  
  211.  
  212. #ifndef LEKARZ_H
  213. #define LEKARZ_H
  214. #include <iostream>
  215.  
  216. using namespace std;
  217.  
  218. class Lekarz
  219. {
  220.     public:
  221.  
  222.     string imie, nazwisko, specjalizacja, miesiac, dzien, wizyty;
  223.     int godzina_roz, godzina_kon, nr_lekarza;
  224.  
  225.     void wczytaj();
  226.     void wyswietl();
  227.     void wyswietlGodz();
  228.     void zapisNaWizyte();
  229. };
  230.  
  231. #endif // LEKARZ_H
  232.  
  233.  
  234.  
  235.  
  236. #include <iostream>
  237. #include <fstream>
  238. #include <cstdlib>
  239. #include <iomanip>
  240. #include <string>
  241. #include "Lekarz.h"
  242.  
  243. using namespace std;
  244.  
  245. void Lekarz::wczytaj()
  246. {
  247.     ifstream Lekarze;
  248.     Lekarze.open("../System_rejestracji_przychodni/Lekarze.txt", ios::in);
  249.  
  250.     if(Lekarze.good()==false)
  251.     {
  252.         cout<<"Nie udalo sie wczytac listy lekarzy"<<endl;
  253.         exit(0);
  254.     }
  255.  
  256.     int nr_linii=(nr_lekarza-1)*8+1;
  257.     int aktualny_nr=1;
  258.     string linia;
  259.  
  260.     while(getline(Lekarze, linia))
  261.     {
  262.         if(aktualny_nr==nr_linii) imie=linia;
  263.         if(aktualny_nr==nr_linii+1) nazwisko=linia;
  264.         if(aktualny_nr==nr_linii+2) specjalizacja=linia;
  265.         if(aktualny_nr==nr_linii+3) miesiac=linia;
  266.         if(aktualny_nr==nr_linii+4) dzien=linia;
  267.         if(aktualny_nr==nr_linii+5) godzina_roz=atoi(linia.c_str());
  268.         if(aktualny_nr==nr_linii+6) godzina_kon=atoi(linia.c_str());
  269.         if(aktualny_nr==nr_linii+7) wizyty=linia;
  270.  
  271.         aktualny_nr++;
  272.     }
  273.     Lekarze.close();
  274. }
  275.  
  276. void Lekarz::wyswietl()
  277. {
  278.     cout << "Numer Lekarza: " << nr_lekarza << endl;
  279.     cout << "Imie Lekarza: " <<imie << endl;
  280.     cout << "Nazwisko Lekarza: " <<nazwisko << endl;
  281.     cout << "Specjalizacja Lekarza: " <<specjalizacja << endl;
  282.     //cout << miesiac << endl;
  283.     //cout << dzien << endl;
  284.     cout << endl;
  285. }
  286.  
  287. void Lekarz::wyswietlGodz()
  288. {
  289.     cout << "Numer Lekarza: " << nr_lekarza << endl;
  290.     cout << "Imie Lekarza: " <<imie << endl;
  291.     cout << "Nazwisko Lekarza: " <<nazwisko << endl;
  292.     cout << "Specjalizacja Lekarza: " <<specjalizacja << endl;
  293.     //cout << miesiac << endl;
  294.     //cout << dzien << endl;
  295.     cout << "Godzina rozpoczecia pracy lekarza: " << godzina_roz << ":00" << endl;
  296.     cout << "Godzina zakoczenia pracy lekarza: " << godzina_kon << ":00" << endl;
  297.     if(wizyty=="")
  298.         cout << "Wszystkie wizyty sa wolne" << endl;
  299.     else
  300.         cout << "Zajete wizyty: " << wizyty << endl;
  301.     cout << endl;
  302. }
  303.  
  304. void Lekarz::zapisNaWizyte()
  305. {
  306.     cout << "Prosze podac godzine na ktora chcialby sie Pan"
  307.             "/Pani zapisac (Zapisy prowadzimy jedynie w godzinach x,00 - x,15 - x,30 - x,45): ";
  308.  
  309.     string godzina;
  310.     string dopuszczalna_kon1 = ",00";
  311.     string dopuszczalna_kon2 = ",15";
  312.     string dopuszczalna_kon3 = ",30";
  313.     string dopuszczalna_kon4 = ",45";
  314.  
  315.     cin >> godzina;
  316.  
  317.     cout << "--------------------------------------------------------------------------------------" << endl << endl;
  318.  
  319.     if((godzina.find(dopuszczalna_kon1) != string ::npos) || (godzina.find(dopuszczalna_kon2) != string ::npos) || (godzina.find(dopuszczalna_kon3) != string ::npos) || (godzina.find(dopuszczalna_kon4) != string ::npos))
  320.     {
  321.         if(!godzina.find(wizyty))
  322.         {
  323.  
  324.             int godzinaINT = std::stoi (godzina,nullptr,0);
  325.             if(godzinaINT >= godzina_roz && godzinaINT <= godzina_kon)
  326.             {
  327.                 wizyty = wizyty + godzina + " -";
  328.             }
  329.             else
  330.             {
  331.                 cout << "Niestety lekarz nie przyjmuje o tej godzinie" << endl << endl;
  332.             }
  333.         }
  334.         else
  335.         {
  336.             cout << "Niestety ta godzina jest już zajeta" << endl << endl;
  337.         }
  338.     }
  339.     else
  340.     {
  341.         cout << "Niestety ta godzina nie jest zgodna z naszym formatem zapisow." << endl << endl;
  342.     }
  343. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement