Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cstdlib>
  4. //#include <cstring>
  5. #include <string.h>
  6.  
  7. const int D_ID = 3;
  8. #define IMIE 8
  9. #define NAZ 11
  10. #define NAZWA 15
  11. #define CIT 10
  12. #define SPEC 8
  13. #define ILE_OP 10
  14. #define DLUGOSC_OP 255
  15. const int MAXPAC = 100;
  16.  
  17. using namespace std;
  18.  
  19. struct lekarz {
  20.     char id[D_ID];
  21.     char imie[IMIE];
  22.     char nazwisko[NAZ];
  23.     char nazwa[NAZWA];
  24.     char miasto[CIT];
  25.     char specjalnosc[SPEC];
  26.     int kolejka;
  27.     char opinie[ILE_OP][DLUGOSC_OP];
  28.     int liczba_opinii = 0;
  29.     char imie2[IMIE];
  30.     char nazwisko2[NAZ];
  31. };
  32.  
  33. void menu(lekarz L[], int liczba_spec);
  34. void menuglowne(int wybor);
  35. void menu_szuk(lekarz L[], const int liczba_spec);
  36. void menu_kasuj();
  37. void dodaj_lekarza(lekarz L[], int & liczba_spec);
  38. void kasuj_lekarza(lekarz L[], int & liczba_spec);
  39. int ID(lekarz L[], const int liczba_spec, char ID[]);
  40. void szukaj_po_ID(lekarz L[], const int liczba_spec);
  41. void lista_naglowek();
  42. void lista_lekarz(lekarz L[]);
  43. void lista_calosc(lekarz L[], const int liczba_spec);
  44. void dodanie_opinii(lekarz L[], int&liczba_spec);
  45. void dopisz(const lekarz lek);
  46. void inicjalizuj(lekarz *L, int &liczba_spec);
  47.  
  48. int main()
  49. {
  50.     lekarz L[MAXPAC];    // tablica zawieraj¹ca struktury typu osoba  - g³ówna struktura danych
  51.     int liczba_spec;       // liczba osób w tablicy L
  52.  
  53.     inicjalizuj(L, liczba_spec);
  54.     menu(L,liczba_spec);
  55. }
  56.  
  57. void menuglowne(int wybor)
  58. {
  59.     switch (wybor)
  60.     {
  61.     case 1: {
  62.         cout << endl;
  63.         cout << "BAZA DANYCH SPECJALISTOW" << endl;
  64.         cout << "------------------------" << endl;
  65.         cout << "MENU GLOWNE :" << endl;
  66.         cout << "------------------------" << endl;
  67.         cout << "1 - Dodaj Lekarza" << endl;
  68.         cout << "2 - Usun Lekarza" << endl;
  69.         cout << "3 - Edytuj dane lekarza" << endl;
  70.         cout << "4 - Wyszukaj lekarza" << endl;
  71.         cout << "5 - Lista lekarzy" << endl;
  72.         cout << "0 - Zakoncz prace" << endl;
  73.         cout << ">>";
  74.         break;
  75.     }
  76.     case 2: {
  77.         cout << endl;
  78.         cout << "MENU WYSZUKIWANIA : " << endl;
  79.         cout << "------------------------" << endl;
  80.         cout << "1 - Wyszukiwanie lekarza po nazwisku" << endl;
  81.         cout << "2 - Wyszukiwanie lekarza po specjalizacji" << endl;
  82.         cout << "3 - Wyszukiwanie po szpitalu" << endl;
  83.         cout << "4 - Wyszukiwanie specjalisty z najmniejsza kolejka" << endl;
  84.         cout << "5 - Wyszukiwanie lekarza po identyfikatorze" << endl;
  85.         cout << "0 - Wyjdz do glownego menu" << endl;
  86.         cout << ">>";
  87.         break;
  88.     }
  89.     case 3: {
  90.         cout << endl;
  91.         cout << "MENU KASOWANIA : " << endl;
  92.         cout << "------------------------" << endl;
  93.         cout << "1 - Skasuj dane lekarza po identyfikatorze" << endl;
  94.         cout << "0 - Wyjdz do glownego menu" << endl;
  95.         cout << ">>";
  96.         break;
  97.     }
  98.     }
  99. }
  100.  
  101. void menu(lekarz L[], int liczba_spec)
  102. {
  103.     int opcja_menu;
  104.  
  105.     do {
  106.         menuglowne(1);
  107.         cin >> opcja_menu;
  108.         switch (opcja_menu)
  109.         {
  110.         case 1: dodaj_lekarza(L, liczba_spec);
  111.             break;
  112.         case 2: menu_kasuj();
  113.             break;
  114.             //case 3: menu_edycja();
  115.             //break;
  116.         case 4: menu_szuk(L, liczba_spec);
  117.             break;
  118.         case 5: lista_calosc(L, liczba_spec);
  119.             break;
  120.         }
  121.  
  122.     } while (opcja_menu != 0);
  123.  
  124. }
  125.  
  126. void menu_szuk(lekarz L[], const int liczba_spec)
  127. {
  128.     int opcja_menu;
  129.     do {
  130.         menuglowne(2);
  131.         cin >> opcja_menu;
  132.         switch (opcja_menu)
  133.         {
  134.         case 1:;
  135.             break;
  136.         case 2:;
  137.             break;
  138.         case 3:;
  139.             break;
  140.         case 4:;
  141.             break;
  142.         case 5: szukaj_po_ID(L, liczba_spec);
  143.             break;
  144.         }
  145.     } while (opcja_menu != 0);
  146.  
  147. }
  148.  
  149. void menu_kasuj()
  150. {
  151.     int opcja_menu;
  152.     do {
  153.         menuglowne(3);
  154.         cin >> opcja_menu;
  155.         switch (opcja_menu)
  156.         {
  157.         case 1:;
  158.             break;
  159.         case 2:;
  160.             break;
  161.         }
  162.     } while (opcja_menu != 0);
  163.  
  164. }
  165.  
  166. //-----------FUNKCJE GLOWNE---------------
  167.  
  168. void dodaj_lekarza(lekarz L[], int & liczba_spec)
  169. {
  170.     int n;
  171.     cout << "Ilu chcesz dodac specjalistow ? (Podaj liczbe) : ";
  172.     cin >> n;
  173.     char id[D_ID];
  174.  
  175.     if (liczba_spec<MAXPAC)
  176.     {
  177.         for (int i = 0; i < n; i++)
  178.         {
  179.             cout << "ID : ";
  180.             cin >> id;
  181.             if (L[i].id != id)
  182.             {
  183.                 L[i].id == id;
  184.                 cout << "Imie : ";
  185.                 cin >> L[i].imie;
  186.                 cout << "Nazwisko : ";
  187.                 cin >> L[i].nazwisko;
  188.                 cout << "Nazwa osrodka : ";
  189.                 cin >> L[i].nazwa;
  190.                 cout << "Miasto, w ktorym znajduje sie osrodek : ";
  191.                 cin >> L[i].miasto;
  192.                 cout << "Specjalnosc : ";
  193.                 cin >> L[i].specjalnosc;
  194.                 cout << "Ilosc pacjentow w kolejce : ";
  195.                 cin >> L[i].kolejka;
  196.                 liczba_spec++;
  197.             }
  198.         }
  199.     }
  200. }
  201. void dopisz(const lekarz lek)
  202. {
  203.     cout << setw(sizeof(lek.id) + 2) << lek.id;
  204.     cout << setw(sizeof(lek.imie) + 2) << lek.imie;
  205.     cout << setw(sizeof(lek.nazwisko) + 2) << lek.nazwisko;
  206.     cout << setw(sizeof(lek.nazwa) + 2) << lek.nazwa;
  207.     cout << setw(sizeof(lek.miasto) + 2) << lek.miasto;
  208.     cout << setw(sizeof(lek.specjalnosc) + 2) << lek.specjalnosc;
  209.     cout << setw(sizeof(lek.kolejka) + 2) << lek.kolejka;
  210.     cout << setw(sizeof(lek.opinie) + 2) << lek.opinie;
  211.     cout << setw(sizeof(lek.imie2) + 2) << lek.imie2;
  212.     cout << setw(sizeof(lek.nazwisko2) + 2) << lek.nazwisko2;
  213.     cout << endl;
  214. }
  215. //---------------WYSZUKIWANIE-----------------
  216.  
  217. int ID(lekarz L[], const int liczba_spec, char id[])
  218. {
  219.     for (int i = 0; i < liczba_spec; i++)
  220.         if (strcmp(L[i].id, id) == 0) return(i);
  221.  
  222.     return(-1);
  223. }
  224.  
  225. void szukaj_po_ID(lekarz L[], const int liczba_spec)
  226. {
  227.     char id[D_ID];
  228.     int ind;
  229.  
  230.     cout << "Podaj ID : ";
  231.     cin >> id;
  232.     if ((ind = ID(L, liczba_spec, id)) != -1)
  233.     {
  234.         lista_naglowek();
  235.         lista_lekarz(L + ind);
  236.     }
  237.     else
  238.     {
  239.         cout << "Nie ma osoby o podanym numerze ID " << id << endl;
  240.         system("pause");
  241.     }
  242. }
  243.  
  244.  
  245. //---------------LISTA------------------------
  246.  
  247. void lista_naglowek()
  248. {
  249.     cout << endl;
  250.     cout << "|ID |  IMIE   |  NAZWISKO  | OSRODEK |  SPECJALNOSC  | KOLEJKA | " << endl;
  251.     cout << "_________________________________________________________________" << endl;
  252.  
  253. }
  254.  
  255. void lista_lekarz(lekarz L[])
  256. {
  257.     cout << L->id;
  258.     cout << setw(10) << L->imie;
  259.     cout << setw(15) << L->nazwisko;
  260.     cout << setw(10) << L->nazwa;
  261.     cout << setw(10) << L->miasto;
  262.     cout << setw(15) << L->specjalnosc;
  263.     cout << setw(10) << L->kolejka;
  264.     cout << endl;
  265. }
  266.  
  267. void lista_calosc(lekarz L[], const int liczba_spec)
  268. {
  269.     lista_naglowek();
  270.     for (int i = 0; i < liczba_spec; i++)
  271.         lista_lekarz(L + i);
  272.  
  273.     cout << "________________________________________________________________" << endl;
  274.     cout << "Ilosc lekarzy w bazie : " << liczba_spec << endl;
  275.     cout << endl;
  276.  
  277.     char odp;
  278.     char tak;
  279.     int i;
  280.     cout << "czy chcialbys dowiedziec sie czegos wiecej o jakims lekarzu? (wpisz tak lub nie) ";
  281.     cin >> odp;
  282.     if (odp == tak)
  283.     {
  284.         cout << "Jesli chcialbys poznac opinie pacjentow o danym lekarzu, to prosze podac jego numer: ";
  285.         cin >> i;
  286.         system("cls");
  287.         cout << L[i].opinie << L[i].imie2 << L[i].nazwisko2;
  288.     }
  289.     else system("cls");
  290. }
  291.  
  292. void dodanie_opinii(lekarz L[], int&liczba_spec)
  293. {
  294.     char nazwisko[NAZ];
  295.     cout << "wpisz nazwisko lekarza ktoremu chcesz wystawic opinie: ";
  296.     cin >> nazwisko;
  297.     for (int i = 0; i<liczba_spec; i++)
  298.     {
  299.         if (L[i].nazwisko != nazwisko)
  300.         {
  301.             cout << "Prosze o wpisanie opinii: ";
  302.             cin >> L[i].opinie[++L[i].liczba_opinii];
  303.  
  304.             cout << "Podaj swoje imie: ";
  305.             cin >> L[i].imie2;
  306.  
  307.             cout << "Podaj swoje nazwisko: ";
  308.             cin >> L[i].nazwisko2;
  309.         }
  310.     }
  311. }
  312. void inicjalizuj(lekarz *L, int &liczba_spec)
  313. {
  314.     strcpy(L[0].id, "001");
  315.     strcpy(L[0].imie, "Jan");
  316.     strcpy(L[0].nazwisko, "Kochanski");
  317.     strcpy(L[0].nazwa, "szpital sw. Patryka");
  318.     strcpy(L[0].miasto, "Sopot");
  319.     strcpy(L[0].specjalnosc, "laryngolog");
  320.     L[0].kolejka = 2;
  321.     //strcpy(L[0].kolejka, 2);
  322.     strcpy(L[0].opinie[0], "slaby, nie polecam");
  323.     L[0].liczba_opinii++;
  324.     strcpy(L[0].imie2, "Andrzej");
  325.     strcpy(L[0].nazwisko2, "Duda");
  326.  
  327.  
  328.     liczba_spec = 1;
  329. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement