Advertisement
Gsmok

Untitled

Feb 1st, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX1 30
  6. #define MAX2 40
  7. #define MAX3 20
  8.  
  9. // STRUKTURA Z INFORMACJAMI O KSIAZCE Z BIBLIOTEKI
  10. typedef struct
  11. {
  12.     char AutorB[MAX1];
  13.     char TytulB[MAX2];
  14.     int Rok;
  15.     char Wydawnictwo[50];
  16.     char Typ[50];
  17.     char Wypozyczona[4];//TAK LUB NIE, jesli tak komu zostala wypozyczona
  18.     char Komu[MAX3];
  19. }Biblioteka;
  20.  
  21. //STRUKTURA Z LISTA DO BIBLIOTEKI
  22. struct ListaB
  23. {
  24.     Biblioteka data;
  25.     struct ListaB *next;
  26. };
  27. typedef struct ListaB LISTAB;
  28. typedef LISTAB *ADRESB;
  29.  
  30. //STRUKTURA Z INFORMACJAMI O KSIAZCE KTORA CHCEMY KUPIC
  31. typedef struct
  32. {
  33.     char AutorDK[MAX1];
  34.     char TytulDK[MAX2];
  35. }DoKupienia;
  36.  
  37. //STRUKTURA Z LISTA DO DOKUPIENIA
  38. struct ListaDK
  39. {
  40.     DoKupienia dane;
  41.     struct ListaDK *nast;
  42. };
  43. typedef struct ListaDK LISTADK;
  44. typedef LISTADK *ADRESDK;
  45.  
  46. //_____________  prototypy _________________
  47. void UsunB(ADRESB first, char Usuwany[MAX2]);
  48. void UsunDK(ADRESDK pierwszy, char Usuwany[MAX2]);
  49.  
  50. //_______________________________________
  51. void DodajKsiazkeB(ADRESB first, ADRESDK pierwszy)
  52. {
  53.     int usunzDK;
  54.      //DODANIE KSIAZKI DO BILBIOTEKI
  55.     ADRESB tmp;
  56.     tmp = first;
  57.     while(tmp->next)
  58.     {
  59.     tmp = tmp->next;
  60.     }
  61.     tmp->next = (ADRESB)malloc(sizeof(LISTAB));
  62.     tmp = tmp->next;
  63.     tmp->next = NULL;
  64.     printf("Podaj nazwisko autora: ");
  65.     fflush(stdin);
  66.     gets(tmp->data.AutorB);
  67.     printf("Podaj tytul ksiazki: ");
  68.     fflush(stdin);
  69.     gets(tmp->data.TytulB);
  70.     printf("Podaj rok wydania ksiazki: ");
  71.     fflush(stdin);
  72.     scanf("%d", &tmp->data.Rok);
  73.     printf("Podaj wydawnictwo: ");
  74.     fflush(stdin);
  75.     gets(tmp->data.Wydawnictwo);
  76.     printf("Podaj typ ksiazki (np.: kryminal, dramat, poradnik, itd.: ");
  77.     fflush(stdin);
  78.     gets(tmp->data.Typ);
  79.  
  80.     system("cls");
  81.     printf("Ksiazka zostala dodana do listy Biblioteka.\n\n");
  82.     printf("Czy chcesz, aby dodana przez Ciebie ksiazka zostala jednoczesnie usunieta z listy 'Do kupienia'?\n\n");
  83.     printf("1. TAK \n2. NIE \n\n");
  84.     scanf("%d", &usunzDK);
  85.     switch(usunzDK)
  86.     {
  87.         case 1: //ksiazka zostanie usunieta z listy DoKupienia
  88.         {
  89.             if(pierwszy == NULL)
  90.             {
  91.                 printf("Nie mozesz usunac ksiazki, gdyz lista 'Do kupienia' jest pusta.");
  92.                 puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
  93.                 fflush(stdin);
  94.                 getch();
  95.             }
  96.             else
  97.             {
  98.                 UsunDK(pierwszy, tmp->data.TytulB);
  99.                 puts("Ksiazka zostala usunieta z listy DoKupienia.\n\n");
  100.                 puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
  101.                 fflush(stdin);
  102.                 getch();
  103.             }
  104.         }break;
  105.  
  106.         case 2: //ksiazka pozostanie w liscie DoKupienia
  107.         {
  108.             puts("Ksiazka pozostala w liscie 'Do kupienia'.\n\n");
  109.             puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
  110.             fflush(stdin);
  111.             getch();
  112.             break;
  113.         }
  114.  
  115.         case 3: //POWRÓT DO MENU
  116.         {
  117.             return;
  118.         }
  119.     }
  120.  
  121. }
  122.  
  123.  
  124. //____________________________________________
  125. void DodajKsiazkeDK(ADRESDK pierwszy)
  126. {
  127.  
  128.     // DODANIE KSIAZKI DO LISTY DOKUPIENIA
  129.     ADRESDK pom;
  130.     pom = pierwszy;
  131.     while(pom->nast)
  132.     {
  133.     pom->nast = pom;
  134.     }
  135.     pom->nast = (LISTADK*) malloc(sizeof(LISTADK));
  136.     pom = pom->nast;
  137.     pom->nast = NULL;
  138.     printf("Podaj nazwisko autora: ");
  139.     fflush(stdin);
  140.     gets(pom->dane.AutorDK);
  141.     printf("Podaj tytul: ");
  142.     fflush(stdin);
  143.     gets(pom->dane.TytulDK);
  144.  
  145.     puts("Ksiazka zostala dodana do listy 'Do kupienia'.\n\n");
  146.     puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
  147.     fflush(stdin);
  148.     getch();
  149.     system("cls");
  150.  
  151. }
  152.  
  153.  
  154. //____________________________________________
  155. void UsunB(ADRESB first, char Usuwany[MAX2])
  156. {
  157.     if(first)
  158.         first = first->next;
  159.  
  160.     while(first->next) //Sprawdzamy dla ka¿dego elementu
  161.         {
  162.                 if(stricmp(first->next->data.TytulB,Usuwany)==0) //Czy ten element to ten sam o którym mówmy
  163.                 {
  164.                         ADRESB Us = first->next; //Zapamiêtujemy drania
  165.                         first->next = first->next->next; //Usuwamy go z spisów
  166.                         free(Us); //Wysy³amy zabójcê by go sprz¹tn¹æ
  167.                         return; //I zmywamy siê z miejsca zbrodni
  168.                 }
  169.  
  170.                 first = first->next;
  171.         }
  172.  
  173.      //Je¿eli nie ma go w liœcie to te¿ koñczymy funkcjê xD
  174.  
  175. }
  176. //______________________________________________
  177. void UsunDK(ADRESDK pierwszy, char Usuwany[MAX2])
  178. {
  179.  
  180.     if(pierwszy)
  181.         pierwszy = pierwszy->nast;
  182.  
  183.     while(pierwszy->nast) //Sprawdzamy dla ka¿dego elementu
  184.         {
  185.                 if(stricmp(pierwszy->nast->dane.TytulDK,Usuwany) == 0) //Czy ten element to ten sam o którym mówmy
  186.                 {
  187.                         ADRESDK Us = pierwszy->nast; //Zapamiêtujemy drania
  188.                         pierwszy->nast = pierwszy->nast->nast; //Usuwamy go z spisów
  189.                         free(Us); //Wysy³amy zabójcê by go sprz¹tn¹æ
  190.                         return; //I zmywamy siê z miejsca zbrodni
  191.                 }
  192.  
  193.                 pierwszy = pierwszy->nast;
  194.         }
  195.  
  196.      //Je¿eli nie ma go w liœcie to te¿ koñczymy funkcjê xD
  197.  
  198.  
  199.  
  200.  
  201. }
  202.  
  203. //______________________________________
  204. void Wypozyczone(ADRESB first)
  205. {
  206.     if(first)
  207.         first = first->next;
  208.  
  209.     ADRESB tmp;
  210.     tmp = first;
  211.     int licznik = 1;
  212.  
  213.     if(tmp == NULL)
  214.     {
  215.         printf("Niestety na liscie nie znajduje sie zadna ksiazka.\n\n");
  216.         return;
  217.     }
  218.     else
  219.     {
  220.         puts("Oto ksiazki, ktore znajduja sie na liscie:\n");
  221.         while(tmp)
  222.         {
  223.             printf("Ksiazka nr %d\n", licznik);
  224.             printf("Autor: %s\n", tmp->data.AutorB);
  225.             printf("Tytul: %s\n", tmp->data.TytulB);
  226.             printf("Rok wydania: %d\n", tmp->data.Rok);
  227.             printf("Wydawnictwo: %s\n", tmp->data.Wydawnictwo);
  228.             printf("Typ ksiazki: %s\n", tmp->data.Typ);
  229.             printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
  230.             tmp = tmp->next;
  231.             licznik++;
  232.         }
  233.     }
  234.     return;
  235. }
  236. //____________________________________________________________
  237. void Chce(ADRESDK pierwszy)
  238. {
  239.     if(pierwszy)
  240.         pierwszy = pierwszy->nast;
  241.  
  242.     ADRESDK pom;
  243.     pom = pierwszy;
  244.     int licznik = 1;
  245.  
  246.     if(pom == NULL)
  247.     {
  248.         printf("Niestety na liscie nie znajduje sie zadna ksiazka.\n\n");
  249.         return;
  250.     }
  251.     else
  252.     {
  253.         puts("Oto ksiazki, ktore znajduja sie na liscie:\n");
  254.         while(pom)
  255.         {
  256.             printf("Ksiazka nr %d\n", licznik);
  257.             printf("Autor: %s\n", pom->dane.AutorDK);
  258.             printf("Tytul: %s\n", pom->dane.TytulDK);
  259.             printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
  260.             pom = pom->nast;
  261.             licznik++;
  262.         }
  263.     }
  264.     return;
  265. }
  266.  
  267. //____________________________________________________________________
  268. void SortujAutorzyB(ADRESB first)
  269. {
  270.         ADRESB Nowy = 0; //Bedziemy tu dodawac elementy od "najwiekszego". Umieszczamy na pocz¹tku listy, wiêc ostatecznie kolejka bêdzie jakby odwrócona ;)
  271.  
  272.         while(first->next) // Póki zosta³y jakieœ elementy na liœcie first
  273.         {
  274.                 ADRESB Tmp = first; // Bedziemy tym siê przemieszczaæ po liœcie
  275.                 ADRESB Max = first; // A tu mamy poprzedni element maksymalnego
  276.  
  277.                 while(Tmp->next)//Póki tmp nie jest przedostatnim elementem (bo pobieramy wskaŸnik na poprzedni przed porównywanym)
  278.                 {
  279.                         if(strcmp(Max->next->data.AutorB,Tmp->next->data.AutorB)>0) //Je¿eli "obecny" jest "wiêkszy" od minimalnego
  280.                                 Max= Tmp;
  281.                         Tmp = Tmp->next;
  282.                 }
  283.  
  284.                 //W tym miejscu Min wskazuje na "najwiekszy" element w liœcie A;
  285.                 ADRESB Buf = Max->next; //Zapamietujemy Min
  286.                 Max->next = Max->next->next; //Usuwamy je z pierwszej listy
  287.                 Buf->next = Nowy; //Te dwie linie
  288.                 Nowy = Buf; //Dodajemy Maxa do nowej listy
  289.         }
  290.  
  291.         first->next = Nowy; //No i tylko przypisujemy spowrotem "now¹" listê na miejsce starej;
  292.         return; //Gotowe
  293. }
  294.  
  295. //____________________________________________________________________
  296. void SortujTytulyB(ADRESB first)
  297. {
  298.         ADRESB Nowy = 0;
  299.  
  300.         while(first->next)
  301.         {
  302.                 ADRESB Tmp = first;
  303.                 ADRESB Max = first;
  304.  
  305.                 while(Tmp->next)
  306.                 {
  307.                         if(strcmp(Max->next->data.TytulB, Tmp->next->data.TytulB) > 0)
  308.                                 Max= Tmp;
  309.                         Tmp = Tmp->next;
  310.                 }
  311.  
  312.                 ADRESB Buf = Max->next;
  313.                 Max->next = Max->next->next;
  314.                 Buf->next = Nowy;
  315.                 Nowy = Buf;
  316.         }
  317.  
  318.         first->next = Nowy;
  319.         return;
  320. }
  321. //____________________________________________________________________
  322.  
  323. void Zwolnij(ADRESB first, ADRESDK pierwszy)
  324. {
  325.         if(first)
  326.                 first = first->next;
  327.         if(pierwszy)
  328.                 pierwszy = pierwszy->nast;
  329.  
  330.         ADRESB Popf = first; //W Popf zapamiêtujemy poprzedni element
  331.         while(first->next) //Póki jest nastêpny element
  332.                 {
  333.                         first = first->next; //Przechodzimy na niego
  334.                         free(Popf); //Zwalniamy poprzedni
  335.                         Popf = first; //I zapamiêtujemy obecny
  336.                 }
  337.         free(Popf); //Zwalniamy jeszcze ostatni element
  338.  
  339.         ADRESDK Popp = pierwszy; //Analogincznie
  340.         while(pierwszy->nast)
  341.                 {
  342.                         pierwszy = pierwszy->nast;
  343.                         free(Popp);
  344.                         Popp = pierwszy;
  345.                 }
  346.         free(Popf);
  347.         return;
  348. }
  349.  
  350.  
  351. void Zapisz(ADRESB first, ADRESDK pierwszy, char Sciezka1[], char Sciezka2[])
  352. {
  353.     if(first)
  354.         first = first->next;
  355.     if(pierwszy)
  356.         pierwszy = pierwszy->nast;
  357.  
  358.     ADRESB tmp;
  359.     tmp = first;
  360.     Biblioteka b;
  361.     ADRESDK pom;
  362.     pom = pierwszy;
  363.     DoKupienia d;
  364.  
  365.         FILE *moon = fopen(Sciezka1,"wb");
  366.  
  367.     //ZAPISYWANIE DANYCH 'BIBLIOTEKA'
  368.     while(tmp)
  369.     {
  370.         strcpy(b.AutorB, tmp->data.AutorB);
  371.         strcpy(b.TytulB, tmp->data.TytulB);
  372.         b.Rok = tmp->data.Rok;
  373.         strcpy(b.Wydawnictwo, tmp->data.Wydawnictwo);
  374.         strcpy(b.Wypozyczona, tmp->data.Wypozyczona);
  375.         strcpy(b.Komu, tmp->data.Komu);
  376.         strcpy(b.Typ, tmp->data.Typ);
  377.  
  378.         fwrite(&b, sizeof(Biblioteka), 1, moon);
  379.         tmp = tmp->next;
  380.     }
  381.  
  382.         fclose(moon);
  383.         moon = fopen(Sciezka2,"wb");
  384.     //ZAPISYWANIE DANYCH 'DOKUPIENIA'
  385.     while(pom)
  386.     {
  387.         strcpy(d.AutorDK, pom->dane.AutorDK);
  388.         strcpy(d.TytulDK, pom->dane.TytulDK);
  389.  
  390.         fwrite(&d, sizeof(DoKupienia), 1, moon);
  391.         pom = pom->nast;
  392.     }
  393.  
  394.         fclose(moon);
  395. }
  396.  
  397. //_________________________________________________
  398. void Wczytaj(ADRESB first, ADRESDK pierwszy, char Sciezka1[],char Sciezka2[])
  399. {
  400.     Zwolnij(first);
  401.     Zwolnij(pierwszy);
  402.     ADRESB tmp, help;
  403.     Biblioteka b;
  404.     ADRESDK pom, rat;
  405.     DoKupienia d;
  406.     char nowyplik[50];
  407.     FILE *food = fopen(Sciezka1,"rb");
  408.  
  409.         if(food == 0)
  410.         {
  411.                 printf("Pirat nie zyje! Pliku nie ma!\n\n");
  412.                 getch();
  413.                 return;
  414.         }
  415.  
  416.     while(fread(&b, sizeof(Biblioteka), 1, food) == 1)
  417.     {
  418.         tmp=(LISTAB*)malloc(sizeof(LISTAB));
  419.         strcpy(tmp->data.AutorB, b.AutorB);
  420.         strcpy(tmp->data.TytulB, b.TytulB);
  421.         tmp->data.Rok = b.Rok;
  422.         strcpy(tmp->data.Wydawnictwo, b.Wydawnictwo);
  423.         strcpy(tmp->data.Wypozyczona, b.Wypozyczona);
  424.         strcpy(tmp->data.Komu, b.Komu);
  425.         strcpy(tmp->data.Typ, b.Typ);
  426.         tmp->next = NULL;
  427.  
  428.         first->next = tmp;
  429.         first = tmp;
  430.     }
  431.  
  432.         food = fopen(Sciezka2,"wb");
  433.         fclose(food);
  434.  
  435.         if(food == 0)
  436.         {
  437.                 printf("Pirat nie zyje! Pliku nie ma!\n\n");
  438.                 getch();
  439.                 return;
  440.         }
  441.  
  442.     while(fread(&d, sizeof(DoKupienia), 1, food) == 1)
  443.     {
  444.  
  445.         strcpy(pom->dane.AutorDK, d.AutorDK);
  446.         strcpy(pom->dane.TytulDK, d.TytulDK);
  447.  
  448.         pom->nast = NULL;
  449.  
  450.         pierwszy->nast = pom;
  451.         pierwszy = pom;
  452.     }
  453.  
  454.     printf("\n\nUdalo sie otworzyc plik\n\nWcisnij dowolny klawisz aby kontynuowac.\n");
  455.     getch();
  456.     system("cls");
  457.  
  458.         fclose(food); //Zamykamy plik
  459.     return;
  460. }
  461.  
  462. //___________________________________________________________________
  463.  
  464. //____________________________________________________________________
  465. int main()
  466. {
  467.     FILE *moon;
  468.     char nazwa1[50]; //nazwa pierwszego pliku uzytkownik nada dla pliku
  469.     char nazwa2[50]; //nazwa drugiego
  470.     ADRESB first, tmp;
  471.     first = (LISTAB*) malloc(sizeof(LISTAB));
  472.     first->next = NULL;
  473.     ADRESDK pierwszy, pom;
  474.     pierwszy = (LISTADK*) malloc(sizeof(LISTADK));
  475.     pierwszy->nast = NULL;
  476.  
  477.     int numer;
  478.     int zapis;
  479.     int sort;
  480.     int wybierz;
  481.     int usuwanie;
  482.     int wybor;
  483.     int gdzieDodac;
  484.  
  485.     tmp = first;
  486.  
  487.     printf("1. Stworz nowy plik \n2. Wczytaj plik\n\n");
  488.     scanf("%d", &wybierz);
  489.     switch(wybierz)
  490.     {
  491.         case 1:
  492.             printf("\nPodaj nazwe nowego pliku: \n");
  493.             fflush(stdin);
  494.             gets(nazwa);
  495.             moon = fopen(nazwa,"wrab");
  496.             //fclose(moon);
  497.             //moon = fopen(nazwa,"rb");
  498.             break;
  499.  
  500.         case 2:
  501.             printf("\nPodaj nazwe pliku DK do wczytania: \n");
  502.             fflush(stdin);
  503.             gets(nazwa1);
  504.        
  505.         printf("\nPodaj nazwe pliku S do wczytania: \n");
  506.             fflush(stdin);
  507.             gets(nazwa2);
  508.             Wczytaj(first, pierwszy, nazwa, nazwa2);
  509.              system("cls");
  510.            
  511.             break;
  512.  
  513.     }
  514.  
  515.     Wczytaj(first, pierwszy, nazwa); //Wczytujemy na wstepie dane
  516.  
  517.     do{
  518.         printf("1. Wypozyczone\n2. Ksiazki, ktore chcesz kupic\n3. Dodaj ksiazke\n4. Usun ksiazke \n5. Sortowanie\n6. Autorzy - ilosc ksiazek\n7. Najpopularniejsza kategoria\n8. Wczytaj nowy plik\n9. Zapisz i zakoncz\n\n");
  519.         {
  520.             do{
  521.                 scanf("%d", &numer);
  522.                 if(numer<1 || numer>9)
  523.                 {
  524.                     printf("Zly numer. Wybierz prawidlowa kategorie\n");
  525.                 }
  526.             }while(numer<1 || numer>9);
  527.         }
  528.  
  529.         system("cls");
  530.  
  531.         switch(numer)
  532.         {
  533.             case 1: //KSIAZKI KTORE MAM (lista Biblioteka)
  534.                 Wypozyczone(first);
  535.                 printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  536.                 getch();
  537.                 system("cls");
  538.                 break;
  539.  
  540.             case 2: //KSIAZKI KTORE CHCE KUPIC (lista DoKupienia)
  541.                 Chce(pierwszy);
  542.                 printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  543.                 getch();
  544.                 system("cls");
  545.                 break;
  546.  
  547.             case 3: //DODANIE KSIAZKI
  548.  
  549.                 puts("Gdzie chcesz dodac nowa ksiazke?\n1. Biblioteka \n2. Do kupienia \n3. Powrot do menu");
  550.                 int nazwa;
  551.                 do{
  552.                     scanf("%d", &gdzieDodac);
  553.                     if(gdzieDodac<1 || gdzieDodac>3)
  554.                     {
  555.                     printf("Zly numer. Podaj prawidlowa kategorie.");
  556.                     }
  557.                 } while(gdzieDodac<1 || gdzieDodac>3);
  558.                 system("cls");
  559.                 switch(gdzieDodac)
  560.                 {
  561.                     case 1:
  562.                         DodajKsiazkeB(first, pierwszy);
  563.                         break;
  564.  
  565.                     case 2:
  566.                         DodajKsiazkeDK(pierwszy);
  567.                         break;
  568.  
  569.                     //system("cls");
  570.                 }
  571.                 printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  572.                 getch();
  573.                 system("cls");
  574.                 break;
  575.  
  576.  
  577.             case 4: //USUNIECIE KSIAZKI
  578.                 printf("Skad chcesz usunac ksiazke?\n1.Biblioteka\n2.Do kupienia\n\n");
  579.                 scanf("%d", &usuwanie);
  580.                 char Tytul[MAX2];
  581.                 switch(usuwanie)
  582.                 {
  583.                     case 1:
  584.                         printf("Podaj tytul ksiazki, ktora chcesz usunac: \n");
  585.                         fflush(stdin);
  586.                         gets(Tytul);
  587.                         UsunB(first, Tytul);
  588.                         printf("Ksiazka zostala usunieta z listy.\n\n");
  589.                         printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  590.                         getch();
  591.                         system("cls");
  592.                         break;
  593.  
  594.                     case 2:
  595.                         printf("Podaj tytul ksiazki ktora chcesz usunac: \n\n");
  596.                         fflush(stdin);
  597.                         //char Tytul[MAX2];
  598.                         gets(Tytul);
  599.                         UsunDK(pierwszy, Tytul);
  600.                         printf("Ksiazka zostala usunieta z listy.\n\n");
  601.                         int dodajdoB;
  602.                         printf("Czy chcesz, aby ksiazka zostala jednoczesnie dodana do listy 'Biblioteka'? \n1. TAK \n2. NIE\n\n");
  603.                         scanf("%d", &dodajdoB);
  604.                         switch(dodajdoB)
  605.                         {
  606.                             case 1:
  607.                                 while(tmp->next)
  608.                                 {
  609.                                 tmp = tmp->next;
  610.                                 }
  611.                                 tmp->next = (ADRESB)malloc(sizeof(LISTAB));
  612.                                 tmp = tmp->next;
  613.                                 tmp->next = NULL;
  614.                                 printf("Uzupelnij brakujace informacje o ksiazce:\n");
  615.                                 printf("Podaj rok wydania ksiazki: ");
  616.                                 fflush(stdin);
  617.                                 scanf("%d", &tmp->data.Rok);
  618.                                 printf("Podaj wydawnictwo: ");
  619.                                 fflush(stdin);
  620.                                 gets(tmp->data.Wydawnictwo);
  621.                                 printf("Podaj typ ksiazki (np.: kryminal, dramat, poradnik, itd.: ");
  622.                                 fflush(stdin);
  623.                                 gets(tmp->data.Typ);
  624.  
  625.                                 system("cls");
  626.                                 printf("Ksiazka zostala dodana do listy Biblioteka.\n\n");
  627.                                 break;
  628.  
  629.                             case 2:
  630.                                 printf("Ksiazka pozostala w liscie 'Biblioteka'");
  631.                                 break;
  632.                         }break;
  633.                 }break;
  634.  
  635.             case 5: //SORTOWANIE
  636.                 printf("Wedlug jakiej kategorii chcesz posortowac? \n1. Autorzy \n2. Tytuly\n");
  637.                 fflush(stdin);
  638.                 scanf("%d", &sort);
  639.                 switch(sort)
  640.                 {
  641.                     case 1:
  642.                         SortujAutorzyB(first);
  643.                         printf("\n\nWcisnij dowolny klawisz, aby powrocic do menu.\n\n");
  644.                         getch();
  645.                         system("cls");
  646.                         break;
  647.  
  648.                     case 2:
  649.                         SortujTytulyB(first);
  650.                         printf("\n\nWcisnij dowolny klawisz, aby powrocic do menu.\n\n");
  651.                         getch();
  652.                         system("cls");
  653.                         break;
  654.                 }break;
  655.  
  656.             case 8: //WCZYTANIE I OPEROWANIE NA NOWYM PLIKU
  657.                 system("cls");
  658.                 printf("Czy zapisac dotychczasowy? \n1. TAK \n2. NIE\n");
  659.                 scanf("%d", &zapis);
  660.                 switch(zapis)
  661.                 {
  662.                     case 1:
  663.             printf("gdzie zapisac? 1 Plik:");
  664.             fflush(stdin);
  665.             gets(nazwa1);
  666.             printf("gdzie zapisac? 2 Plik:");
  667.             fflush(stdin);
  668.             gets(nazwa2);
  669.                         Zapisz(first, pierwszy, nazwa1,nazwa2);
  670.                         puts("Plik zostal zapisany.\n");
  671.  
  672.             printf("gdzie wczytac? 1 Plik:");
  673.             fflush(stdin);
  674.             gets(nazwa1);
  675.             printf("gdzie wczytac? 2 Plik:");
  676.             fflush(stdin);
  677.             gets(nazwa2);
  678.                         getch();
  679.                         Wczytaj(first, pierwszy, nazwa1, nazwa2);
  680.                         printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  681.                         getch();
  682.                         system("cls");
  683.                         break;
  684.  
  685.                     case 2: // Nie rozumiem co tu robisz
  686.                         printf("\nNazwa nowego pliku:");
  687.                         fflush(stdin);
  688.                         gets(Tytul);
  689.                         printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  690.                         getch();
  691.                         system("cls");
  692.                         break;
  693.                 } break;
  694.  
  695.             case 9: //ZAPIS DANYCH I KONIEC PROGRAMU
  696.         printf("gdzie zapisac? 1 Plik:");
  697.             fflush(stdin);
  698.             gets(nazwa1);
  699.             printf("gdzie zapisac? 2 Plik:");
  700.                 Zapisz(first, pierwszy, nazwa1, nazwa2);
  701.                 printf("Wszystkie dane zostaly zapisane.\nDo zobaczenia w drugim semestrze :)\n\n");
  702.                 break;
  703.  
  704.             }
  705.  
  706.         }while(numer>0 && numer<9);
  707.  
  708.  
  709.     return 0;
  710. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement