Advertisement
Guest User

Untitled

a guest
May 20th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 81.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <windows.h>
  5. #include <stdbool.h>
  6.  
  7. //////LEKARZE--------------------------------------------------------------
  8.  
  9. struct lekarze
  10. {
  11.     int ID;
  12.     char nazwisko[20];
  13.     char imie[20];
  14.     char pesel[20];
  15.     int pwz;
  16.     char tytul[20];
  17.     char specjalizacja[20];
  18.     char mail[40];
  19.     int telefon;
  20.     struct lekarze *prev, *next;
  21. };
  22.  
  23. struct lekarze *create_list_lekarze(int ID, char nazwisko[],char imie[],char pesel[],int pwz,char tytul[],char specjalizacja[],char mail[],int telefon) {
  24.  
  25.     struct lekarze *front = (struct lekarze *)malloc(sizeof(struct lekarze));
  26.  
  27.     if (front != NULL)
  28.     {
  29.         front->ID = ID;
  30.         strcpy(front->nazwisko,nazwisko);
  31.         strcpy(front->imie,imie);
  32.         strcpy(front->pesel,pesel);
  33.         front->pwz = pwz;
  34.         strcpy(front->tytul,tytul);
  35.         strcpy(front->specjalizacja,specjalizacja);
  36.         strcpy(front->mail,mail);
  37.         front->telefon = telefon;
  38.         front->prev = NULL;
  39.         front->next = NULL;
  40.     }
  41.     return front;
  42. }
  43.  
  44. struct lekarze *insert_front_lekarze(struct lekarze *front, struct lekarze *new_node) {
  45.  
  46.     new_node->next = front;
  47.     front->prev = new_node;
  48.     return new_node;
  49. }
  50.  
  51. struct lekarze *find_spot_lekarze(struct lekarze *front, int ID) {//zmiana
  52.  
  53.     struct lekarze *prev = NULL;
  54.  
  55.     while ((NULL != front) && (front->ID < ID))
  56.     {
  57.         prev = front;
  58.         front = front->next;
  59.     }
  60.     return prev;
  61. }
  62.  
  63. void insert_after_lekarze(struct lekarze *node, struct lekarze *new_node) {
  64.  
  65.     new_node->prev = node;
  66.     new_node->next = node->next;
  67.     node->next->prev = new_node;
  68.     node->next = new_node;
  69. }
  70.  
  71. void insert_back_lekarze(struct lekarze *back, struct lekarze *new_node) {
  72.  
  73.     back->next = new_node;
  74.     new_node->prev = back;
  75. }
  76.  
  77.  
  78. struct lekarze *insert_node_lekarze(struct lekarze *front,int ID, char nazwisko[],char imie[],char pesel[],int pwz,char tytul[],char specjalizacja[],char mail[],int telefon ) {
  79.  
  80.     if (front == NULL)
  81.         return NULL;
  82.     struct lekarze *new_node = (struct lekarze*)malloc(sizeof(struct lekarze));
  83.  
  84.     if (new_node != NULL)
  85.     {
  86.         new_node->ID = ID;
  87.         strcpy(new_node->nazwisko,nazwisko);
  88.         strcpy(new_node->imie,imie);
  89.         strcpy(new_node->pesel,pesel);
  90.         new_node->pwz = pwz;
  91.         strcpy(new_node->tytul,tytul);
  92.         strcpy(new_node->specjalizacja,specjalizacja);
  93.         strcpy(new_node->mail,mail);
  94.         new_node->telefon = telefon;
  95.         new_node->prev = new_node->next = NULL;
  96.         if (front->ID>= ID)//zmiana
  97.             return insert_front_lekarze(front, new_node);
  98.         else
  99.         {
  100.             struct lekarze *node = find_spot_lekarze(front, ID);
  101.             if (NULL != node->next)
  102.                 insert_after_lekarze(node, new_node);
  103.             else
  104.                 insert_back_lekarze(node, new_node);
  105.         }
  106.     }
  107.     return front;
  108. }
  109. ////////////////////////////////////////////////////////////
  110. struct lekarze *delete_front_lekarze(struct lekarze *front)
  111. {
  112.     struct lekarze *next = front->next;
  113.     if (NULL != next)
  114.         next->prev = NULL;
  115.     free(front);
  116.     return next;
  117. }
  118.  
  119. void delete_within_lekarze(struct lekarze *node)
  120. {
  121.     node->next->prev = node->prev;
  122.     node->prev->next = node->next;
  123.     free(node);
  124. }
  125.  
  126. void delete_back_lekarze(struct lekarze *back)
  127. {
  128.     back->prev->next = NULL;
  129.     free(back);
  130. }
  131.  
  132. struct lekarze *znajdz_lekarza(struct lekarze *front, int ID)
  133. {
  134.     while ((NULL != front) && (front->ID != ID))
  135.         front = front->next;
  136.     return front;
  137. }
  138.  
  139. void front_back(struct lekarze **front) {
  140.     for (; NULL != (*front)->prev; *front = (*front)->prev)
  141.     {
  142.     }
  143. }
  144.  
  145. struct lekarze *delete_node_lekarze(struct lekarze **front, int ID)
  146. {
  147.  
  148.     if ((*front)->ID == ID && (*front)->next == NULL && (*front)->prev == NULL)
  149.     {
  150.         free(*front);
  151.         *front = NULL;
  152.         return *front;
  153.     }
  154.  
  155.     if ((*front)->ID == ID && (*front)->next != NULL && (*front)->prev == NULL)
  156.     {
  157.         *front = (*front)->next;
  158.         free((*front)->prev);
  159.         (*front)->prev = NULL;
  160.         return *front;
  161.     }
  162.  
  163.     (*front) = znajdz_lekarza(*front, ID);
  164.     struct lekarze *node = *front;
  165.  
  166.     if ((*front)->ID == ID && (*front)->next != NULL && (*front)->prev != NULL)
  167.     {
  168.         (*front)->next->prev = (*front)->prev;
  169.         (*front)->prev->next = (*front)->next;
  170.         front_back(&(*front));
  171.         free(node);
  172.         return *front;
  173.     }
  174.  
  175.     if ((*front)->ID == ID && (*front)->next == NULL && (*front)->prev != NULL)
  176.     {
  177.         (*front)->prev->next = NULL;
  178.         front_back(&(*front));
  179.         free(node);
  180.         return *front;
  181.     }
  182.     return NULL;
  183. }
  184.  
  185. ///////////////////////////////////////////////////////////////
  186. void print_lekarze(struct lekarze *front)
  187. {
  188.     for (; NULL != front; front = front->next)
  189.     {
  190.         printf("\nID: %d\n",front->ID);
  191.         printf("Nazwisko: %s\n",front->nazwisko);
  192.         printf("Imie: %s\n",front->imie);
  193.         printf("Pesel: %s\n",front->pesel);
  194.         printf("PWZ: %d\n",front->pwz);
  195.         printf("Tytul zawodowy: %s\n",front->tytul);
  196.         printf("Specjalizacja: %s\n",front->specjalizacja);
  197.         printf("E-mail: %s\n",front->mail);
  198.         printf("Telefon: %d\n\n",front->telefon);
  199.     }
  200.     puts("");
  201. }
  202.  
  203.  
  204. void remove_list_lekarze(struct lekarze **front)
  205. {
  206.     while (NULL != *front)
  207.     {
  208.         struct lekarze *next = (*front)->next;
  209.         free(*front);
  210.         *front = next;
  211.     }
  212. }
  213.  
  214. void edit_lekarz(struct lekarze *front, int ID, char nazwisko[],char imie[],char pesel[],int pwz,char tytul[],char specjalizacja[],char mail[],int telefon)
  215. {
  216.     for (; NULL != front; front = front->next)
  217.     {
  218.         if(front->ID == ID)
  219.         {
  220.             strcpy(front->nazwisko,nazwisko);
  221.             strcpy(front->imie,imie);
  222.             strcpy(front->pesel,pesel);
  223.             front->pwz = pwz;
  224.             strcpy(front->tytul,tytul);
  225.             strcpy(front->specjalizacja,specjalizacja);
  226.             strcpy(front->mail,mail);
  227.             front->telefon = telefon;
  228.  
  229.             break;
  230.         }
  231.     }
  232. }
  233.  
  234. int sprawdz_numer_ID(struct lekarze *front, int numer)
  235. {
  236.     for (; NULL != front; front = front->next)
  237.     {
  238.         if (front->ID == numer) {
  239.             return 0;
  240.         }
  241.     }
  242.     return 1;
  243. }
  244.  
  245.  
  246. void save_to_file_lekarze(struct lekarze *front)
  247. {
  248.     FILE *plik;
  249.     plik = fopen("Lekarze.txt","w+");
  250.  
  251.     for (; NULL != front; front = front->next)
  252.     {
  253.         fprintf(plik,"ID:%d\n",front->ID);
  254.         fprintf(plik,"Nazwisko:%s\n",front->nazwisko);
  255.         fprintf(plik,"Imie:%s\n",front->imie);
  256.         fprintf(plik,"Pesel:%s\n",front->pesel);
  257.         fprintf(plik,"PWZ:%d\n",front->pwz);
  258.         fprintf(plik,"Tytul zawodowy:%s\n",front->tytul);
  259.         fprintf(plik,"Specjalizacja:%s\n",front->specjalizacja);
  260.         fprintf(plik,"E-Mail:%s\n",front->mail);
  261.         fprintf(plik,"Telefon:%d\n\n",front->telefon);
  262.     }
  263.     printf("\n");
  264.     fclose(plik);
  265. }
  266.  
  267. struct lekarze *load_from_file_lekarze(struct lekarze *front)
  268. {
  269.     FILE *plik;
  270.     plik = fopen("Lekarze.txt","r");
  271.     if(plik == NULL)
  272.         return front;
  273.     char a;
  274.     char ID [20];
  275.     char nazwisko[20];
  276.     char imie[20];
  277.     char pesel [20];
  278.     char pwz [20];
  279.     char tytul[20];
  280.     char specjalizacja[20];
  281.     char mail[40];
  282.     char telefon[20];
  283.     memset(ID,0,sizeof(ID));
  284.     memset(nazwisko,0,sizeof(ID));
  285.     memset(imie,0,sizeof(ID));
  286.     memset(pesel,0,sizeof(ID));
  287.     memset(pwz,0,sizeof(ID));
  288.     memset(tytul,0,sizeof(ID));
  289.     memset(specjalizacja,0,sizeof(ID));
  290.     memset(mail,0,sizeof(ID));
  291.     memset(telefon,0,sizeof(ID));
  292.     int line=0;
  293.  
  294.     while(!feof(plik))
  295.     {
  296.         fscanf(plik,"%c",&a);
  297.         if(line==0&&a==':')
  298.             line=1;
  299.         if(line)
  300.         {
  301.             if(ID[0] == 0)
  302.             {
  303.                 fgets(ID,20,plik);
  304.             }
  305.             else if(nazwisko[0] == 0)
  306.             {
  307.                 fgets(nazwisko,20,plik);
  308.                 int len = strlen(nazwisko);
  309.                 nazwisko[len-1] = 0;
  310.             }
  311.             else if(imie[0] == 0)
  312.             {
  313.                 fgets(imie,20,plik);
  314.                 int len = strlen(imie);
  315.                 imie[len-1] = 0;
  316.             }
  317.  
  318.             else if(pesel[0] == 0)
  319.             {
  320.                 fgets(pesel,20,plik);
  321.                 int len = strlen(pesel);
  322.                 pesel[len-1] = 0;
  323.             }
  324.             else if(pwz[0] == 0)
  325.             {
  326.                 fgets(pwz,20,plik);
  327.             }
  328.  
  329.             else if(tytul[0] == 0)
  330.             {
  331.                 fgets(tytul,20,plik);
  332.                 int len = strlen(tytul);
  333.                 tytul[len-1] = 0;
  334.             }
  335.  
  336.             else if(specjalizacja[0] == 0)
  337.             {
  338.                 fgets(specjalizacja,20,plik);
  339.                 int len = strlen(specjalizacja);
  340.                 specjalizacja[len-1] = 0;
  341.             }
  342.  
  343.             else if(mail[0] == 0)
  344.             {
  345.                 fgets(mail,40,plik);
  346.                 int len = strlen(mail);
  347.                 mail[len-1] = 0;
  348.             }
  349.             else if(telefon[0] == 0)
  350.             {
  351.                 fgets(telefon,20,plik);
  352.                 if(front == NULL)
  353.                     front = create_list_lekarze(atoi(ID),nazwisko,imie,pesel,atoi(pwz),tytul,specjalizacja,mail,atoi(telefon));
  354.                 else
  355.                     front = insert_node_lekarze(front,atoi(ID),nazwisko,imie,pesel,atoi(pwz),tytul,specjalizacja,mail,atoi(telefon));
  356.                 memset(ID,0,sizeof(ID));
  357.                 memset(nazwisko,0,sizeof(nazwisko));
  358.                 memset(imie,0,sizeof(imie));
  359.                 memset(pesel,0,sizeof(pesel));
  360.                 memset(pwz,0,sizeof(pwz));
  361.                 memset(tytul,0,sizeof(tytul));
  362.                 memset(specjalizacja,0,sizeof(specjalizacja));
  363.                 memset(mail,0,sizeof(mail));
  364.                 memset(telefon,0,sizeof(telefon));
  365.             }
  366.         }
  367.         if(a==':'||a=='\n')
  368.             line=0;
  369.     }
  370.     fclose(plik);
  371.     return front;
  372. }
  373.  
  374. ////////////////////////////////////////////////////////////////////////
  375. //Funkcja czyszczaca konsole, sa tutaj funkcje przerwan z wyzej dolaczonej biblioteki windows.h
  376. void cls()
  377. {
  378.     HANDLE hStdout;
  379.     hStdout = GetStdHandle( STD_OUTPUT_HANDLE );
  380.     COORD coordScreen = { 0, 0 };
  381.     DWORD cCharsWritten;
  382.     CONSOLE_SCREEN_BUFFER_INFO csbi;
  383.     DWORD dwConSize;
  384.  
  385.     if( !GetConsoleScreenBufferInfo( hStdout, & csbi ) )
  386.          return;
  387.  
  388.     dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
  389.     if( !FillConsoleOutputCharacter( hStdout,( TCHAR ) ' ',
  390.     dwConSize, coordScreen, & cCharsWritten ) )
  391.          return;
  392.  
  393.     if( !GetConsoleScreenBufferInfo( hStdout, & csbi ) )
  394.          return;
  395.  
  396.     if( !FillConsoleOutputAttribute( hStdout, csbi.wAttributes,
  397.     dwConSize, coordScreen, & cCharsWritten ) )
  398.          return;
  399.  
  400.     SetConsoleCursorPosition( hStdout, coordScreen );
  401. }
  402.  
  403. /////////////////////////////////////FUNKCJE POMOCNICZE
  404.  
  405. bool wybor_tytulu(char tytul[])
  406. {
  407.     int wybor;
  408.  
  409.     puts("1)lek.med.");
  410.     puts("2)lek.dent.");
  411.     puts("3)dr n.med.");
  412.     puts("4)dr hab n.med.");
  413.     puts("5)prof. dr hab");
  414.  
  415.         while(scanf("%d", &wybor) != 1) //dopóki nie uda się wczytać
  416.         {
  417.         //ew. komunikat błędu
  418.         int c;
  419.         while((c = getchar()) != '\n' && c != EOF); //pętla wyciągająca znaki z bufora
  420.         }
  421.  
  422.  
  423.      switch(wybor)
  424.      {
  425.             case 1:
  426.                 sprintf(tytul,"lek.med.");
  427.                 break;
  428.             case 2:
  429.                 sprintf(tytul,"lek.dent.");
  430.                 break;
  431.             case 3:
  432.                 sprintf(tytul,"dr n.med.");
  433.                 break;
  434.             case 4:
  435.                 sprintf(tytul,"dr hab n.med.");
  436.                 break;
  437.             case 5:
  438.                 sprintf(tytul,"prof. dr hab");
  439.                 break;
  440.             default:
  441.                 puts("Bledny wybor");
  442.                 return false;
  443.                 break;
  444.         }
  445.         return true;
  446. }
  447.  
  448. bool wybor_specjalizacji(char specjalizacja[])
  449. {
  450.     int wybor;
  451.  
  452.     puts("1)Nefrologia");
  453.     puts("2)Neurologia");
  454.     puts("3)Okulistyka");
  455.     puts("4)Pediatria");
  456.     puts("5)Psychiatria");
  457.     puts("6)Ortopedia");
  458.     puts("7)Reumatologia");
  459.     puts("8)Urologia");
  460.     puts("9)Stomatologia");
  461.     puts("10)Zdrowie Publiczne");
  462.  
  463.     while(scanf("%d", &wybor) != 1) //dopóki nie uda się wczytać
  464.         {
  465.         //ew. komunikat błędu
  466.         int c;
  467.         while((c = getchar()) != '\n' && c != EOF); //pętla wyciągająca znaki z bufora
  468.         }
  469.  
  470.     switch(wybor)
  471.     {
  472.         case 1:
  473.             sprintf(specjalizacja,"Nefrologia");
  474.             break;
  475.         case 2:
  476.             sprintf(specjalizacja,"Neurologia");
  477.             break;
  478.         case 3:
  479.             sprintf(specjalizacja,"Okulistyka");
  480.             break;
  481.         case 4:
  482.             sprintf(specjalizacja,"Pediatria");
  483.             break;
  484.         case 5:
  485.             sprintf(specjalizacja,"Psychiatria");
  486.             break;
  487.         case 6:
  488.             sprintf(specjalizacja,"Ortopedia");
  489.             break;
  490.         case 7:
  491.             sprintf(specjalizacja,"Reumatologia");
  492.             break;
  493.         case 8:
  494.             sprintf(specjalizacja,"Urologia");
  495.             break;
  496.         case 9:
  497.             sprintf(specjalizacja,"Stomatologia");
  498.             break;
  499.         case 10:
  500.             sprintf(specjalizacja,"Zdrowie Publiczne");
  501.             break;
  502.         default:
  503.             puts("Bledny wybor");
  504.             return false;
  505.             break;
  506.     }
  507.     return true;
  508. }
  509.  
  510.  
  511.  
  512. void wprowadz_dane_lekarze(char nazwisko[],char imie[],char pesel[],int *pwz,char tytul[],char specjalizacja[],char mail[],int *telefon)
  513. {
  514. char bezpieczny_tel[9];
  515. char bezpieczny_pwz[7];
  516. int tel;
  517. int prawo;
  518.  
  519.     printf("Podaj nazwisko: ");
  520.     scanf("%s",nazwisko);
  521.     printf("Podaj imie: ");
  522.     scanf("%s",imie);
  523.  
  524.         do {
  525.             printf("Podaj pesel (11cyfr): ");
  526.             scanf("%s",pesel);
  527.             }while(strlen(pesel)!=11);
  528.  
  529.  
  530.         do {
  531.             printf("Podaj numer PWZ (7cyfr): ");
  532.             scanf("%s",bezpieczny_pwz);
  533.             if (atoi(bezpieczny_pwz) != 0)
  534.             prawo = atoi(bezpieczny_pwz);
  535.             else
  536.                 continue;
  537.             } while((prawo<1000000) || (prawo >9999999));
  538.  
  539.             *pwz = atoi(bezpieczny_pwz);
  540.  
  541.             printf("Podaj tytul zawodowy:\n");
  542.             while(!(wybor_tytulu(tytul)));
  543.  
  544.             printf("Podaj specjalizacje:\n");
  545.              while(!(wybor_specjalizacji(specjalizacja)));
  546.  
  547.             powrot_mail:
  548.             printf("Podaj adres E-MAIL: ");
  549.             scanf("%s",mail);
  550.             int i;
  551.             int checkmail=0;
  552.                 for(i=0;i<40;i++)
  553.                     {
  554.                         if(mail[i]=='@')
  555.                         {
  556.                             checkmail = 1;
  557.                             break;
  558.                         }
  559.                     }
  560.                         if(checkmail == 0)
  561.                         {
  562.                         goto powrot_mail;
  563.                         }
  564.  
  565.  
  566.  
  567.             do {
  568.                 printf("Podaj numer telefonu (9cyfr): ");
  569.                 scanf("%s", bezpieczny_tel);
  570.                     if (atoi(bezpieczny_tel) != 0)
  571.                 tel = atoi(bezpieczny_tel);
  572.                     else
  573.                         continue;
  574.                     } while ((tel < 100000000) || (tel > 999999999));
  575.                     *telefon = atoi(bezpieczny_tel);
  576.  
  577. }
  578.  
  579.  
  580.  
  581.  
  582. /////////////////////////////////////FUNKCJE WYSZUKUJACE
  583.  
  584. void print_id(struct lekarze *front, int ID)
  585. {
  586.     for(; front != NULL; front = front->next)
  587.     {
  588.         if (front->ID == ID)
  589.         {
  590.         printf("ID: %d\n",front->ID);
  591.         printf("Nazwisko: %s\n",front->nazwisko);
  592.         printf("Imie: %s\n",front->imie);
  593.         printf("Pesel: %s\n",front->pesel);
  594.         printf("PWZ: %d\n",front->pwz);
  595.         printf("Tytul zawodowy: %s\n",front->tytul);
  596.         printf("Specjalizacja: %s\n",front->specjalizacja);
  597.         printf("E-mail: %s\n",front->mail);
  598.         printf("Telefon: %d\n\n",front->telefon);
  599.         }
  600.     }
  601. }
  602.  
  603. void print_imie(struct lekarze *front, char imie[], char nazwisko[])
  604. {
  605.     for(; front != NULL; front = front->next)
  606.     {
  607.         if ((!(strcasecmp(front->imie,imie)))&& (!(strcasecmp(front->nazwisko,nazwisko))))
  608.         {
  609.         printf("ID: %d\n",front->ID);
  610.         printf("Nazwisko: %s\n",front->nazwisko);
  611.         printf("Imie: %s\n",front->imie);
  612.         printf("Pesel: %s\n",front->pesel);
  613.         printf("PWZ: %d\n",front->pwz);
  614.         printf("Tytul zawodowy: %s\n",front->tytul);
  615.         printf("Specjalizacja: %s\n",front->specjalizacja);
  616.         printf("E-mail: %s\n",front->mail);
  617.         printf("Telefon: %d\n\n",front->telefon);
  618.         }
  619.     }
  620. }
  621.  
  622. void print_pesel(struct lekarze *front, char pesel[])
  623. {
  624.     for(; front != NULL; front = front->next)
  625.     {
  626.         if (!(strcasecmp(front->pesel,pesel)))
  627.         {
  628.         printf("ID: %d\n",front->ID);
  629.         printf("Nazwisko: %s\n",front->nazwisko);
  630.         printf("Imie: %s\n",front->imie);
  631.         printf("Pesel: %s\n",front->pesel);
  632.         printf("PWZ: %d\n",front->pwz);
  633.         printf("Tytul zawodowy: %s\n",front->tytul);
  634.         printf("Specjalizacja: %s\n",front->specjalizacja);
  635.         printf("E-mail: %s\n",front->mail);
  636.         printf("Telefon: %d\n\n",front->telefon);
  637.         }
  638.     }
  639. }
  640.  
  641. void print_pwz(struct lekarze *front, int pwz)
  642. {
  643.     for(; front != NULL; front = front->next)
  644.     {
  645.         if (front->pwz == pwz)
  646.         {
  647.         printf("ID: %d\n",front->ID);
  648.         printf("Nazwisko: %s\n",front->nazwisko);
  649.         printf("Imie: %s\n",front->imie);
  650.         printf("Pesel: %s\n",front->pesel);
  651.         printf("PWZ: %d\n",front->pwz);
  652.         printf("Tytul zawodowy: %s\n",front->tytul);
  653.         printf("Specjalizacja: %s\n",front->specjalizacja);
  654.         printf("E-mail: %s\n",front->mail);
  655.         printf("Telefon: %d\n\n",front->telefon);
  656.         }
  657.     }
  658. }
  659.  
  660. void print_tytul(struct lekarze *front, char tytul[])
  661. {
  662.     for(; front != NULL; front = front->next)
  663.     {
  664.         if (!(strcasecmp(front->tytul,tytul)))
  665.         {
  666.         printf("ID: %d\n",front->ID);
  667.         printf("Nazwisko: %s\n",front->nazwisko);
  668.         printf("Imie: %s\n",front->imie);
  669.         printf("Pesel: %s\n",front->pesel);
  670.         printf("PWZ: %d\n",front->pwz);
  671.         printf("Tytul zawodowy: %s\n",front->tytul);
  672.         printf("Specjalizacja: %s\n",front->specjalizacja);
  673.         printf("E-mail: %s\n",front->mail);
  674.         printf("Telefon: %d\n\n",front->telefon);
  675.         }
  676.     }
  677. }
  678.  
  679. void print_specjalizacja(struct lekarze *front, char specjalizacja[])
  680. {
  681.     for(; front != NULL; front = front->next)
  682.     {
  683.         if (!(strcasecmp(front->specjalizacja,specjalizacja)))
  684.         {
  685.         printf("ID: %d\n",front->ID);
  686.         printf("Nazwisko: %s\n",front->nazwisko);
  687.         printf("Imie: %s\n",front->imie);
  688.         printf("Pesel: %s\n",front->pesel);
  689.         printf("PWZ: %d\n",front->pwz);
  690.         printf("Tytul zawodowy: %s\n",front->tytul);
  691.         printf("Specjalizacja: %s\n",front->specjalizacja);
  692.         printf("E-mail: %s\n",front->mail);
  693.         printf("Telefon: %d\n\n",front->telefon);
  694.         }
  695.     }
  696. }
  697.  
  698. void print_mail(struct lekarze *front, char mail[])
  699. {
  700.     for(; front != NULL; front = front->next)
  701.     {
  702.         if (!(strcasecmp(front->mail,mail)))
  703.         {
  704.         printf("ID: %d\n",front->ID);
  705.         printf("Nazwisko: %s\n",front->nazwisko);
  706.         printf("Imie: %s\n",front->imie);
  707.         printf("Pesel: %s\n",front->pesel);
  708.         printf("PWZ: %d\n",front->pwz);
  709.         printf("Tytul zawodowy: %s\n",front->tytul);
  710.         printf("Specjalizacja: %s\n",front->specjalizacja);
  711.         printf("E-mail: %s\n",front->mail);
  712.         printf("Telefon: %d\n\n",front->telefon);
  713.         }
  714.     }
  715. }
  716.  
  717. void print_telefon(struct lekarze *front, int telefon)
  718. {
  719.     for(; front != NULL; front = front->next)
  720.     {
  721.         if (front->telefon == telefon)
  722.         {
  723.         printf("ID: %d\n",front->ID);
  724.         printf("Nazwisko: %s\n",front->nazwisko);
  725.         printf("Imie: %s\n",front->imie);
  726.         printf("Pesel: %s\n",front->pesel);
  727.         printf("PWZ: %d\n",front->pwz);
  728.         printf("Tytul zawodowy: %s\n",front->tytul);
  729.         printf("Specjalizacja: %s\n",front->specjalizacja);
  730.         printf("E-mail: %s\n",front->mail);
  731.         printf("Telefon: %d\n\n",front->telefon);
  732.         }
  733.     }
  734. }
  735.  
  736.  
  737. //////////////////////POMOCNICZA FUNKCJA WYSZUKUJACA
  738.  
  739. bool wyszukiwanie_lekarza(struct lekarze *lekarze_front)
  740. {
  741.     int wybor;
  742.     char bezpieczny[9];
  743.     char bezpieczny_tel[9];
  744.     int ID;
  745.     char nazwisko[20];
  746.     char imie[20];
  747.     char pesel[20];
  748.     int pwz;
  749.     char tytul[20];
  750.     char specjalizacja[20];
  751.     char mail[40];
  752.     int telefon;
  753.  
  754.     int back = 0;
  755.     do {
  756.         do {
  757.                     cls();
  758.                     puts("1.Wyszukaj po id");
  759.                     puts("2.Wyszukaj po imieniu i nazwisku");
  760.                     puts("3.Wyszukaj po nr PESEL");
  761.                     puts("4.Wyszukaj po nr PWZ");
  762.                     puts("5.Wyszukaj po tytule zawodowym");
  763.                     puts("6.Wyszukaj po specjalizacji");
  764.                     puts("7.Wyszukaj po adresie E-Mail");
  765.                     puts("8.Wyszukaj po numerze telefonu");
  766.                     puts("9.Poprzednie menu");
  767.                     scanf("%s", bezpieczny);
  768.                 } while (atoi(bezpieczny) == 0);
  769.                 wybor = atoi(bezpieczny);
  770.  
  771.                 switch(wybor)
  772.                 {
  773.                     case 1:
  774.                     {
  775.                         cls();
  776.                         puts("1)Wyszukaj po id\n");
  777.                         do {
  778.                             printf("Podaj ID lekarza: ");
  779.                             scanf("%s",bezpieczny);
  780.                         } while (atoi(bezpieczny) == 0);
  781.                         ID = atoi(bezpieczny);
  782.                         puts("");
  783.                         print_id(lekarze_front,ID);
  784.                         system("PAUSE");
  785.                         return false;
  786.                     }
  787.  
  788.                     case 2:
  789.                     {
  790.                         cls();
  791.                         puts("2)Wyszukaj po imieniu i nazwisku\n");
  792.                         printf("Podaj imie lekarza: ");
  793.                         scanf(" %s",imie);
  794.                         printf("Podaj nazwisko lekarza: ");
  795.                         scanf(" %s",nazwisko);
  796.                         puts("");
  797.                         print_imie(lekarze_front,imie,nazwisko);
  798.                         system("PAUSE");
  799.                         return false;
  800.                     }
  801.  
  802.                     case 3:
  803.                     {
  804.                         cls();
  805.                         puts("3)Wyszukaj po nr PESEL\n");
  806.                         printf("Podaj PESEL: ");
  807.                         scanf("%s",pesel);
  808.                         puts("");
  809.                         print_pesel(lekarze_front,pesel);
  810.                         system("PAUSE");
  811.                         return false;
  812.                     }
  813.  
  814.                      case 4:
  815.                     {
  816.                         cls();
  817.                         puts("4)Wyszukaj po nr PWZ\n");
  818.                         do {
  819.                             printf("Podaj nr PWZ: ");
  820.                             scanf("%s",bezpieczny);
  821.                         } while (atoi(bezpieczny) == 0);
  822.                         pwz = atoi(bezpieczny);
  823.                         puts("");
  824.                         print_pwz(lekarze_front,pwz);
  825.                         system("PAUSE");
  826.                         return false;
  827.                     }
  828.  
  829.                     case 5:
  830.                     {
  831.                         cls();
  832.                         puts("5)Wyszukaj po tytule zawodowym\n");
  833.                         printf("Wybierz tytul zawodowy:\n");
  834.                         while(!(wybor_tytulu(tytul)));
  835.                         print_tytul(lekarze_front,tytul);
  836.                         system("PAUSE");
  837.                         return false;
  838.                     }
  839.  
  840.  
  841.                     case 6:
  842.                     {
  843.                         cls();
  844.                         puts("6)Wyszukaj po specjalizacji\n");
  845.                         printf("Wybierz specjalizacje:\n");
  846.                         while(!(wybor_specjalizacji(specjalizacja)));
  847.                         print_specjalizacja(lekarze_front,specjalizacja);
  848.                         system("PAUSE");
  849.                         return false;
  850.                     }
  851.  
  852.                     case 7:
  853.                     {
  854.                         cls();
  855.                         puts("7)Wyszukaj po adresie E-Mail\n");
  856.                         printf("Podaj adres E-mail: ");
  857.                         scanf("%s",mail);
  858.                         puts("");
  859.                         print_mail(lekarze_front,mail);
  860.                         system("PAUSE");
  861.                         return false;
  862.                     }
  863.  
  864.                     case 8:
  865.                     {
  866.                         cls();
  867.                         puts("8)Wyszukaj po nr telefonu\n");
  868.                         do {
  869.                             printf("Podaj nt telefonu: ");
  870.                             scanf("%s",bezpieczny_tel);
  871.                         } while (atoi(bezpieczny_tel) == 0);
  872.                         telefon = atoi(bezpieczny_tel);
  873.                         puts("");
  874.                         print_telefon(lekarze_front,telefon);
  875.                         system("PAUSE");
  876.                         return false;
  877.                     }
  878.  
  879.                     case 9:
  880.                     {
  881.                         return true;
  882.                     }
  883.  
  884.                     }
  885.                     }while (back == 0);
  886.     return false;
  887. }
  888.  
  889. //////////////////////////// PACJENCI ////////////////////////////
  890.  
  891. struct pacjenci
  892. {
  893.     int ID;
  894.     char nazwisko[20];
  895.     char imie[20];
  896.     char pesel[20];
  897.     char data_urodzenia[11];// DD/MM/RR
  898.     //ADRES ZAMIESZKANIA
  899.     char ulica[20];
  900.     char numer_domu[20];
  901.     char miasto[20];
  902.     char kod_pocztowy[20];
  903.  
  904.     char mail[40];
  905.     int telefon;
  906.     int waga; //w kg
  907.     int wzrost; //w cm
  908.     char oddzial_nfz[100];
  909.  
  910.     struct pacjenci *prev, *next;
  911. };
  912.  
  913. ////////////////////////////DODAWANIE PACJENTOW////////////////////////////
  914.  
  915. struct pacjenci *create_list_pacjenci(int ID, char imie[],char nazwisko[],char pesel[],char data_urodzenia[],char miasto[],char ulica[],char numer_domu[],char kod_pocztowy[],
  916.                                       char mail[],int telefon,int waga, int wzrost, char oddzial_nfz[])
  917. {
  918.  
  919.     struct pacjenci *front = (struct pacjenci *)malloc(sizeof(struct pacjenci));
  920.  
  921.     if (front != NULL)
  922.     {
  923.         front->ID = ID;
  924.         strcpy(front->nazwisko,nazwisko);
  925.         strcpy(front->imie,imie);
  926.         strcpy(front->pesel,pesel);
  927.         strcpy(front->data_urodzenia,data_urodzenia);
  928.         strcpy(front->miasto,miasto);
  929.         strcpy(front->ulica,ulica);
  930.         strcpy(front->numer_domu,numer_domu);
  931.         strcpy(front->kod_pocztowy,kod_pocztowy);
  932.         strcpy(front->mail,mail);
  933.         front->telefon = telefon;
  934.         front->waga = waga;
  935.         front->wzrost = wzrost;
  936.         strcpy(front->oddzial_nfz,oddzial_nfz);
  937.  
  938.         front->prev = NULL;
  939.         front->next = NULL;
  940.     }
  941.     return front;
  942. }
  943.  
  944. struct pacjenci *insert_front_pacjenci(struct pacjenci *front, struct pacjenci *new_node) {
  945.  
  946.     new_node->next = front;
  947.     front->prev = new_node;
  948.     return new_node;
  949. }
  950.  
  951. struct pacjenci *find_spot_pacjenci(struct pacjenci *front, int ID) {
  952.  
  953.     struct pacjenci *prev = NULL;
  954.  
  955.     while ((NULL != front) && (front->ID < ID))
  956.     {
  957.         prev = front;
  958.         front = front->next;
  959.     }
  960.     return prev;
  961. }
  962.  
  963. void insert_after_pacjenci(struct pacjenci *node, struct pacjenci *new_node) {
  964.  
  965.     new_node->prev = node;
  966.     new_node->next = node->next;
  967.     node->next->prev = new_node;
  968.     node->next = new_node;
  969. }
  970.  
  971. void insert_back_pacjenci(struct pacjenci *back, struct pacjenci *new_node) {
  972.  
  973.     back->next = new_node;
  974.     new_node->prev = back;
  975. }
  976.  
  977.  
  978. struct pacjenci *insert_node_pacjenci(struct pacjenci *front,int ID, char imie[],char nazwisko[],char pesel[],char data_urodzenia[],char miasto[],char ulica[],char numer_domu[],char kod_pocztowy[],
  979.                                       char mail[],int telefon,int waga, int wzrost, char oddzial_nfz[])
  980. {
  981.  
  982.     if (front == NULL)
  983.         return NULL;
  984.     struct pacjenci *new_node = (struct pacjenci*)malloc(sizeof(struct pacjenci));
  985.  
  986.     if (new_node != NULL)
  987.     {
  988.         new_node->ID = ID;
  989.         strcpy(new_node->nazwisko,nazwisko);
  990.         strcpy(new_node->imie,imie);
  991.         strcpy(new_node->pesel,pesel);
  992.         strcpy(new_node->data_urodzenia,data_urodzenia);
  993.         strcpy(new_node->miasto,miasto);
  994.         strcpy(new_node->ulica,ulica);
  995.         strcpy(new_node->numer_domu,numer_domu);
  996.         strcpy(new_node->kod_pocztowy,kod_pocztowy);
  997.         strcpy(new_node->mail,mail);
  998.         new_node->telefon = telefon;
  999.         new_node->waga = waga;
  1000.         new_node->wzrost = wzrost;
  1001.         strcpy(new_node->oddzial_nfz,oddzial_nfz);
  1002.  
  1003.         new_node->prev = new_node->next = NULL;
  1004.         if (front->ID>= ID)
  1005.             return insert_front_pacjenci(front, new_node);
  1006.         else
  1007.         {
  1008.             struct pacjenci *node = find_spot_pacjenci(front, ID);
  1009.             if (NULL != node->next)
  1010.                 insert_after_pacjenci(node, new_node);
  1011.             else
  1012.                 insert_back_pacjenci(node, new_node);
  1013.         }
  1014.     }
  1015.     return front;
  1016. }
  1017.  
  1018. ////////////////////////////USUWANIE PACJENTOW////////////////////////////
  1019.  
  1020. struct pacjenci *delete_front_pacjenci(struct pacjenci *front)
  1021. {
  1022.     struct pacjenci *next = front->next;
  1023.     if (NULL != next)
  1024.         next->prev = NULL;
  1025.     free(front);
  1026.     return next;
  1027. }
  1028.  
  1029. void delete_within_pacjenci(struct pacjenci *node)
  1030. {
  1031.     node->next->prev = node->prev;
  1032.     node->prev->next = node->next;
  1033.     free(node);
  1034. }
  1035.  
  1036. void delete_back_pacjenci(struct pacjenci *back)
  1037. {
  1038.     back->prev->next = NULL;
  1039.     free(back);
  1040. }
  1041.  
  1042. struct pacjenci *znajdz_pacjenci(struct pacjenci *front, int ID)
  1043. {
  1044.     while ((NULL != front) && (front->ID != ID))
  1045.         front = front->next;
  1046.     return front;
  1047. }
  1048.  
  1049. void front_back_pacjenci(struct pacjenci **front) {
  1050.     for (; NULL != (*front)->prev; *front = (*front)->prev)
  1051.     {
  1052.     }
  1053. }
  1054.  
  1055. struct pacjenci *delete_node_pacjenci(struct pacjenci **front, int ID)
  1056. {
  1057.  
  1058.     if ((*front)->ID == ID && (*front)->next == NULL && (*front)->prev == NULL)
  1059.     {
  1060.         free(*front);
  1061.         *front = NULL;
  1062.         return *front;
  1063.     }
  1064.  
  1065.     if ((*front)->ID == ID && (*front)->next != NULL && (*front)->prev == NULL)
  1066.     {
  1067.         *front = (*front)->next;
  1068.         free((*front)->prev);
  1069.         (*front)->prev = NULL;
  1070.         return *front;
  1071.     }
  1072.  
  1073.     (*front) = znajdz_pacjenci(*front, ID);
  1074.     struct pacjenci *node = *front;
  1075.  
  1076.     if ((*front)->ID == ID && (*front)->next != NULL && (*front)->prev != NULL)
  1077.     {
  1078.         (*front)->next->prev = (*front)->prev;
  1079.         (*front)->prev->next = (*front)->next;
  1080.         front_back_pacjenci(&(*front));
  1081.         free(node);
  1082.         return *front;
  1083.     }
  1084.  
  1085.     if ((*front)->ID == ID && (*front)->next == NULL && (*front)->prev != NULL)
  1086.     {
  1087.         (*front)->prev->next = NULL;
  1088.         front_back_pacjenci(&(*front));
  1089.         free(node);
  1090.         return *front;
  1091.     }
  1092.     return NULL;
  1093. }
  1094.  
  1095. ////////////////////////////WYSWIETLANIE PACJENTOW////////////////////////////
  1096.  
  1097. void print_pacjenci(struct pacjenci *list_pointer)
  1098. {
  1099.     while(list_pointer)
  1100.     {
  1101.         printf("ID: %d \n", list_pointer->ID);
  1102.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1103.         printf("Imie: %s \n", list_pointer->imie);
  1104.         printf("Pesel: %s \n", list_pointer->pesel);
  1105.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1106.         printf("Miasto: %s \n", list_pointer->miasto);
  1107.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1108.         printf("Ulica: %s \n", list_pointer->ulica);
  1109.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1110.         printf("Mail: %s \n", list_pointer->mail);
  1111.         printf("Telefon: %d \n", list_pointer->telefon);
  1112.         printf("Waga: %d \n", list_pointer->waga);
  1113.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1114.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1115.         puts("");
  1116.  
  1117.         list_pointer=list_pointer->next;
  1118.     }
  1119. }
  1120.  
  1121. ////////////////////////////EDYTOWANIE PACJENTOW////////////////////////////
  1122.  
  1123.  
  1124. void edit_pacjenci(struct pacjenci *list_pointer,int ID, char imie[],char nazwisko[],char pesel[],char data_urodzenia[],char miasto[],char ulica[],char numer_domu[],char kod_pocztowy[],
  1125.                    char mail[],int telefon,int waga, int wzrost, char oddzial_nfz[])
  1126. {
  1127.     for (; NULL != list_pointer; list_pointer = list_pointer->next)
  1128.     {
  1129.         if(list_pointer->ID == ID)
  1130.         {
  1131.             strcpy(list_pointer->nazwisko,nazwisko);
  1132.             strcpy(list_pointer->imie,imie);
  1133.             strcpy(list_pointer->pesel,pesel);
  1134.             strcpy(list_pointer->data_urodzenia,data_urodzenia);
  1135.             strcpy(list_pointer->miasto,miasto);
  1136.             strcpy(list_pointer->ulica,ulica);
  1137.             strcpy(list_pointer->numer_domu,numer_domu);
  1138.             strcpy(list_pointer->kod_pocztowy,kod_pocztowy);
  1139.             strcpy(list_pointer->mail,mail);
  1140.             list_pointer->telefon=telefon;
  1141.             list_pointer->waga=waga;
  1142.             list_pointer->wzrost=wzrost;
  1143.             strcpy(list_pointer->oddzial_nfz,oddzial_nfz);
  1144.             break;
  1145.         }
  1146.     }
  1147. }
  1148.  
  1149.  
  1150.  
  1151. ////////////////////////////ZAPIS DANYCH PACJENTOW////////////////////////////
  1152.  
  1153.  
  1154. void save_to_file_pacjenci(struct pacjenci *front)
  1155. {
  1156.     FILE *plik;
  1157.     plik = fopen("Pacjenci.txt","w+");
  1158.  
  1159.     for (; NULL != front; front = front->next)
  1160.     {
  1161.         fprintf(plik,"ID:%d\n",front->ID);
  1162.         fprintf(plik,"Nazwisko:%s\n",front->nazwisko);
  1163.         fprintf(plik,"Imie:%s\n",front->imie);
  1164.         fprintf(plik,"Pesel:%s\n",front->pesel);
  1165.         fprintf(plik,"Data urodzenia:%s\n",front->data_urodzenia);
  1166.         fprintf(plik,"Ulica:%s\n",front->ulica);
  1167.         fprintf(plik,"Numer domu:%s\n",front->numer_domu);
  1168.         fprintf(plik,"Miasto:%s\n",front->miasto);
  1169.         fprintf(plik,"Kod pocztowy:%s\n",front->kod_pocztowy);
  1170.         fprintf(plik,"E-Mail:%s\n",front->mail);
  1171.         fprintf(plik,"Telefon:%d\n",front->telefon);
  1172.         fprintf(plik,"Waga:%d\n",front->waga);
  1173.         fprintf(plik,"Wzrost:%d\n",front->wzrost);
  1174.         fprintf(plik,"Oddzial NFZ:%s\n\n",front->oddzial_nfz);
  1175.  
  1176.     }
  1177.     printf("\n");
  1178.     fclose(plik);
  1179. }
  1180.  
  1181.  
  1182.  
  1183. struct pacjenci *load_from_file_pacjenci(struct pacjenci *front)
  1184. {
  1185.     FILE *plik;
  1186.     plik = fopen("Pacjenci.txt","r");
  1187.     if(plik == NULL)
  1188.         return front;
  1189.     char a;
  1190.     char ID[20];
  1191.     char nazwisko[20];
  1192.     char imie[20];
  1193.     char pesel[20];
  1194.     char data_urodzenia[20];
  1195.     char ulica[20];
  1196.     char numer_domu[20];
  1197.     char miasto[20];
  1198.     char kod_pocztowy[20];
  1199.     char mail[40];
  1200.     char telefon[20];
  1201.     char waga[20];
  1202.     char wzrost[20];
  1203.     char oddzial_nfz[90];
  1204.  
  1205.     memset(ID,0,sizeof(ID));
  1206.     memset(nazwisko,0,sizeof(ID));
  1207.     memset(imie,0,sizeof(ID));
  1208.     memset(pesel,0,sizeof(ID));
  1209.     memset(data_urodzenia,0,sizeof(ID));
  1210.     memset(ulica,0,sizeof(ID));
  1211.     memset(numer_domu,0,sizeof(ID));
  1212.     memset(miasto,0,sizeof(ID));
  1213.     memset(kod_pocztowy,0,sizeof(ID));
  1214.     memset(mail,0,sizeof(ID));
  1215.     memset(telefon,0,sizeof(ID));
  1216.     memset(waga,0,sizeof(ID));
  1217.     memset(wzrost,0,sizeof(ID));
  1218.     memset(oddzial_nfz,0,sizeof(ID));
  1219.     int line=0;
  1220.  
  1221.     while(!feof(plik))
  1222.     {
  1223.         fscanf(plik,"%c",&a);
  1224.         if(line==0&&a==':')
  1225.             line=1;
  1226.         if(line)
  1227.         {
  1228.             if(ID[0] == 0)
  1229.             {
  1230.                 fgets(ID,20,plik);
  1231.             }
  1232.             else if(nazwisko[0] == 0)
  1233.             {
  1234.                 fgets(nazwisko,20,plik);
  1235.                 int len = strlen(nazwisko);
  1236.                 nazwisko[len-1] = 0;
  1237.             }
  1238.             else if(imie[0] == 0)
  1239.             {
  1240.                 fgets(imie,20,plik);
  1241.                 int len = strlen(imie);
  1242.                 imie[len-1] = 0;
  1243.             }
  1244.  
  1245.             else if(pesel[0] == 0)
  1246.             {
  1247.                 fgets(pesel,20,plik);
  1248.                 int len = strlen(pesel);
  1249.                 pesel[len-1] = 0;
  1250.             }
  1251.             else if(data_urodzenia[0] == 0)
  1252.             {
  1253.                 fgets(data_urodzenia,20,plik);
  1254.                 int len = strlen(data_urodzenia);
  1255.                 data_urodzenia[len-1] = 0;
  1256.             }
  1257.  
  1258.             else if(ulica[0] == 0)
  1259.             {
  1260.                 fgets(ulica,20,plik);
  1261.                 int len = strlen(ulica);
  1262.                 ulica[len-1] = 0;
  1263.             }
  1264.             else if(numer_domu[0] == 0)
  1265.             {
  1266.                 fgets(numer_domu,20,plik);
  1267.                 int len = strlen(numer_domu);
  1268.                 numer_domu[len-1] = 0;
  1269.             }
  1270.             else if(miasto[0] == 0)
  1271.             {
  1272.                 fgets(miasto,20,plik);
  1273.                 int len = strlen(miasto);
  1274.                 miasto[len-1] = 0;
  1275.             }
  1276.             else if(kod_pocztowy[0] == 0)
  1277.             {
  1278.                 fgets(kod_pocztowy,20,plik);
  1279.                 int len = strlen(kod_pocztowy);
  1280.                 kod_pocztowy[len-1] = 0;
  1281.             }
  1282.             else if(mail[0] == 0)
  1283.             {
  1284.                 fgets(mail,40,plik);
  1285.                 int len = strlen(mail);
  1286.                 mail[len-1] = 0;
  1287.             }
  1288.             else if(telefon[0] == 0)
  1289.             {
  1290.                 fgets(telefon,20,plik);
  1291.             }
  1292.             else if(waga[0] == 0)
  1293.             {
  1294.                 fgets(waga,20,plik);
  1295.             }
  1296.             else if(wzrost[0] == 0)
  1297.             {
  1298.                 fgets(wzrost,20,plik);
  1299.             }
  1300.             else if(oddzial_nfz[0] == 0)
  1301.             {
  1302.                 fgets(oddzial_nfz,90,plik);
  1303.                 int len = strlen(oddzial_nfz);
  1304.                 oddzial_nfz[len-1] = 0;
  1305.  
  1306.                 if(front == NULL)
  1307.                     front = create_list_pacjenci(atoi(ID),imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,atoi(telefon),atoi(waga),atoi(wzrost),oddzial_nfz);
  1308.                 else
  1309.                     front = insert_node_pacjenci(front,atoi(ID),imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,atoi(telefon),atoi(waga),atoi(wzrost),oddzial_nfz);
  1310.  
  1311.                 memset(ID,0,sizeof(ID));
  1312.                 memset(nazwisko,0,sizeof(nazwisko));
  1313.                 memset(imie,0,sizeof(imie));
  1314.                 memset(pesel,0,sizeof(pesel));
  1315.                 memset(data_urodzenia,0,sizeof(data_urodzenia));
  1316.                 memset(ulica,0,sizeof(ulica));
  1317.                 memset(numer_domu,0,sizeof(numer_domu));
  1318.                 memset(miasto,0,sizeof(miasto));
  1319.                 memset(kod_pocztowy,0,sizeof(kod_pocztowy));
  1320.                 memset(mail,0,sizeof(mail));
  1321.                 memset(telefon,0,sizeof(telefon));
  1322.                 memset(waga,0,sizeof(waga));
  1323.                 memset(wzrost,0,sizeof(wzrost));
  1324.                 memset(oddzial_nfz,0,sizeof(oddzial_nfz));
  1325.             }
  1326.         }
  1327.         if(a==':'||a=='\n')
  1328.             line=0;
  1329.     }
  1330.     fclose(plik);
  1331.     return front;
  1332. }
  1333.  
  1334. ////////////////////////////FUNCKE SPRAWDZAJACE-PACJENCI////////////////////////////
  1335.  
  1336. bool sprawdz_numer_ID_pacjenci(struct pacjenci *front, int numer)//ISTNIEJE W GLOWNYM PROGRAMIE
  1337. {
  1338.     for (; NULL != front; front = front->next)
  1339.     {
  1340.         if (front->ID == numer) {
  1341.             return true;
  1342.         }
  1343.     }
  1344.     return false;
  1345. }
  1346.  
  1347. bool sprawdz_lancuch_znakow(char lancuch[])
  1348. {
  1349.     int i;
  1350.     for(i=0;i<strlen(lancuch);i++)
  1351.         {
  1352.             if(!((lancuch[i]>=65 && lancuch[i]<=90) || (lancuch[i]>=97 && lancuch[i]<=122)))
  1353.                 return false;
  1354.             if(lancuch[0]>=97 && lancuch[0]<=122)//32
  1355.                 lancuch[0]=lancuch[0]-32;//zamiana pierwszej malej litery na duza
  1356.         }
  1357.     return true;
  1358. }
  1359.  
  1360.  
  1361.  
  1362. ////////////////////////////FUNKCJE POMOCNICZE////////////////////////////
  1363.  
  1364.  
  1365. bool wybor_oddzialu(char oddzial_nfz[])
  1366. {
  1367.     int wybor;
  1368.     puts("1) Dolnoslaski Oddzial Wojewodzki NFZ");
  1369.     puts("2) Kujawsko-Pomorski Oddzial Wojewodzki NFZ");
  1370.     puts("3) Lubelski Oddzial Wojewodzki NFZ");
  1371.     puts("4) Lubuski Oddzial Wojewodzki NFZ");
  1372.     puts("5) Lodzki Oddzial Wojewodzki NFZ");
  1373.     puts("6) Malopolski Oddzial Wojewodzki NFZ");
  1374.     puts("7) Mazowiecki Oddzial Wojewodzki NFZ");
  1375.     puts("8) Opolski Oddzial Wojewodzki NFZ");
  1376.     puts("9) Podkarpacki Oddzial Wojewodzki NFZ");
  1377.     puts("10) Podlaski Oddzial Wojewodzki NFZ");
  1378.     puts("11) Pomorski Oddzial Wojewodzki NFZ");
  1379.     puts("12) Slaski Oddzial Wojewodzki NFZ");
  1380.     puts("13) Swietokrzyski Oddzial Wojewodzki NFZ");
  1381.     puts("14) Warminsko-Mazurski Oddzial Wojewodzki NFZ");
  1382.     puts("15) Wielkopolski Oddzial Wojewodzki NFZ");
  1383.     puts("16) Zachodniopomorski Oddzial Wojewodzki NFZ");
  1384.  
  1385.     while(scanf("%d", &wybor) != 1) //dopóki nie uda się wczytać
  1386.         {
  1387.         //ew. komunikat błędu
  1388.         int c;
  1389.         while((c = getchar()) != '\n' && c != EOF); //pętla wyciągająca znaki z bufora
  1390.         }
  1391.  
  1392.     switch(wybor)
  1393.     {
  1394.     case 1:
  1395.         sprintf(oddzial_nfz,"Dolnoslaski Oddzial Wojewodzki NFZ");
  1396.         break;
  1397.     case 2:
  1398.         sprintf(oddzial_nfz,"Kujawsko-Pomorski Oddzial Wojewodzki NFZ");
  1399.         break;
  1400.     case 3:
  1401.         sprintf(oddzial_nfz,"Lubelski Oddzial Wojewodzki NFZ");
  1402.         break;
  1403.     case 4:
  1404.         sprintf(oddzial_nfz,"Lubuski Oddzial Wojewodzki NFZ");
  1405.         break;
  1406.     case 5:
  1407.         sprintf(oddzial_nfz,"Lodzki Oddzial Wojewodzki NFZ");
  1408.         break;
  1409.     case 6:
  1410.         sprintf(oddzial_nfz,"Malopolski Oddzial Wojewodzki NFZ");
  1411.         break;
  1412.     case 7:
  1413.         sprintf(oddzial_nfz,"Mazowiecki Oddzial Wojewodzki NFZ");
  1414.         break;
  1415.     case 8:
  1416.         sprintf(oddzial_nfz,"Opolski Oddzial Wojewodzki NFZ");
  1417.         break;
  1418.     case 9:
  1419.         sprintf(oddzial_nfz,"Podkarpacki Oddzial Wojewodzki NFZ");
  1420.         break;
  1421.     case 10:
  1422.         sprintf(oddzial_nfz,"Podlaski Oddzial Wojewodzki NFZ");
  1423.         break;
  1424.     case 11:
  1425.         sprintf(oddzial_nfz,"Pomorski Oddzial Wojewodzki NFZ");
  1426.         break;
  1427.     case 12:
  1428.         sprintf(oddzial_nfz,"Slaski Oddzial Wojewodzki NFZ");
  1429.         break;
  1430.     case 13:
  1431.         sprintf(oddzial_nfz,"Swietokrzyski Oddzial Wojewodzki NFZ");
  1432.         break;
  1433.     case 14:
  1434.         sprintf(oddzial_nfz,"Warminsko-Mazurski Oddzial Wojewodzki NFZ");
  1435.         break;
  1436.     case 15:
  1437.         sprintf(oddzial_nfz,"Wielkopolski Oddzial Wojewodzki NFZ");
  1438.         break;
  1439.     case 16:
  1440.         sprintf(oddzial_nfz,"Zachodniopomorski Oddzial Wojewodzki NFZ");
  1441.         break;
  1442.     default:
  1443.         puts("Bledny wybor");
  1444.         return false;
  1445.         break;
  1446.     }
  1447.  
  1448.     return true;
  1449.  
  1450. }
  1451.  
  1452.  
  1453.  
  1454. void wprowadz_dane_pacjenci(char imie[],char nazwisko[],char pesel[],char data_urodzenia[],char miasto[],char ulica[],char numer_domu[],char kod_pocztowy[],
  1455.                             char mail[],int *telefon,int *waga, int *wzrost, char oddzial_nfz[])
  1456. {
  1457.     char bezpieczny[9];
  1458.     do
  1459.     {
  1460.     printf("Podaj nazwisko: ");
  1461.     scanf("%s", nazwisko);
  1462.     }while(!sprawdz_lancuch_znakow(nazwisko));
  1463.  
  1464.     do
  1465.     {
  1466.         printf("Podaj imie: ");
  1467.         scanf("%s", imie);
  1468.     }while(!sprawdz_lancuch_znakow(imie));
  1469.  
  1470.  
  1471.     do
  1472.     {
  1473.         printf("Podaj pesel (11cyfr): ");
  1474.         scanf("%s",pesel);
  1475.     }while(strlen(pesel)!=11);
  1476.  
  1477.     do
  1478.     {
  1479.         do
  1480.         {
  1481.             printf("Podaj date urodzenia: ");
  1482.             scanf("%s", data_urodzenia);
  1483.         }while(strlen(data_urodzenia)!=10);
  1484.  
  1485.         if(!(data_urodzenia[2]=='/' && data_urodzenia[5]=='/' && data_urodzenia[2]=='/'))
  1486.         {
  1487.             puts("Zly format daty, poprawny to DD/MM/RRRR");
  1488.  
  1489.         }
  1490.  
  1491.     }while(!(data_urodzenia[2]=='/' && data_urodzenia[5]=='/' && data_urodzenia[2]=='/'));
  1492.  
  1493.  
  1494.     do
  1495.     {
  1496.         printf("Podaj ulice zamieszkania: ");
  1497.         scanf("%s", ulica);
  1498.     }while(!sprawdz_lancuch_znakow(ulica));
  1499.  
  1500.  
  1501.     printf("Podaj numer domu: ");//ZABEZPIECZYC
  1502.     scanf("%s", numer_domu);
  1503.  
  1504.     do
  1505.     {
  1506.         printf("Podaj miasto zamieszkania: ");
  1507.         scanf("%s", miasto);
  1508.     }while(!sprawdz_lancuch_znakow(miasto));
  1509.  
  1510.     do
  1511.     {
  1512.         do
  1513.         {
  1514.         printf("Podaj kod pocztowy: ");
  1515.         scanf("%s", kod_pocztowy);
  1516.         }while(strlen(kod_pocztowy)!=6);
  1517.  
  1518.         if(kod_pocztowy[2] != '-')
  1519.             puts("Zly format kodu pocztowego, wlasciwy to XX-XXX");
  1520.  
  1521.     }while(kod_pocztowy[2] != '-');
  1522.  
  1523.     powrot_mail:
  1524.     printf("Podaj adres E-MAIL: ");
  1525.     scanf("%s",mail);
  1526.     int i;
  1527.     int checkmail=0;
  1528.     for(i=0;i<strlen(mail);i++)
  1529.     {
  1530.         if(mail[i]=='@')
  1531.         {
  1532.             checkmail = 1;
  1533.             break;
  1534.         }
  1535.     }
  1536.     if(checkmail == 0)
  1537.     {
  1538.         goto powrot_mail;
  1539.     }
  1540.  
  1541.     do
  1542.     {
  1543.         printf("Podaj numer telefonu (9cyfr): ");
  1544.         scanf("%s", bezpieczny);
  1545.         if (atoi(bezpieczny) != 0)
  1546.             *telefon = atoi(bezpieczny);
  1547.         else
  1548.             continue;
  1549.     } while ((*telefon < 100000000) || (*telefon > 999999999));
  1550.  
  1551.      do
  1552.         {
  1553.             printf("Podaj wage w kilogramach: ");
  1554.             scanf("%s", bezpieczny);
  1555.         }while(atoi(bezpieczny) == 0);
  1556.     *waga=atoi(bezpieczny);
  1557.  
  1558.  
  1559.     do
  1560.         {
  1561.             printf("Podaj wzrost w centymetrach: ");
  1562.             scanf("%s", bezpieczny);
  1563.         }while(atoi(bezpieczny) == 0);
  1564.     *wzrost=atoi(bezpieczny);
  1565.  
  1566.     printf("Wybierz oddzial NFZ pacjetna: \n\n");
  1567.     while(!(wybor_oddzialu(oddzial_nfz)));
  1568. }
  1569.  
  1570.  
  1571.  
  1572.  
  1573. ////////////////////////////FUNCKE WYSZUKUJACE PACJENTOW////////////////////////////
  1574.  
  1575. void print_id_pacjenci(struct pacjenci *list_pointer, int ID)
  1576. {
  1577.  
  1578.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1579.     {
  1580.         if (list_pointer->ID == ID)
  1581.         {
  1582.         printf("ID: %d \n", list_pointer->ID);
  1583.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1584.         printf("Imie: %s \n", list_pointer->imie);
  1585.         printf("Pesel: %s \n", list_pointer->pesel);
  1586.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1587.         printf("Miasto: %s \n", list_pointer->miasto);
  1588.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1589.         printf("Ulica: %s \n", list_pointer->ulica);
  1590.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1591.         printf("Mail: %s \n", list_pointer->mail);
  1592.         printf("Telefon: %d \n", list_pointer->telefon);
  1593.         printf("Waga: %d \n", list_pointer->waga);
  1594.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1595.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1596.         puts("");
  1597.         }
  1598.     }
  1599. }
  1600.  
  1601. void print_imie_nazwisko_pacjenci(struct pacjenci *list_pointer, char imie[], char nazwisko[])
  1602. {
  1603.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1604.     {
  1605.         if ((!(strcasecmp(list_pointer->imie,imie)))&& (!(strcasecmp(list_pointer->nazwisko,nazwisko))))
  1606.         {
  1607.         printf("ID: %d \n", list_pointer->ID);
  1608.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1609.         printf("Imie: %s \n", list_pointer->imie);
  1610.         printf("Pesel: %s \n", list_pointer->pesel);
  1611.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1612.         printf("Miasto: %s \n", list_pointer->miasto);
  1613.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1614.         printf("Ulica: %s \n", list_pointer->ulica);
  1615.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1616.         printf("Mail: %s \n", list_pointer->mail);
  1617.         printf("Telefon: %d \n", list_pointer->telefon);
  1618.         printf("Waga: %d \n", list_pointer->waga);
  1619.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1620.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1621.         puts("");
  1622.         }
  1623.     }
  1624. }
  1625.  
  1626. void print_pesel_pacjenci(struct pacjenci *list_pointer, char pesel[])
  1627. {
  1628.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1629.     {
  1630.         if (!(strcasecmp(list_pointer->pesel,pesel)))
  1631.         {
  1632.         printf("ID: %d \n", list_pointer->ID);
  1633.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1634.         printf("Imie: %s \n", list_pointer->imie);
  1635.         printf("Pesel: %s \n", list_pointer->pesel);
  1636.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1637.         printf("Miasto: %s \n", list_pointer->miasto);
  1638.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1639.         printf("Ulica: %s \n", list_pointer->ulica);
  1640.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1641.         printf("Mail: %s \n", list_pointer->mail);
  1642.         printf("Telefon: %d \n", list_pointer->telefon);
  1643.         printf("Waga: %d \n", list_pointer->waga);
  1644.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1645.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1646.         puts("");
  1647.         }
  1648.     }
  1649. }
  1650.  
  1651. void print_data_urodzenia_pacjenci(struct pacjenci *list_pointer, char data_urodzenia[])
  1652. {
  1653.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1654.     {
  1655.         if (!(strcasecmp(list_pointer->data_urodzenia,data_urodzenia)))
  1656.         {
  1657.         printf("ID: %d \n", list_pointer->ID);
  1658.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1659.         printf("Imie: %s \n", list_pointer->imie);
  1660.         printf("Pesel: %s \n", list_pointer->pesel);
  1661.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1662.         printf("Miasto: %s \n", list_pointer->miasto);
  1663.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1664.         printf("Ulica: %s \n", list_pointer->ulica);
  1665.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1666.         printf("Mail: %s \n", list_pointer->mail);
  1667.         printf("Telefon: %d \n", list_pointer->telefon);
  1668.         printf("Waga: %d \n", list_pointer->waga);
  1669.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1670.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1671.         puts("");
  1672.         }
  1673.     }
  1674. }
  1675.  
  1676. void print_miejsce_zamieszkania_pacjenci(struct pacjenci *list_pointer, char miasto[], char ulica[], char numer_domu[],char kod_pocztowy[])
  1677. {
  1678.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1679.     {
  1680.         if ((!(strcasecmp(list_pointer->miasto,miasto)))&& (!(strcasecmp(list_pointer->ulica,ulica)))&& (!(strcasecmp(list_pointer->numer_domu,numer_domu)))&&(!(strcasecmp(list_pointer->kod_pocztowy,kod_pocztowy))))
  1681.         {
  1682.         printf("ID: %d \n", list_pointer->ID);
  1683.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1684.         printf("Imie: %s \n", list_pointer->imie);
  1685.         printf("Pesel: %s \n", list_pointer->pesel);
  1686.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1687.         printf("Miasto: %s \n", list_pointer->miasto);
  1688.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1689.         printf("Ulica: %s \n", list_pointer->ulica);
  1690.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1691.         printf("Mail: %s \n", list_pointer->mail);
  1692.         printf("Telefon: %d \n", list_pointer->telefon);
  1693.         printf("Waga: %d \n", list_pointer->waga);
  1694.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1695.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1696.         puts("");
  1697.         }
  1698.     }
  1699. }
  1700.  
  1701. void print_mail_pacjenci(struct pacjenci *list_pointer, char mail[])
  1702. {
  1703.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1704.     {
  1705.         if (!(strcasecmp(list_pointer->mail,mail)))
  1706.         {
  1707.         printf("ID: %d \n", list_pointer->ID);
  1708.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1709.         printf("Imie: %s \n", list_pointer->imie);
  1710.         printf("Pesel: %s \n", list_pointer->pesel);
  1711.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1712.         printf("Miasto: %s \n", list_pointer->miasto);
  1713.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1714.         printf("Ulica: %s \n", list_pointer->ulica);
  1715.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1716.         printf("Mail: %s \n", list_pointer->mail);
  1717.         printf("Telefon: %d \n", list_pointer->telefon);
  1718.         printf("Waga: %d \n", list_pointer->waga);
  1719.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1720.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1721.         puts("");
  1722.         }
  1723.     }
  1724. }
  1725.  
  1726. void print_telefon_pacjenci(struct pacjenci *list_pointer, int telefon)
  1727. {
  1728.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1729.     {
  1730.         if (list_pointer->telefon == telefon)
  1731.         {
  1732.         printf("ID: %d \n", list_pointer->ID);
  1733.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1734.         printf("Imie: %s \n", list_pointer->imie);
  1735.         printf("Pesel: %s \n", list_pointer->pesel);
  1736.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1737.         printf("Miasto: %s \n", list_pointer->miasto);
  1738.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1739.         printf("Ulica: %s \n", list_pointer->ulica);
  1740.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1741.         printf("Mail: %s \n", list_pointer->mail);
  1742.         printf("Telefon: %d \n", list_pointer->telefon);
  1743.         printf("Waga: %d \n", list_pointer->waga);
  1744.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1745.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1746.         puts("");
  1747.         }
  1748.     }
  1749. }
  1750.  
  1751. void print_waga_pacjenci(struct pacjenci *list_pointer, int waga)
  1752. {
  1753.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1754.     {
  1755.         if (list_pointer->waga == waga)
  1756.         {
  1757.         printf("ID: %d \n", list_pointer->ID);
  1758.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1759.         printf("Imie: %s \n", list_pointer->imie);
  1760.         printf("Pesel: %s \n", list_pointer->pesel);
  1761.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1762.         printf("Miasto: %s \n", list_pointer->miasto);
  1763.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1764.         printf("Ulica: %s \n", list_pointer->ulica);
  1765.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1766.         printf("Mail: %s \n", list_pointer->mail);
  1767.         printf("Telefon: %d \n", list_pointer->telefon);
  1768.         printf("Waga: %d \n", list_pointer->waga);
  1769.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1770.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1771.         puts("");
  1772.         }
  1773.     }
  1774. }
  1775.  
  1776. void print_wzrost_pacjenci(struct pacjenci *list_pointer, int wzrost)
  1777. {
  1778.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1779.     {
  1780.         if (list_pointer->wzrost == wzrost)
  1781.         {
  1782.         printf("ID: %d \n", list_pointer->ID);
  1783.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1784.         printf("Imie: %s \n", list_pointer->imie);
  1785.         printf("Pesel: %s \n", list_pointer->pesel);
  1786.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1787.         printf("Miasto: %s \n", list_pointer->miasto);
  1788.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1789.         printf("Ulica: %s \n", list_pointer->ulica);
  1790.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1791.         printf("Mail: %s \n", list_pointer->mail);
  1792.         printf("Telefon: %d \n", list_pointer->telefon);
  1793.         printf("Waga: %d \n", list_pointer->waga);
  1794.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1795.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1796.         puts("");
  1797.         }
  1798.     }
  1799. }
  1800.  
  1801. void print_oddzial_nfz_pacjenci(struct pacjenci *list_pointer, char oddzial_nfz[])
  1802. {
  1803.     for(; list_pointer != NULL; list_pointer = list_pointer->next)
  1804.     {
  1805.         if (!(strcasecmp(list_pointer->oddzial_nfz,oddzial_nfz)))
  1806.         {
  1807.         printf("ID: %d \n", list_pointer->ID);
  1808.         printf("Nazwisko: %s \n", list_pointer->nazwisko);
  1809.         printf("Imie: %s \n", list_pointer->imie);
  1810.         printf("Pesel: %s \n", list_pointer->pesel);
  1811.         printf("Data urodzenia: %s \n", list_pointer->data_urodzenia);
  1812.         printf("Miasto: %s \n", list_pointer->miasto);
  1813.         printf("Kod_pocztowy: %s \n", list_pointer->kod_pocztowy);
  1814.         printf("Ulica: %s \n", list_pointer->ulica);
  1815.         printf("Numer_domu: %s \n", list_pointer->numer_domu);
  1816.         printf("Mail: %s \n", list_pointer->mail);
  1817.         printf("Telefon: %d \n", list_pointer->telefon);
  1818.         printf("Waga: %d \n", list_pointer->waga);
  1819.         printf("Wzrost: %d \n", list_pointer->wzrost);
  1820.         printf("Oddzial_nfz: %s \n", list_pointer->oddzial_nfz);
  1821.         puts("");
  1822.         }
  1823.     }
  1824. }
  1825.  
  1826. bool wyszukiwanie_pacjenta(struct pacjenci *pacjenci_front)
  1827. {
  1828.     int ID;
  1829.     char nazwisko[20];
  1830.     char imie[20];
  1831.     char pesel[20];
  1832.     char data_urodzenia[11];
  1833.     char ulica[20];
  1834.     char numer_domu[20];
  1835.     char miasto[20];
  1836.     char kod_pocztowy[20];
  1837.     char mail[40];
  1838.     int telefon;
  1839.     int waga; //w kg
  1840.     int wzrost; //w cm
  1841.     char oddzial_nfz[100];
  1842.     char bezpieczny[10];
  1843.     int wybor;
  1844.     do
  1845.     {
  1846.         system("cls");
  1847.         puts("1.Wyszukaj po id");
  1848.         puts("2.Wyszukaj po imieniu i nazwisku");
  1849.         puts("3.Wyszukaj po nr PESEL");
  1850.         puts("4.Wyszukaj po dacie urodzenia");
  1851.         puts("5.Wyszukaj po miejscu zamieszkania");
  1852.         puts("6.Wyszukaj po adresie E-Mail");
  1853.         puts("7.Wyszukaj po numerze telefonu");
  1854.         puts("8.Wyszukaj po wadze");
  1855.         puts("9.Wyszukaj po wzroscie");
  1856.         puts("10.Wyszukaj po oddziale NFZ");
  1857.         puts("11.Poprzednie menu");
  1858.         scanf("%s", bezpieczny);
  1859.     }while (atoi(bezpieczny) == 0);
  1860.     wybor = atoi(bezpieczny);
  1861.  
  1862.  
  1863.     switch(wybor)
  1864.     {
  1865.     case 1:
  1866.         {
  1867.             cls();
  1868.             puts("1.Wyszukaj po id\n");
  1869.             do
  1870.             {
  1871.                 printf("Podaj ID pacjenta: ");
  1872.                 scanf("%s",bezpieczny);
  1873.             }while (atoi(bezpieczny) == 0);
  1874.             ID = atoi(bezpieczny);
  1875.  
  1876.             puts("");
  1877.             print_id_pacjenci(pacjenci_front,ID);
  1878.             system("PAUSE");
  1879.             return false;
  1880.         }
  1881.     case 2:
  1882.         {
  1883.             cls();
  1884.             puts("2.Wyszukaj po imieniu i nazwisku\n");
  1885.             do
  1886.             {
  1887.                 printf("Podaj nazwisko: ");
  1888.                 scanf("%s", nazwisko);
  1889.             }while(!sprawdz_lancuch_znakow(nazwisko));
  1890.             do
  1891.             {
  1892.                 printf("Podaj imie: ");
  1893.                 scanf("%s", imie);
  1894.             }while(!sprawdz_lancuch_znakow(imie));
  1895.             print_imie_nazwisko_pacjenci(pacjenci_front,imie,nazwisko);
  1896.             system("PAUSE");
  1897.             return false;
  1898.         }
  1899.     case 3:
  1900.         {
  1901.             cls();
  1902.             puts("3.Wyszukaj po nr PESEL\n");
  1903.             do
  1904.             {
  1905.                 printf("Podaj pesel (11cyfr): ");
  1906.                 scanf("%s",pesel);
  1907.             }while(strlen(pesel)!=11);
  1908.             print_pesel_pacjenci(pacjenci_front,pesel);
  1909.             system("PAUSE");
  1910.             return false;
  1911.         }
  1912.     case 4:
  1913.         {
  1914.             cls();
  1915.             puts("4.Wyszukaj po dacie urodzenia\n");
  1916.             do
  1917.             {
  1918.                 do
  1919.                 {
  1920.                     printf("Podaj date urodzenia: ");
  1921.                     scanf("%s", data_urodzenia);
  1922.                 }while(strlen(data_urodzenia)!=10);
  1923.  
  1924.                 if(!(data_urodzenia[2]=='/' && data_urodzenia[5]=='/' && data_urodzenia[2]=='/'))
  1925.                 {
  1926.                     puts("Zly format daty, poprawny to DD/MM/RRRR");
  1927.  
  1928.                 }
  1929.  
  1930.             }while(!(data_urodzenia[2]=='/' && data_urodzenia[5]=='/' && data_urodzenia[2]=='/'));
  1931.             print_data_urodzenia_pacjenci(pacjenci_front,data_urodzenia);
  1932.             system("PAUSE");
  1933.             return false;
  1934.         }
  1935.     case 5:
  1936.         {
  1937.             cls();
  1938.             puts("5.Wyszukaj po miejscu zamieszkania\n");
  1939.             do
  1940.             {
  1941.                 printf("Podaj ulice zamieszkania: ");
  1942.                 scanf("%s", ulica);
  1943.             }while(!sprawdz_lancuch_znakow(ulica));
  1944.  
  1945.  
  1946.             printf("Podaj numer domu: ");
  1947.             scanf("%s", numer_domu);
  1948.  
  1949.             do
  1950.             {
  1951.                 printf("Podaj miasto zamieszkania: ");
  1952.                 scanf("%s", miasto);
  1953.             }while(!sprawdz_lancuch_znakow(miasto));
  1954.  
  1955.             do
  1956.             {
  1957.                 do
  1958.                 {
  1959.                 printf("Podaj kod pocztowy: ");
  1960.                 scanf("%s", kod_pocztowy);
  1961.                 }while(strlen(kod_pocztowy)!=6);
  1962.  
  1963.                 if(kod_pocztowy[2] != '-')
  1964.                     puts("Zly format kodu pocztowego, wlasciwy to XX-XXX");
  1965.  
  1966.             }while(kod_pocztowy[2] != '-');
  1967.             print_miejsce_zamieszkania_pacjenci(pacjenci_front,miasto,ulica,numer_domu,kod_pocztowy);
  1968.             system("PAUSE");
  1969.             return false;
  1970.         }
  1971.  
  1972.     case 6:
  1973.         {
  1974.             cls();
  1975.             puts("6.Wyszukaj po adresie E-Mail\n");
  1976.             powrot_mail_pacjent:
  1977.             printf("Podaj adres E-MAIL: ");
  1978.             scanf("%s",mail);
  1979.             int i;
  1980.             int checkmail=0;
  1981.             for(i=0;i<strlen(mail);i++)
  1982.             {
  1983.                 if(mail[i]=='@')
  1984.                 {
  1985.                     checkmail = 1;
  1986.                     break;
  1987.                 }
  1988.             }
  1989.             if(checkmail == 0)
  1990.             {
  1991.                 goto powrot_mail_pacjent;
  1992.             }
  1993.             print_mail_pacjenci(pacjenci_front,mail);
  1994.             system("PAUSE");
  1995.             return false;
  1996.         }
  1997.  
  1998.  
  1999.     case 7:
  2000.         {
  2001.             cls();
  2002.             puts("7.Wyszukaj po numerze telefonu\n");
  2003.             do
  2004.             {
  2005.                 printf("Podaj numer telefonu (9cyfr): ");
  2006.                 scanf("%s", bezpieczny);
  2007.                 if (atoi(bezpieczny) != 0)
  2008.                     telefon = atoi(bezpieczny);
  2009.                 else
  2010.                     continue;
  2011.             } while ((telefon < 100000000) || (telefon > 999999999));
  2012.             print_telefon_pacjenci(pacjenci_front,telefon);
  2013.             system("PAUSE");
  2014.             return false;
  2015.         }
  2016.     case 8:
  2017.         {
  2018.             cls();
  2019.             puts("8.Wyszukaj po wadze\n");
  2020.             do
  2021.             {
  2022.                 printf("Podaj wage w kilogramach: ");
  2023.                 scanf("%s", bezpieczny);
  2024.             }while(atoi(bezpieczny) == 0);
  2025.             waga=atoi(bezpieczny);
  2026.             print_waga_pacjenci(pacjenci_front,waga);
  2027.             system("PAUSE");
  2028.             return false;
  2029.         }
  2030.     case 9:
  2031.         {
  2032.             cls();
  2033.             puts("9.Wyszukaj po wzroscie\n");
  2034.             do
  2035.             {
  2036.                 printf("Podaj wzrost w centymetrach: ");
  2037.                 scanf("%s", bezpieczny);
  2038.             }while(atoi(bezpieczny) == 0);
  2039.             wzrost=atoi(bezpieczny);
  2040.             print_wzrost_pacjenci(pacjenci_front,wzrost);
  2041.             system("PAUSE");
  2042.             return false;
  2043.         }
  2044.     case 10:
  2045.         {
  2046.             cls();
  2047.             puts("10.Wyszukaj po oddziale NFZ\n");
  2048.             puts("Podaj oddzial NFZ");
  2049.             while(!wybor_oddzialu(oddzial_nfz));
  2050.             print_oddzial_nfz_pacjenci(pacjenci_front,oddzial_nfz);
  2051.             system("PAUSE");
  2052.             return false;
  2053.  
  2054.         }
  2055.     case 11:
  2056.         {
  2057.             return true;
  2058.         }
  2059.     }
  2060.     return false;
  2061. }
  2062.  
  2063.  
  2064.  
  2065. ////////////////////////------------PROGRAM GLOWNY-------------------------------------------
  2066. int main()
  2067. {
  2068.     struct lekarze *lekarze_front = NULL;
  2069.     struct pacjenci *pacjenci_front = NULL;
  2070.     int wybor;
  2071.     char bezpieczny[9];
  2072.  
  2073.     int ID;
  2074.     char nazwisko[20];
  2075.     char imie[20];
  2076.     char pesel[20];
  2077.     int pwz;
  2078.     char tytul[20];
  2079.     char specjalizacja[20];
  2080.     char mail[40];
  2081.     int telefon;
  2082.  
  2083.  
  2084.     char data_urodzenia[11];// DD/MM/RR
  2085.     char ulica[20];
  2086.     char numer_domu[20];
  2087.     char miasto[20];
  2088.     char kod_pocztowy[20];
  2089.     int waga; //w kg
  2090.     int wzrost; //w cm
  2091.     char oddzial_nfz[100];
  2092.  
  2093.     lekarze_front = load_from_file_lekarze(lekarze_front);
  2094.     pacjenci_front = load_from_file_pacjenci(pacjenci_front);
  2095.  
  2096.     do
  2097.     {
  2098.  
  2099.  
  2100.         do {
  2101.             cls(); // funkcja wyczysci ekran po kazdej iteracji (estetyka)
  2102.             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),14);
  2103.             puts("WITAMY W PRZYCHODNII");
  2104.             puts("-------------------------------------------------------");
  2105.             SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15);
  2106.             puts("1)Lekarze");
  2107.             puts("2)Pacjenci");
  2108.             puts("3)Rejestracja Pacjenta");
  2109.             puts("9)Wyjscie");
  2110.             scanf("%s", bezpieczny);
  2111.         } while (atoi(bezpieczny) == 0); //bardzo cenny trick, wprowadzenie znaku nie zakonczy programu to samo zastosuje w kazdej zmiennej int
  2112.         wybor = atoi(bezpieczny);
  2113.  
  2114.             switch(wybor)
  2115.             {
  2116.             case 1:
  2117.             {
  2118.                     int back = 0;
  2119.  
  2120.                 do{
  2121.                     do {
  2122.                     system("cls");
  2123.                     puts("1)Lista lekarzy");
  2124.                     puts("2)Wyszukiwanie lekarza");
  2125.                     puts("3)Dodawanie lekarza");
  2126.                     puts("4)Edycja lekarza");
  2127.                     puts("5)Usuniecie lekarza");
  2128.                     puts("9)Powrot do menu glownego");
  2129.                     scanf("%s", bezpieczny);
  2130.                         } while (atoi(bezpieczny) == 0);
  2131.                 wybor = atoi(bezpieczny);
  2132.  
  2133.                 switch(wybor)
  2134.                 {
  2135.                 case 1:
  2136.                     {
  2137.  
  2138.                         break;
  2139.                     }
  2140.  
  2141.                 case 2:
  2142.                     {
  2143.  
  2144.                     if (lekarze_front == NULL)
  2145.             {
  2146.                 puts("Lista lekarzy jest pusta!!!");
  2147.                 system("pause");
  2148.                 break;
  2149.             }
  2150.  
  2151.                 while(!wyszukiwanie_lekarza(lekarze_front));
  2152.                 break;
  2153.                     }
  2154.  
  2155.  
  2156.                 case 3:
  2157.                     {
  2158.                         cls();
  2159.                         puts("3)Dodawanie lekarza\n");
  2160.  
  2161.                         do {
  2162.                         printf("Podaj numer ID lekarza: ");
  2163.                         scanf("%s", bezpieczny);
  2164.                     } while(atoi(bezpieczny) == 0);
  2165.                     ID = atoi(bezpieczny);
  2166.                     if (!(sprawdz_numer_ID(lekarze_front,ID))) {
  2167.                         puts("Istnieje lakarz o takim ID");
  2168.                         system("PAUSE");
  2169.                         break;
  2170.                     }
  2171.  
  2172.                     wprowadz_dane_lekarze(nazwisko,imie,pesel,&pwz,tytul,specjalizacja,mail,&telefon);
  2173.  
  2174.                     if(lekarze_front == NULL)
  2175.                         lekarze_front = create_list_lekarze(ID, nazwisko,imie,pesel,pwz,tytul,specjalizacja,mail,telefon);
  2176.                     else
  2177.                         lekarze_front = insert_node_lekarze(lekarze_front,ID, nazwisko,imie,pesel,pwz,tytul,specjalizacja,mail,telefon);
  2178.                     save_to_file_lekarze(lekarze_front);
  2179.                     puts("Dodano lekarza");
  2180.                     system("PAUSE");
  2181.                     break;
  2182.                     }
  2183.  
  2184.                 case 4:
  2185.                     {
  2186.                     // przy edycji warto wyswietlic wszystkich klientow zeby uzytkownik wiedzial kogo chce edytowac
  2187.                     cls();
  2188.                     puts("4)Edycja lekarza\n");
  2189.                     if (lekarze_front == NULL) {
  2190.                         puts("Lista jest pusta!!!");
  2191.                         system("PAUSE");
  2192.                         break;
  2193.                     }
  2194.  
  2195.                     print_lekarze(lekarze_front);
  2196.  
  2197.                     do {
  2198.                         printf("-------------------------------\nPodaj numer ID lekarza do edycji: ");
  2199.                         scanf("%s", bezpieczny);
  2200.                     } while(atoi(bezpieczny) == 0);
  2201.                     ID = atoi(bezpieczny);
  2202.                     if (sprawdz_numer_ID(lekarze_front,ID)) {
  2203.                         puts("Brak lekarza o takim ID");
  2204.                         system("PAUSE");
  2205.                         break;
  2206.                     }
  2207.                     ///////////////////////////
  2208.                     cls();
  2209.                     puts("EDYCJA LEKARZA\n");
  2210.  
  2211.                     wprowadz_dane_lekarze(nazwisko,imie,pesel,&pwz,tytul,specjalizacja,mail,&telefon);
  2212.  
  2213.                     edit_lekarz(lekarze_front,ID,nazwisko,imie,pesel,pwz,tytul,specjalizacja,mail,telefon);
  2214.                     save_to_file_lekarze(lekarze_front);
  2215.                     puts("Edytowano lekarza");
  2216.                     system("PAUSE");
  2217.  
  2218.  
  2219.                         break;
  2220.                     }
  2221.  
  2222.                 case 5:
  2223.                     {
  2224.                     cls();
  2225.                     puts("5)Usuniecie lekarza\n");
  2226.                     if (lekarze_front == NULL) {
  2227.                         puts("Lista jest pusta");
  2228.                         system("PAUSE");
  2229.                         break;
  2230.                     }
  2231.                     print_lekarze(lekarze_front);
  2232.                     do {
  2233.                         printf("-------------------------------\nPodaj numer ID lekarza do usuniecia: ");
  2234.                         scanf("%s",bezpieczny);
  2235.                     } while (atoi(bezpieczny) == 0);
  2236.                     ID = atoi(bezpieczny);
  2237.                     if (sprawdz_numer_ID(lekarze_front,ID)) {
  2238.                         puts("Brak lekarza o takim ID");
  2239.                         system("PAUSE");
  2240.                         break;
  2241.                     }
  2242.                     delete_node_lekarze(&lekarze_front,ID);
  2243.                     save_to_file_lekarze(lekarze_front);
  2244.                     puts("Usunieto lekarza");
  2245.                     system("PAUSE");
  2246.                     break;
  2247.  
  2248.  
  2249.                     }
  2250.  
  2251.                 case 9:
  2252.                     {
  2253.                         back = 1;
  2254.                         break;
  2255.  
  2256.                     }
  2257.                     }
  2258.  
  2259.                 } while(back==0);
  2260.                 break;
  2261.             }
  2262.         case 2://PACJENCI
  2263.             {
  2264.                 int back_p = 0;
  2265.                 do
  2266.                 {
  2267.                     do
  2268.                     {
  2269.                         system("cls");
  2270.                         puts("1)Lista pacjentow");
  2271.                         puts("2)Wyszukiwanie pacjenta");
  2272.                         puts("3)Dodawanie pacjenta");
  2273.                         puts("4)Edycja pacjenta");
  2274.                         puts("5)Usuniecie pacjenta");
  2275.                         puts("9)Powrot do menu glownego");
  2276.                         scanf("%s", bezpieczny);
  2277.                     }while (atoi(bezpieczny) == 0);
  2278.                     wybor = atoi(bezpieczny);
  2279.  
  2280.                     switch(wybor)
  2281.                     {
  2282.                     case 1:
  2283.                         {
  2284.                             break;
  2285.                         }
  2286.                     case 2://WYSZUKIWANIE PACJENTA
  2287.                         {
  2288.                             puts("2)Wyszukiwanie pacjenta\n");
  2289.                             if(pacjenci_front == NULL)
  2290.                             {
  2291.                                 puts("Lista pacjentow jest pusta!!!");
  2292.                                 system("pause");
  2293.                                 break;
  2294.                             }
  2295.  
  2296.                             while(!wyszukiwanie_pacjenta(pacjenci_front));
  2297.                             break;
  2298.                         }
  2299.                     case 3://DODAWANIE PACJENTA
  2300.                         {
  2301.                             cls();
  2302.                             puts("3)Dodawanie pacjenta\n");
  2303.                             do
  2304.                             {
  2305.                                 do
  2306.                                 {
  2307.                                     printf("Podaj numer ID pacjenta: ");
  2308.                                     scanf("%s", bezpieczny);
  2309.                                 }while(atoi(bezpieczny) == 0);
  2310.  
  2311.                                 ID = atoi(bezpieczny);
  2312.                                 if(sprawdz_numer_ID_pacjenci(pacjenci_front,ID))
  2313.                                 {
  2314.                                     puts("Istnieje pacjent o takim ID");
  2315.                                 }
  2316.                             }while(sprawdz_numer_ID_pacjenci(pacjenci_front,ID));
  2317.                             wprowadz_dane_pacjenci(imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,&telefon,&waga,&wzrost,oddzial_nfz);
  2318.                             if(pacjenci_front)
  2319.                             {
  2320.                                 pacjenci_front=insert_node_pacjenci(pacjenci_front,ID,imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,telefon,waga,wzrost,oddzial_nfz);
  2321.                             }else
  2322.                             {
  2323.                                 pacjenci_front=create_list_pacjenci(ID,imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,telefon,waga,wzrost,oddzial_nfz);
  2324.                             }
  2325.                             save_to_file_pacjenci(pacjenci_front);
  2326.                             puts("Dodano pacjenta");
  2327.                             system("PAUSE");
  2328.                             break;
  2329.                         }
  2330.                     case 4://EDYCJA PACJENTA
  2331.                         {
  2332.                             cls();
  2333.                             puts("4)Edycja pacjenta\n");
  2334.                             if (pacjenci_front == NULL) {
  2335.                                 puts("Lista jest pusta!!!");
  2336.                                 system("PAUSE");
  2337.                                 break;
  2338.                             }
  2339.                             int back_p_e=0;
  2340.                             do
  2341.                             {
  2342.                                 do
  2343.                                 {
  2344.                                     cls();
  2345.                                     puts("4)Edycja pacjenta\n");
  2346.                                     puts("1)Wyszukaj numer ID pacjenta, ktorego chcesz edytowac");
  2347.                                     puts("2)Wyswietl cala liste pacjentow");
  2348.                                     puts("3)Wprowadz numer ID pacjenta");
  2349.                                     puts("9)Poprzednie menu");
  2350.                                     scanf("%s", bezpieczny);
  2351.                                 }while(atoi(bezpieczny) == 0);
  2352.                                 wybor = atoi(bezpieczny);
  2353.  
  2354.                                 switch(wybor)
  2355.                                 {
  2356.                                 case 1:
  2357.                                     {
  2358.                                         while(!wyszukiwanie_pacjenta(pacjenci_front));
  2359.                                         break;
  2360.                                     }
  2361.                                 case 2:
  2362.                                     {
  2363.                                         cls();
  2364.                                         print_pacjenci(pacjenci_front);
  2365.                                         system("PAUSE");
  2366.                                         break;
  2367.                                     }
  2368.                                 case 3:
  2369.                                     {
  2370.                                         do
  2371.                                         {
  2372.                                             cls();
  2373.                                             back_p_e=1;
  2374.                                             printf("-------------------------------\nPodaj numer ID pacjenta do edycji: ");
  2375.                                             scanf("%s", bezpieczny);
  2376.                                         }while(atoi(bezpieczny) == 0);
  2377.                                         ID = atoi(bezpieczny);
  2378.                                         if (!sprawdz_numer_ID_pacjenci(pacjenci_front,ID)) {
  2379.                                             puts("Brak pacjenta o takim ID");
  2380.                                             system("PAUSE");
  2381.                                             break;
  2382.                                         }
  2383.                                         cls();
  2384.                                         puts("EDYCJA PACJENTA\n");
  2385.                                         wprowadz_dane_pacjenci(imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,&telefon,&waga,&wzrost,oddzial_nfz);
  2386.                                         edit_pacjenci(pacjenci_front,ID,imie,nazwisko,pesel,data_urodzenia,miasto,ulica,numer_domu,kod_pocztowy,mail,telefon,waga,wzrost,oddzial_nfz);
  2387.                                         puts("Edytowano pacjenta");
  2388.                                         save_to_file_pacjenci(pacjenci_front);
  2389.                                         system("PAUSE");
  2390.                                         break;
  2391.                                     }
  2392.                                 case 9:
  2393.                                     {
  2394.                                        back_p_e=1;
  2395.                                        break;
  2396.                                     }
  2397.                                 }
  2398.  
  2399.                             }while(back_p_e==0);
  2400.  
  2401.  
  2402.                             break;
  2403.                         }
  2404.                     case 5://USUNIECIE PACJENTA
  2405.                         {
  2406.                             cls();
  2407.                             puts("5)Usuniecie pacjenta\n");
  2408.                             if (pacjenci_front == NULL) {
  2409.                                 puts("Lista jest pusta!!!");
  2410.                                 system("PAUSE");
  2411.                                 break;
  2412.                             }
  2413.  
  2414.                             int back_p_u=0;
  2415.                             do
  2416.                             {
  2417.  
  2418.  
  2419.                                 do
  2420.                                 {
  2421.                                     cls();
  2422.                                     puts("5)Usuniecie pacjenta\n");
  2423.                                     puts("1)Wyszukaj numer ID pacjenta, ktorego chcesz usunac");
  2424.                                     puts("2)Wyswietl cala liste pacjentow");
  2425.                                     puts("3)Wprowadz numer ID pacjenta do usuniecia");
  2426.                                     puts("9)Poprzednie menu");
  2427.                                     scanf("%s", bezpieczny);
  2428.                                 }while(atoi(bezpieczny) == 0);
  2429.                                 wybor = atoi(bezpieczny);
  2430.  
  2431.                                 switch(wybor)
  2432.                                 {
  2433.                                 case 1:
  2434.                                     {
  2435.                                         while(!wyszukiwanie_pacjenta(pacjenci_front));
  2436.                                         break;
  2437.                                     }
  2438.                                 case 2:
  2439.                                     {
  2440.                                         cls();
  2441.                                         print_pacjenci(pacjenci_front);
  2442.                                         system("PAUSE");
  2443.                                         break;
  2444.                                     }
  2445.                                 case 3:
  2446.                                     {
  2447.                                         do
  2448.                                         {
  2449.                                             back_p_u=1;
  2450.  
  2451.  
  2452.                                             printf("-------------------------------\nPodaj numer ID pacjenta do usuniecia: ");
  2453.                                             scanf("%s", bezpieczny);
  2454.                                         }while(atoi(bezpieczny) == 0);
  2455.                                         ID = atoi(bezpieczny);
  2456.                                         if (!sprawdz_numer_ID_pacjenci(pacjenci_front,ID)) {
  2457.                                             puts("Brak pacjenta o takim ID");
  2458.                                             system("PAUSE");
  2459.                                             break;
  2460.                                         }
  2461.                                         delete_node_pacjenci(&pacjenci_front,ID);
  2462.                                         puts("Usunieto pacjenta");
  2463.                                         save_to_file_pacjenci(pacjenci_front);
  2464.                                         system("PAUSE");
  2465.  
  2466.  
  2467.                                         break;
  2468.                                     }
  2469.  
  2470.                                 case 9:
  2471.                                     {
  2472.  
  2473.                                        back_p_u=1;
  2474.                                        break;
  2475.                                     }
  2476.                                 }
  2477.                             }while(back_p_u==0);
  2478.  
  2479.                             break;
  2480.                         }
  2481.                     case 9:
  2482.                         {
  2483.                             back_p = 1;
  2484.                             break;
  2485.                         }
  2486.  
  2487.                     }
  2488.  
  2489.  
  2490.                 }while(back_p==0);
  2491.                 break;
  2492.             }
  2493.  
  2494.  
  2495.  
  2496.  
  2497.         case 9:
  2498.             {
  2499.                 return 0;
  2500.             }
  2501.  
  2502.  
  2503.             }
  2504.             }
  2505.     while(1); // petla nieskonczona zeby obraca³a siê dopoki nie wcisniemy exit
  2506. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement