Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 24.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <errno.h>
  5. #define lenght_of_personal_data 15
  6.  
  7. struct klient
  8. {
  9.     unsigned int numer_karty;
  10.     char nazwisko[lenght_of_personal_data];
  11.     char imie[lenght_of_personal_data];
  12.     char telefon[10];
  13.     struct klient *nastepny;
  14. };
  15.  
  16. struct ksiazka
  17. {
  18.     unsigned int ID;
  19.     char tytul[50];
  20.     unsigned int rok;
  21.     char autor[2*lenght_of_personal_data+1];
  22.     char gatunek[15];
  23.     unsigned char liczba_egzemplarzy;
  24.     unsigned char liczba_wypozyczonych;
  25.     struct ksiazka *nastepny;
  26. };
  27.  
  28. struct wypozyczenie
  29. {
  30.     unsigned int numer_karty;
  31.     unsigned int ID_ksiazki;
  32.     unsigned char rok_od[5];
  33.     unsigned char miesiac_od[3];
  34.     unsigned char dzien_od[3];
  35.     unsigned char rok_do[5];
  36.     unsigned char miesiac_do[3];
  37.     unsigned char dzien_do[3];
  38.     struct wypozyczenie *nastepny;
  39. };
  40.  
  41. struct klient wczytaj_nowego_klienta()
  42. {
  43.     struct klient nowy;
  44.     puts("Wypełnij dane klienta: ");
  45.     printf("Numer: \t");
  46.     scanf("%u", &nowy.numer_karty);
  47.     printf("Imie:\t ");
  48.     scanf("%s", &nowy.imie);
  49.     printf("Nazwisko: \t");
  50.     scanf("%s", &nowy.nazwisko);
  51.     do
  52.         {
  53.         printf("Telefon: ");
  54.         scanf("%s", &nowy.telefon);
  55.         }
  56.     while(sprawdz_telefon(nowy.telefon)!=0);
  57.     return nowy;
  58. };
  59.  
  60. struct ksiazka wczytaj_nowa_ksiazke()
  61. {
  62.     struct ksiazka nowy;
  63.     puts("Wypełnij dane ksiazki: ");
  64.     printf("Identyfikator: \t");
  65.     scanf("%u", &nowy.ID);
  66.     while(getchar()!='\n');
  67.     printf("Tytul:\t ");
  68.     scanf("%[^\n]s", &nowy.tytul);
  69.     while(getchar()!='\n');
  70.     printf("Rok wydania: \t");
  71.     scanf("%u", &nowy.rok);
  72.     while(getchar()!='\n');
  73.     printf("Autor: ");
  74.     scanf("%[^\n]s", &nowy.autor);
  75.     while(getchar()!='\n');
  76.     printf("Gatunek: ");
  77.     scanf("%[^\n]s", &nowy.gatunek);
  78.     while(getchar()!='\n');
  79.     printf("Liczba egzemplarzy: ");
  80.     scanf("%u", &nowy.liczba_egzemplarzy);
  81.     while(getchar()!='\n');
  82.     printf("Liczba wypozyczonych: ");
  83.     scanf("%u", &nowy.liczba_wypozyczonych);
  84.     while(getchar()!='\n');
  85.     return nowy;
  86. };
  87.  
  88. struct wypozyczenie wypozycz_ksiazke(struct klient *klient, struct ksiazka *ksiazka)
  89. {
  90.     struct wypozyczenie wypozyczenie;
  91.     int id_klienta, id_ksiazki;
  92.     wyswietlanie_klient(klient);
  93.     puts("Podaj ID klienta który chcesz wypożyczyć książkę: ");
  94.     scanf("%d", &id_klienta);
  95.     wyswietlanie_ksiazek(ksiazka);
  96.     puts("Podaj id ksiazki którą chce klient wypozyczyc: ");
  97.     scanf("%d", &id_ksiazki);
  98.     wypozyczenie.numer_karty = id_klienta;
  99.     wypozyczenie.ID_ksiazki = id_ksiazki;
  100.     puts("Podaj od jakiego roku: ");
  101.     scanf("%s", &wypozyczenie.rok_od);
  102.     puts("Podaj od jakiego miesiac: ");
  103.     scanf("%s", &wypozyczenie.miesiac_od);
  104.     puts("Podaj od jakiego dnia: ");
  105.     scanf("%s", &wypozyczenie.dzien_od);
  106.     puts("Podaj do jakiego roku: ");
  107.     scanf("%s", &wypozyczenie.rok_do);
  108.     puts("Podaj do jakiego miesiac: ");
  109.     scanf("%s", &wypozyczenie.miesiac_do);
  110.     puts("Podaj do jakiego dnia: ");
  111.     scanf("%s", &wypozyczenie.dzien_do);
  112.     return wypozyczenie;
  113.  
  114. }
  115.  
  116. struct klient *create_list_client()
  117. {
  118.     struct klient *first =(struct klient *)malloc(sizeof(struct klient));
  119.     if(first)
  120.     {
  121.         struct klient nowy;
  122.         nowy = wczytaj_nowego_klienta();
  123.         first->numer_karty = nowy.numer_karty;
  124.         strcpy(first->imie, nowy.imie);
  125.         strcpy(first->nazwisko, nowy.nazwisko);
  126.         strcpy(first->telefon, nowy.telefon);
  127.         first->nastepny = NULL;
  128.     }
  129.     return first;
  130. }
  131.  
  132. struct ksiazka *create_list_book()
  133. {
  134.     struct ksiazka *first =(struct ksiazka *)malloc(sizeof(struct ksiazka));
  135.     if(first)
  136.     {
  137.         struct ksiazka nowy;
  138.         nowy = wczytaj_nowa_ksiazke();
  139.         first->ID = nowy.ID;
  140.         strcpy(first->tytul, nowy.tytul);
  141.         first->rok = nowy.rok;
  142.         strcpy(first->autor, nowy.autor);
  143.         strcpy(first->gatunek, nowy.gatunek);
  144.         first->liczba_egzemplarzy = nowy.liczba_egzemplarzy;
  145.         first->liczba_wypozyczonych = nowy.liczba_wypozyczonych;
  146.         first->nastepny = NULL;
  147.     }
  148.     return first;
  149. }
  150.  
  151. struct wypozyczenie *create_list_wypozycz(struct wypozyczenie nowy)
  152. {
  153.     struct wypozyczenie *first =(struct wypozyczenie *)malloc(sizeof(struct wypozyczenie));
  154.     if(first)
  155.     {
  156.         first->ID_ksiazki = nowy.ID_ksiazki;
  157.         strcpy(first->dzien_do, nowy.dzien_do);
  158.         strcpy(first->dzien_od, nowy.dzien_od);
  159.         strcpy(first->miesiac_do, nowy.miesiac_do);
  160.         strcpy(first->miesiac_od, nowy.miesiac_od);
  161.         strcpy(first->rok_do, nowy.rok_do);
  162.         strcpy(first->rok_od, nowy.rok_od);
  163.         first->numer_karty = nowy.numer_karty;
  164.         first->nastepny = NULL;
  165.     }
  166.     return first;
  167. }
  168.  
  169. struct klient *add_node_client(struct klient *list_pointer)
  170. {
  171.     struct klient *nowy_klient = (struct klient *)malloc(sizeof(struct klient));
  172.     if(list_pointer && nowy_klient) {
  173.         struct klient nowy;
  174.         nowy = wczytaj_nowego_klienta();
  175.         nowy_klient->numer_karty = nowy.numer_karty;
  176.         strcpy(nowy_klient->imie, nowy.imie);
  177.         strcpy(nowy_klient->nazwisko, nowy.nazwisko);
  178.         strcpy(nowy_klient->telefon, nowy.telefon);
  179.         nowy_klient->nastepny = list_pointer->nastepny;
  180.         list_pointer->nastepny = nowy_klient;
  181.     }
  182.         return list_pointer;
  183. }
  184.  
  185. struct ksiazka *add_node_book(struct ksiazka *list_pointer)
  186. {
  187.     struct ksiazka *nowa_ksiazka = (struct ksiazka *)malloc(sizeof(struct ksiazka));
  188.     if(list_pointer && nowa_ksiazka) {
  189.         struct ksiazka nowy;
  190.         nowy = wczytaj_nowa_ksiazke();
  191.         nowa_ksiazka->ID = nowy.ID;
  192.         nowa_ksiazka->ID = nowy.ID;
  193.         strcpy(nowa_ksiazka->tytul, nowy.tytul);
  194.         nowa_ksiazka->rok = nowy.rok;
  195.         strcpy(nowa_ksiazka->autor, nowy.autor);
  196.         strcpy(nowa_ksiazka->gatunek, nowy.gatunek);
  197.         nowa_ksiazka->liczba_egzemplarzy = nowy.liczba_egzemplarzy;
  198.         nowa_ksiazka->liczba_wypozyczonych = nowy.liczba_wypozyczonych;
  199.         nowa_ksiazka->nastepny = list_pointer->nastepny;
  200.         list_pointer->nastepny = nowa_ksiazka;
  201.     }
  202.         return list_pointer;
  203. }
  204.  
  205. struct wypozyczenie *add_node_wypozycz(struct wypozyczenie *list_pointer, struct wypozyczenie nowy)
  206. {
  207.     struct wypozyczenie *nowy_klient = (struct wypozyczenie *)malloc(sizeof(struct wypozyczenie));
  208.     if(list_pointer && nowy_klient) {
  209.         nowy_klient->ID_ksiazki = nowy.ID_ksiazki;
  210.         strcpy(nowy_klient->dzien_do, nowy.dzien_do);
  211.         strcpy(nowy_klient->dzien_od, nowy.dzien_od);
  212.         strcpy(nowy_klient->miesiac_do, nowy.miesiac_do);
  213.         strcpy(nowy_klient->miesiac_od, nowy.miesiac_od);
  214.         strcpy(nowy_klient->rok_do, nowy.rok_do);
  215.         strcpy(nowy_klient->rok_od, nowy.rok_od);
  216.         nowy_klient->numer_karty = nowy.numer_karty;
  217.         nowy_klient->nastepny = list_pointer->nastepny;
  218.         list_pointer->nastepny = nowy_klient;
  219.     }
  220.         return list_pointer;
  221. }
  222.  
  223. void wyswietlanie_klient(struct klient *a)
  224. {
  225.     struct klient *tmp;
  226.     tmp = a;
  227.     if (tmp == NULL)
  228.         {
  229.         printf("Brak elementow, wybierz z listy:\n");
  230.         }
  231.     else
  232.     {
  233.         while (tmp != NULL)
  234.         {
  235.             printf("ID: %u\nImie: %s\nNazwisko: %s \nTelefon: %s\n", tmp->numer_karty, tmp->imie, tmp->nazwisko, tmp->telefon);
  236.             printf("\n");
  237.             tmp = tmp->nastepny;
  238.         }
  239.     }
  240. }
  241.  
  242. void wyswietlanie_ksiazek(struct ksiazka *a)
  243. {
  244.     struct ksiazka *tmp;
  245.  
  246.     tmp = a;
  247.     if (tmp == NULL)
  248.     {
  249.         printf("Brak elementow, wybierz z listy:\n");
  250.     }
  251.  
  252.     else
  253.     {
  254.         while (tmp != NULL)
  255.         {
  256.             printf("ID: %u\nTytul: %s\nRok: %u\nAutor: %s\nGatunek: %s\nLiczba egzemplarzy: %u\nLiczba wypozyczonych: %u\n", tmp->ID, tmp->tytul, tmp->rok, tmp->autor, tmp->gatunek, tmp->liczba_egzemplarzy, tmp->liczba_wypozyczonych);
  257.             printf("\n");
  258.             tmp = tmp->nastepny;
  259.         }
  260.     }
  261. }
  262.  
  263. void wyswietlanie_wypozyczonych(struct wypozyczenie *a)
  264. {
  265.     struct wypozyczenie *tmp;
  266.  
  267.     tmp = a;
  268.     if (tmp == NULL)
  269.     {
  270.         printf("Brak elementow, wybierz z listy:\n");
  271.     }
  272.  
  273.     else
  274.     {
  275.         while (tmp != NULL)
  276.         {
  277.             printf("Numer karty klienta: %u \nID książki %u \nWypożyczono: \nOd %s.%s.%s r. \nDo %s,%s,%s r.", tmp->numer_karty, tmp->ID_ksiazki, tmp->dzien_od, tmp->miesiac_od, tmp->rok_od, tmp->dzien_do, tmp->miesiac_do, tmp->rok_do);
  278.             printf("\n");
  279.             tmp = tmp->nastepny;
  280.         }
  281.     }
  282. }
  283.  
  284. struct klient *find_previous_node(struct klient *list_pointer, int id)
  285. {
  286.     struct klient *previous = NULL;
  287.     while(list_pointer && list_pointer->numer_karty!=id)
  288.         {
  289.         previous=list_pointer;
  290.         list_pointer=list_pointer->nastepny;
  291.         }
  292.     return previous;
  293. };
  294.  
  295. struct klient *delete_at_front(struct klient *list_pointer)
  296. {
  297.     struct klient *next = list_pointer->nastepny;
  298.     free(list_pointer);
  299.     return next;
  300. };
  301.  
  302. struct klient *delete_node(struct klient *list_pointer, int id)
  303.     {
  304.         if(list_pointer)
  305.             {
  306.                 if(list_pointer->numer_karty==id)
  307.                 {
  308.                     return delete_at_front(list_pointer);
  309.                 }
  310.                 else
  311.                     {
  312.                     struct list_node *previous =
  313.                     find_previous_node(list_pointer,id);
  314.                     delete_middle_or_last_node(previous);
  315.                     }
  316.             }
  317.     return list_pointer;
  318. };
  319.  
  320. void delete_middle_or_last_node(struct klient *previous)
  321. {
  322.     struct klient *node = previous->nastepny;
  323.     if(node)
  324.         {
  325.         previous->nastepny = node->nastepny;
  326.         free(node);
  327.         }
  328. }
  329.  
  330. struct ksiazka *find_previous_node_ksiazka(struct ksiazka *list_pointer, int id)
  331. {
  332.     struct ksiazka *previous = NULL;
  333.     while(list_pointer && list_pointer->ID!=id)
  334.         {
  335.         previous=list_pointer;
  336.         list_pointer=list_pointer->nastepny;
  337.         }
  338.     return previous;
  339. };
  340.  
  341. struct ksiazka *delete_at_front_ksiazka(struct ksiazka *list_pointer)
  342. {
  343.     struct ksiazka *next = list_pointer->nastepny;
  344.     free(list_pointer);
  345.     return next;
  346. };
  347.  
  348. struct ksiazka *delete_node_ksiazka(struct ksiazka *list_pointer, int id)
  349.     {
  350.         if(list_pointer)
  351.             {
  352.             if(list_pointer->ID==id)
  353.                 {
  354.                     return delete_at_front_ksiazka(list_pointer);
  355.                 }
  356.  
  357.             else
  358.                 {
  359.                     struct list_node *previous =
  360.                     find_previous_node_ksiazka(list_pointer,id);
  361.                     delete_middle_or_last_node_ksiazka(previous);
  362.                 }
  363.             }
  364.     return list_pointer;
  365. };
  366.  
  367. void delete_middle_or_last_node_ksiazka(struct ksiazka *previous)
  368. {
  369.     struct ksiazka *node = previous->nastepny;
  370.     if(node)
  371.         {
  372.             previous->nastepny = node->nastepny;
  373.             free(node);
  374.         }
  375. }
  376.  
  377. void modyfikuj_klienta(struct klient **a, unsigned int co, int id)
  378. {
  379.     struct klient *tmp = *a;
  380.     if(tmp==NULL)
  381.         {
  382.             puts("Brak elementów na liście nie masz co edytować!");
  383.         }
  384.     else
  385.         {
  386.             while(tmp!=NULL)
  387.                 {
  388.                     if((tmp->numer_karty)==id)
  389.                         {
  390.                             break;
  391.                         }
  392.                 tmp = tmp->nastepny;
  393.                 }
  394.     char telefon[10];
  395.     switch(co)
  396.         {
  397.             case 1: //imie
  398.                 puts("Podaj nowe imie: ");
  399.                 char imie[15];
  400.                 scanf("%s", imie);
  401.                 strcpy(tmp->imie, imie);
  402.                 break;
  403.             case 2: //nazwisko
  404.                 puts("Podaj nowe nazwisko: ");
  405.                 char nazwisko[15];
  406.                 scanf("%s", nazwisko);
  407.                 strcpy(tmp->nazwisko, nazwisko);
  408.                 break;
  409.             case 3: //telefon
  410.                 do
  411.                     {
  412.                         printf("Telefon: ");
  413.                         scanf("%s", &telefon);
  414.                     }
  415.                 while(sprawdz_telefon(telefon)!=0);
  416.                 strcpy(tmp->telefon, telefon);
  417.                 break;
  418.             default:
  419.                 puts("Brak takiego pola!");
  420.                 break;
  421.  
  422.         }
  423.  
  424.         }
  425. }
  426.  
  427. void modyfikuj_ksiazke(struct ksiazka **a, unsigned int co, int id)
  428. {
  429.     struct ksiazka *tmp = *a;
  430.     if(tmp==NULL)
  431.         {
  432.             puts("Brak elementów na liście nie masz co edytować!");
  433.         }
  434.     else
  435.         {
  436.             while(tmp!=NULL)
  437.                 {
  438.                     if((tmp->ID)==id)
  439.                         {
  440.                             break;
  441.                         }
  442.                 tmp = tmp->nastepny;
  443.                 }
  444.     char tytul[50];
  445.     unsigned int rok;
  446.     char autor[2*lenght_of_personal_data+1];
  447.     char gatunek[15];
  448.     unsigned char liczba_egzemplarzy;
  449.     unsigned char liczba_wypozyczonych;
  450.     switch(co)
  451.         {
  452.             case 1: //imie
  453.                 puts("Podaj nowy tytul: ");
  454.                 while(getchar()!='\n');
  455.                 scanf("%[^\n]s", &tytul);
  456.                 strcpy(tmp->tytul, tytul);
  457.                 break;
  458.             case 2: //nazwisko
  459.                 puts("Podaj rok: ");
  460.                 scanf("%u", &rok);
  461.                 tmp->rok = rok;
  462.                 break;
  463.             case 3: //telefon
  464.                 puts("Podaj nowego autora: ");
  465.                 while(getchar()!='\n');
  466.                 scanf("%[^\n]s", &autor);
  467.                 strcpy(tmp->autor, autor);
  468.                 break;
  469.             case 4:
  470.                 puts("Podaj gatunek: ");
  471.                 scanf("%s", &gatunek);
  472.                 strcpy(tmp->gatunek, gatunek);
  473.                 break;
  474.             case 5:
  475.                 puts("Podaj nowa liczbe egzemplarzy: ");
  476.                 scanf("%u", &liczba_egzemplarzy);
  477.                 tmp->liczba_egzemplarzy = liczba_egzemplarzy;
  478.                 break;
  479.             case 6:
  480.                 puts("Podaj ilosc wypozyczen: ");
  481.                 scanf("%u", &liczba_wypozyczonych);
  482.                 tmp->liczba_wypozyczonych = liczba_wypozyczonych;
  483.                 break;
  484.             default:
  485.                 puts("Brak takiego pola!");
  486.                 break;
  487.  
  488.         }
  489.  
  490.         }
  491. }
  492.  
  493. int sprawdz_telefon(char telefon[])
  494. {
  495.     int i = 0;
  496.     for(i; i <9; i++)
  497.         {
  498.             if(telefon[i]>='0'&&telefon[i]<='9'){}
  499.             else return -1;
  500.         }
  501.     if(strlen(telefon)!=9)
  502.         {
  503.             return -2;
  504.         }
  505.  
  506.     else
  507.         {
  508.             return 0;
  509.         }
  510. }
  511.  
  512. int main()
  513. {
  514.     system("chcp 1250>nul");
  515.     struct klient *a = NULL;
  516.     struct ksiazka *ksiazka = NULL;
  517.     struct wypozyczenie wypozycz1;
  518.     struct wypozyczenie *wypozycz=NULL;
  519.     unsigned int opcja = 0;
  520.     unsigned int co = 0;
  521.     printf("Witamy w projekcie wypożyczalnia książek \nWybierz co chcesz zrobić: \n1. Dodawanie/usuwanie/edytowanie/wyświetlanie klientów \n2. Dodawanie/usuwanie/edytowanie/wyświetlanie książek\n");
  522.     printf("3. Wypożyczenie/oddanie książki \n4. Wyświetlanie książek \n5. Wyszukiwanie książek \n6. Zapisywanie/wczytanie danych o klientach, książkach i wypożyczeniach \n0. Wyjście \nWybieram opcję nr:");
  523.     while(scanf("%u", &opcja))
  524.     {
  525.         int id;
  526.         switch(opcja)
  527.             {
  528.                 case 1:  //klienci
  529.                     printf("Co teraz chcesz zrobić: \n");
  530.                     system("cls");
  531.                     printf("1. Dodawanie\n2. Usuwanie\n3. Edytowanie\n4. Wyswietlanie\n0. Powrót\n");
  532.                     while(scanf("%u", &opcja)!=5)
  533.                         {
  534.                             switch(opcja)
  535.                                 {
  536.                                     case 1:
  537.                                         if(a==NULL)
  538.                                             {
  539.                                                 a= create_list_client();
  540.                                             }
  541.                                         else
  542.                                             {
  543.                                                 a = add_node_client(a);
  544.                                             }
  545.  
  546.                             printf("Co teraz chcesz zrobić: \n");
  547.                             system("cls");
  548.                             break;
  549.  
  550.                                     case 2:
  551.                                         wyswietlanie_klient(a);
  552.                                         if(a==NULL){}
  553.                                         else
  554.                                             {
  555.                                                 puts("Podaj ID klienta którego chcesz usunąć: ");
  556.                                                 scanf("%d", &id);
  557.                                                 a = delete_node(a, id);
  558.                                             }
  559.  
  560.                                         break;
  561.  
  562.                                     case 3:
  563.                                         printf("Jakie pole chcesz edytować? \n1. Imię \n2. Nazwisko \n3. Telefon \nPodaj opcję:");
  564.                                         scanf("%u", &co);
  565.                                         system("cls");
  566.                                         wyswietlanie_klient(a);
  567.                                         printf("Podaj ID klienta którego chcesz edytować: \n");
  568.                                         scanf("%d", &id);
  569.                                         modyfikuj_klienta(&a, co, id);
  570.                                         break;
  571.  
  572.                                     case 4:
  573.                                         wyswietlanie_klient(a);
  574.                                         break;
  575.  
  576.                                     case 0:
  577.                                         break;
  578.  
  579.                                     default:
  580.                                         printf("Niepoprawna komenda");
  581.                                         break;
  582.                             }
  583.                                 printf("1. Dodawanie\n2. Usuwanie\n3. Edytowanie\n4. Wyswietlanie\n0. Powrót\n");
  584.                                 if(opcja==0)
  585.                                 break;
  586.                         }
  587.             break;
  588.  
  589.             case 2:  //ksiazki
  590.                 printf("Co teraz chcesz zrobić: \n");
  591.                 system("cls");
  592.                 printf("1. Dodawanie\n2. Usuwanie\n3. Edytowanie\n4. Wyswietlanie\n0. Powrót\n");
  593.                 while(scanf("%u", &opcja)!=5)
  594.                     {
  595.                         switch(opcja)
  596.                             {
  597.                                 case 1:
  598.                                     if(ksiazka==NULL)
  599.                                         {
  600.                                             ksiazka= create_list_book();
  601.                                         }
  602.                                     else
  603.                                         {
  604.                                             ksiazka = add_node_book(ksiazka);
  605.                                         }
  606.                                     printf("Co teraz chcesz zrobić: \n");
  607.                                     system("cls");
  608.                                     break;
  609.  
  610.                                 case 2:
  611.                                     wyswietlanie_ksiazek(ksiazka);
  612.                                     puts("Podaj ID klienta którego chcesz usunąć: ");
  613.                                     scanf("%d", &id);
  614.                                     ksiazka = delete_node_ksiazka(ksiazka, id);
  615.                                     break;
  616.  
  617.                                 case 3:
  618.                                     printf("Jakie pole chcesz edytować?\n1. Tytuł\n2. Rok\n3. Autor\n4. Gatunek\n5. Liczba egzemplarzy\n6. Liczba wypożyczeń\nPodaj opcję: ");
  619.                                     scanf("%u", &co);
  620.                                     system("cls");
  621.                                     wyswietlanie_ksiazek(ksiazka);
  622.                                     printf("Podaj ID książki którą chcesz edytować: \n");
  623.                                     scanf("%d", &id);
  624.                                     modyfikuj_ksiazke(&ksiazka, co, id);
  625.                                     break;
  626.  
  627.                                 case 4:
  628.                                     wyswietlanie_ksiazek(ksiazka);
  629.                                     break;
  630.  
  631.                                 case 0:
  632.                                     break;
  633.  
  634.                                 default:
  635.                                     printf("Niepoprawna komenda");
  636.                                     break;
  637.                             }
  638.                         printf("1. Dodawanie\n2. Usuwanie\n3. Edytowanie\n4. Wyswietlanie\n0. Powrót\n");
  639.                         if(opcja==0)
  640.                         break;
  641.                     }
  642.                 break;
  643.             case 3:
  644.                 printf("Co teraz chcesz zrobić: \n");
  645.                 system("cls");
  646.                 printf("1. Wypozycz\n2. Oddaj\n3. Wyświetl\n0. Powrót\n");
  647.                 while(scanf("%u", &opcja)!=5)
  648.                     {
  649.                         switch(opcja)
  650.                             {
  651.                                 case 1:
  652.                                     wypozycz1 = wypozycz_ksiazke(a, ksiazka);
  653.                                     if(wypozycz==NULL)
  654.                                         {
  655.                                             wypozycz= create_list_wypozycz(wypozycz1);
  656.                                         }
  657.                                     else
  658.                                         {
  659.                                             wypozycz = add_node_wypozycz(wypozycz, wypozycz1);
  660.                                         }
  661.                                     printf("Co teraz chcesz zrobić: \n");
  662.                                     system("cls");
  663.                                     break;
  664.  
  665.                                 case 2:
  666.  
  667.                                     break;
  668.  
  669.                                 case 3:
  670.                                     wyswietlanie_wypozyczonych(wypozycz);
  671.                                     break;
  672.  
  673.                                 case 0:
  674.                                     break;
  675.  
  676.                                 default:
  677.                                     printf("Niepoprawna komenda");
  678.                                     break;
  679.                             }
  680.                         printf("1. Wypozycz\n2. Oddaj\n3. Wyświetl\n0. Powrót\n");
  681.                         if(opcja==0)
  682.                         break;
  683.                     }
  684.                 break;
  685.             case 4:
  686.  
  687.                 break;
  688.             case 5:
  689.  
  690.                 break;
  691.             case 6:
  692.  
  693.                 break;
  694.             case 0:
  695.                 return 0;
  696.                 break;
  697.             default:
  698.                 printf("Opcja o numerze %u nie istnieje!", opcja);
  699.                 break;
  700.         }
  701.         system("cls");
  702.         printf("Witamy w projekcie Wypożyczalnia książek");
  703.     printf("Wybierz co chesz zrobić:\n");
  704.     puts("1. Dodawanie/usuwanie/edycja/wyswietlanie klientów");
  705.     puts("2. Dodawanie/usuwanie/edycja/wyswietlanie książek");
  706.     puts("3. Wypo¿yczenie/oddanie książki");
  707.     puts("4. Wyœwietlenie książek");
  708.     puts("5. Wyszukanie książek");
  709.     puts("6. Zapisanie/wczytanie danych o klientach, książkach i wypożyczeniach");
  710.     puts("0. Wyjście");
  711.     printf("Wybieram opcje nr. ");
  712.     }
  713.     return 0;
  714. }
  715.  
  716.  
  717.  
  718. /*
  719. Wypo¿yczalnia ksi¹¿ek.
  720. Dodawanie/usuwanie/edycja klientów (numer karty, nazwisko, imiê, telefon).
  721. Dodawanie/usuwanie/edycja ksi¹¿ek (ID, tytu³, rok, autor, gatunek, liczba egzemplarzy, liczba wypo¿yczonych).
  722. Wypo¿yczanie/oddawanie ksi¹¿ek (kto wypo¿yczy³ (numer karty), któr¹ ksi¹¿kê (ID), kiedy, do kiedy).
  723. Wyœwietlanie ksi¹¿ek z mo¿liwoœci¹ sortowania rosn¹cego/malej¹cego po dowolnym polu.
  724. Wyszukiwanie ksi¹¿ek.
  725. Zapisywanie/wczytywanie danych o klientach, ksi¹¿kach i wypo¿yczeniach do/z plików.
  726. Wykorzystanie list.
  727. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement