Facebook
From Unreliable Peafowl, 7 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 257
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. using namespace std;
  5. struct Data {  //dekralacja struktury
  6.         int dzien;
  7.         int miesiac;
  8.         int rok;
  9.         Data(int dzien1, int miesiac1, int rok1) :dzien(dzien1), miesiac(miesiac1), rok(rok1) {};
  10. };
  11. struct utwor //dekralacja struktury
  12. {   string nazwa_utworu;
  13.         utwor *nastepny;
  14.         utwor(string nazwa) : nazwa_utworu(nazwa), nastepny(NULL) {};
  15. };
  16. struct album //dekralacja struktury
  17. {
  18.         string nazwa;
  19.         float cena;
  20.         album * nastepny;
  21.         utwor *wskaznik_utwory;
  22.         Data data;
  23.         album(string nazwa1, int cena1, int dzien1, int miesiac1, int rok1) :wskaznik_utwory(NULL),nastepny(NULL), nazwa(nazwa1), cena(cena1), data(Data(dzien1, miesiac1, rok1)) {};
  24. };
  25. struct wykonawca { //dekralacja struktury
  26.         string imie;
  27.         string nazwisko;
  28.         album * wydane_albumy;
  29.         wykonawca * nastepny;
  30.         wykonawca(string imie1, string nazwisko1) : imie(imie1),wydane_albumy(NULL),nastepny(NULL), nazwisko(nazwisko1) {};
  31. };
  32. void dodanie_albumu(album * &wskaznik, string nazwa,int cena,int dzien,int miesiac,int rok)  //dodanie albumu
  33. {
  34.         if (wskaznik == NULL)    // dodanie dla przypadku gdy nie ma zadnego albumu
  35.         {       wskaznik = new album(nazwa,cena,dzien,miesiac,rok);
  36.             cout << "dodano album : " << nazwa << endl;
  37.                 return;
  38.         }
  39.         album* wskaznik1 = wskaznik;
  40.         while (wskaznik1->nastepny != NULL) //dodanie do inncyh albumow
  41.         {
  42.                 wskaznik1 = wskaznik1->nastepny;
  43.         }
  44.         wskaznik1->nastepny = new album(nazwa, cena, dzien, miesiac, rok);
  45.         cout << "dodano album : " << nazwa << endl;
  46. }
  47. void dodanie_utworu(utwor *& wskaznik, string nazwa)  //dodanie utworu
  48. {
  49.         if (wskaznik == NULL) //opcja gdyby nie bylo autworow wczesniej
  50.         {
  51.                 wskaznik = new utwor(nazwa);
  52.                 cout << "dodano utwor : " << nazwa << endl;
  53.                 return;
  54.         }
  55.         utwor * wskaznik1 = wskaznik;
  56.         while (wskaznik1->nastepny != NULL)  //opcja dodania utworu do istniejacych
  57.         {
  58.                 wskaznik1 = wskaznik1->nastepny;
  59.         }
  60.         wskaznik1->nastepny = new utwor(nazwa);
  61.         cout << "dodano utwor : " << nazwa << endl;
  62. }
  63. void nazwa_pliku(string &nazwa_pliku)  
  64. {
  65.         cout << "Podaj nazwe pliku " << endl;
  66.         cin >> nazwa_pliku;
  67. }
  68. bool otwarcie_pliku(const string nazwa, ifstream &plik1)  
  69. {
  70.         plik1.open(nazwa);
  71.         if (plik1.good() == true && plik1.is_open())
  72.         {
  73.                 cout << "Udalo sie otworzyc plik" << endl;
  74.                 return true;
  75.         }
  76.         else
  77.         {
  78.                 cout << "Otwieranie pliku sie nie powiodlo, podaj inna nazwe." << endl;
  79.                 return false;
  80.         }
  81. }
  82. void dodaj_wykonawce(wykonawca * & lista, string imie, string nazwisko) {  
  83.         if (lista == NULL) {     //opcja gdyby nie bylo wykonawcow
  84.                 cout << "dodano wykonawce : "<< imie <<"  "<< nazwisko << endl;
  85.                 lista = new wykonawca(imie, nazwisko);
  86.                 return;
  87.         }
  88.         wykonawca* lista1 = lista;
  89.         while (lista1->nastepny != NULL)   //dodanie wykonawcow do istniejacych
  90.         {
  91.                 lista1 = lista1->nastepny;
  92.         }
  93.                 lista1->nastepny = new wykonawca(imie, nazwisko);
  94.                 cout << "dodano wykonawce : " << imie <<" "<< nazwisko << endl;
  95.         }
  96. void dodaj_album_do_wykonawcy(wykonawca *&wskaznik, string imie, string nazwisko, string nazwa1, int cena, int dzien, int miesiac, int rok)
  97. {  
  98.         if (wskaznik == NULL)     // jesli nie ma wykonawcy to nie ma komu przypisac albumu wiec wracamy
  99.         {
  100.                 return;
  101.         }
  102.         if (wskaznik->imie == imie && wskaznik->nazwisko == nazwisko)  //jesli odnajudjemy odpowiedniego wykonawce dodajemy do niego album
  103.         {
  104.                 dodanie_albumu(wskaznik->wydane_albumy, nazwa1, cena, dzien, miesiac, rok); //wykorzystanie funkcji ktora umozliwi dodanie albumu
  105.                 return;
  106.         }
  107.         wykonawca *wskaznik1 = wskaznik;
  108.         while (wskaznik1->nastepny != NULL)   //szukanie posrod wykonawcow wlasciwego
  109.         {
  110.                 if (wskaznik1->nastepny->imie == imie && wskaznik1->nastepny->nazwisko == nazwisko) {
  111.                         dodanie_albumu(wskaznik1->nastepny->wydane_albumy, nazwa1, cena, dzien, miesiac, rok);
  112.                         return;
  113.                 }
  114.                 else
  115.                         wskaznik1 = wskaznik1->nastepny;
  116.         }
  117. }
  118. void dodaj_utwor_do_albumu(string nazwa_utworu, wykonawca *wskaznik_wykonawca,string imie, string nazwisko, string nazwa1)
  119. {  
  120.         if (wskaznik_wykonawca == NULL)    
  121.                 //dodawanie do pierwszego wykonawcy
  122.                 //jesli nie ma wykonawcy to i nie ma albumu wiec wracamy
  123.         {
  124.                 return;
  125.         }
  126.         if (wskaznik_wykonawca->imie == imie && wskaznik_wykonawca->nazwisko == nazwisko)
  127.         {
  128.                 if (wskaznik_wykonawca->wydane_albumy == NULL)  //jesli odnajdziemy wykonawce ale nie ma albumu to wracamy
  129.                 {
  130.                         return;
  131.                 }
  132.                 if (wskaznik_wykonawca->wydane_albumy->nazwa == nazwa1) //dodanie albumu jesli pierwszy album jest zgodny
  133.                 {
  134.                         dodanie_utworu(wskaznik_wykonawca->wydane_albumy->wskaznik_utwory, nazwa_utworu);
  135.                         return;
  136.                 }
  137.                 while (wskaznik_wykonawca->wydane_albumy->nastepny != NULL)  //szukanie albumu wykonawcy ktory podal uzytkownik
  138.                 {
  139.                         if (wskaznik_wykonawca->wydane_albumy->nastepny->nazwa == nazwa1)
  140.                         {
  141.                                 dodanie_utworu(wskaznik_wykonawca->wydane_albumy->nastepny->wskaznik_utwory, nazwa_utworu);
  142.                                 return;
  143.                         }
  144.                         else
  145.                                 wskaznik_wykonawca->wydane_albumy = wskaznik_wykonawca->wydane_albumy->nastepny;
  146.                 }
  147.                 return;
  148.         }
  149.         wykonawca *wskaznik1 = wskaznik_wykonawca;
  150.         while (wskaznik1->nastepny != NULL)  //szukanie odpowiedniego wykonawcy w pozostalych mozliwosciach i albumu wykonawcy  
  151.         {
  152.                 if (wskaznik1->nastepny->imie == imie && wskaznik1->nastepny->nazwisko == nazwisko) {
  153.                         if (wskaznik1->wydane_albumy == NULL)
  154.                         {
  155.                                 return;
  156.                         }
  157.                         if (wskaznik1->nastepny->wydane_albumy->nazwa == nazwa1)
  158.                         {
  159.                                 dodanie_utworu(wskaznik1->nastepny->wydane_albumy->wskaznik_utwory, nazwa_utworu);
  160.                                 return;
  161.                         }
  162.                         while (wskaznik1->nastepny->wydane_albumy->nastepny != NULL)
  163.                         {
  164.                                 if (wskaznik1->nastepny->wydane_albumy->nastepny->nazwa == nazwa1)
  165.                                 {
  166.                                         dodanie_utworu(wskaznik1->nastepny->wydane_albumy->nastepny->wskaznik_utwory, nazwa_utworu);
  167.                                         return;
  168.                                 }
  169.                                 else
  170.                                         wskaznik1->nastepny->wydane_albumy = wskaznik1->nastepny->wydane_albumy->nastepny;
  171.                         }
  172.                 }
  173.                         else
  174.                                 wskaznik1 = wskaznik1->nastepny;
  175.                         }
  176. }
  177. void czytaj_z_pliku(wykonawca * & wykonawca1, ifstream & plik)  //wczytanie z pliku
  178. {   wykonawca *wskaznik1 = wykonawca1;
  179.         string słowo, nazwa1, nazwisko, imie, utwor1;
  180.         int cena, dzien, miesiac, rok;
  181.         while (plik) {
  182.                 słowo = " ";
  183.                 plik >> słowo; // pobieramy slowo ktore oznajmia co jest dalej w lini w pliku odczytu
  184.                 if (słowo == "Koniec")
  185.                 {
  186.                         return;
  187.                 }
  188.                 else if (słowo == "Wykonawca") {
  189.                         plik >> imie;
  190.                                 plik >> nazwisko;
  191.                         dodaj_wykonawce(wykonawca1, imie, nazwisko);  
  192.                 }
  193.                 else if (słowo == "Album") {
  194.                         plik >> nazwa1;
  195.                         plik >> cena;
  196.                         plik >> dzien;
  197.                         plik >> miesiac;
  198.                         plik >> rok;
  199.                         dodaj_album_do_wykonawcy(wykonawca1, imie, nazwisko, nazwa1, cena, dzien, miesiac, rok);
  200.                 }
  201.                 else if (słowo == "Utwor")
  202.                         {
  203.                                 plik >> utwor1;
  204.                                 dodaj_utwor_do_albumu(utwor1,wykonawca1,imie,nazwisko,nazwa1);
  205.                         }
  206.                 }
  207.         }
  208. void wyswietl_utwory(wykonawca *& wskaznik)
  209. {  wykonawca * wskaznik1 = wskaznik;
  210.         while (wskaznik1 != NULL)  //sprawdzanie czy istnieje wykonawca
  211.         {
  212.                 album *wskaznik2 = wskaznik1->wydane_albumy;
  213.                 while (wskaznik2!= NULL)  //sprawdzanie czy istnieje  album
  214.                 {
  215.                         utwor *wskaznik3 = wskaznik2->wskaznik_utwory;
  216.                         while (wskaznik3!= NULL) //sprawdzanie czy istnieje  utwor
  217.                         {
  218.                                 cout << wskaznik3->nazwa_utworu << endl;
  219.                                 wskaznik3 = wskaznik3->nastepny; //przejscie po utworach w albumie
  220.                         }
  221.                         wskaznik2= wskaznik2->nastepny; //przejscie po albumach wykonawcy
  222.                 }
  223.                 wskaznik1 = wskaznik1->nastepny; //przejscie po wykonawcach
  224.         }
  225. }
  226. void wyswietl_albumy(wykonawca *& wskaznik)
  227. {       wykonawca * wskaznik1 = wskaznik;
  228.         while (wskaznik1 != NULL)  //sprawdzanie czy istnieje wykonawca
  229.         {
  230.                 album *wskaznik2 = wskaznik1->wydane_albumy;  
  231.                 while (wskaznik2 != NULL) //sprawdzanie czy istnieje album
  232.                 {
  233.                         cout << wskaznik2->nazwa << endl;
  234.                         wskaznik2 = wskaznik2->nastepny; //przejscie po albumach wykonawcy
  235.                 }
  236.                 wskaznik1 = wskaznik1->nastepny; //przejscie po wykonawcach
  237.         }
  238. }
  239. void wyswietl_wykonawcy(wykonawca *& wskaznik)
  240. {
  241.         wykonawca * wskaznik1 = wskaznik;
  242.         while (wskaznik1 != NULL) //sprawdzanie czy istnieje  wykonawca
  243.         {
  244.                 cout << wskaznik1->imie << " " << wskaznik1->nazwisko << endl;
  245.                 wskaznik1 = wskaznik1->nastepny; //przejscie po wykonawcach
  246.         }
  247. }
  248. void wyswietl_date_podanego_albumu(wykonawca *& wskaznik, string nazwa_albumu)
  249. {
  250.         wykonawca * wskaznik1 = wskaznik;
  251.         while (wskaznik1 != NULL) //sprawdzanie czy istnieje wykonawca
  252.         {
  253.                 album * wskaznik2 = wskaznik1->wydane_albumy;
  254.                 while (wskaznik2 != NULL) //sprawdzanie czy istnieje album
  255.                 {
  256.                         if (wskaznik2->nazwa == nazwa_albumu)
  257.                         {
  258.                                 cout << "Data wydania " << wskaznik2->nazwa << " to " << wskaznik2->data.dzien << "-" << wskaznik2->data.miesiac << "-" << wskaznik2->data.rok << endl;
  259.                                 return;
  260.                         }
  261.                         wskaznik2 = wskaznik2->nastepny; //przejscie po albumach wykonawcy
  262.                 }
  263.                 wskaznik1 = wskaznik1->nastepny;  //przejscie po wykonawcach
  264.         }
  265.         cout << "Nie ma takiego albumu." << endl;
  266. }
  267. void wyswietl_cene_podanego_albumu(wykonawca*&wskaznik,string nazwa_albumu)
  268. {
  269.         wykonawca * wskaznik1 = wskaznik;
  270.         while (wskaznik1 != NULL) //sprawdzanie czy istnieje wykonawca
  271.         {
  272.                 album * wskaznik2 = wskaznik1->wydane_albumy;
  273.                 while (wskaznik2 != NULL) //sprawdzenie czy istnieje album
  274.                 {
  275.                         if (wskaznik2->nazwa == nazwa_albumu)
  276.                         {
  277.                                 cout << "Cena albumu " << wskaznik2->nazwa << " wynosi " << wskaznik2->cena<< endl;
  278.                                 return;
  279.                         }
  280.                         wskaznik2 = wskaznik2->nastepny;  //przejscie po albumach wykonawcy
  281.                 }
  282.  
  283.                 wskaznik1 = wskaznik1->nastepny; //przejscie po wykonawcach
  284.         }
  285.         cout << "Nie ma takiego albumu." << endl;
  286. }
  287. bool szukanie1(wykonawca*&wskaznik, string nazwa_albumu)  //funkcja ta pomaga w odnalezienu albumu przy wpisyawniu przez uzytkownika gdy chce dodac utwor do albumu
  288. {  wykonawca* wskaznik1 = wskaznik;
  289.         while (wskaznik1 != NULL)
  290.         {
  291.                 while (wskaznik1->wydane_albumy != NULL)
  292.                 {
  293.                         if (wskaznik1->wydane_albumy->nazwa == nazwa_albumu)
  294.                         {
  295.                                 return true;
  296.                         }
  297.                         else
  298.                         {
  299.                                 wskaznik1->wydane_albumy = wskaznik1->wydane_albumy->nastepny;
  300.                         }
  301.                 }
  302.                 wskaznik1 = wskaznik1->nastepny;
  303.         }
  304.         return false;
  305. }
  306. string szukanie_imienia(wykonawca*&wskaznik, string nazwa_albumu) //funkcja wykorzystana w odnalezieniu imieina wykonawcy (czy ten wykonawca istnieje) gdy uzytkowni chce dodac utwor do albumu
  307. {
  308.         string imie1;
  309.         wykonawca* wskaznik1 = wskaznik;
  310.         while (wskaznik1 != NULL)
  311.         {
  312.                 while (wskaznik1->wydane_albumy != NULL)
  313.                 {
  314.                         if (wskaznik1->wydane_albumy->nazwa == nazwa_albumu)
  315.                         {
  316.                                 imie1 = wskaznik1->imie;
  317.                                 return imie1;
  318.                         }
  319.                         else
  320.                         {
  321.                                 wskaznik1->wydane_albumy = wskaznik1->wydane_albumy->nastepny;
  322.                         }
  323.                 }
  324.                 wskaznik1 = wskaznik1->nastepny;
  325.         }
  326.         return "nie ma takiego imienia";
  327. }
  328. string szukanie_nazwiska(wykonawca*&wskaznik, string nazwa_albumu) //funkcja wykorzystana w odnalezieniu nazwiska wykonawcy (czy ten wykonawca istnieje) gdy uzytkowni chce dodac utwor do albumu
  329. {
  330.         string nazwisko1;
  331.         wykonawca* wskaznik1 = wskaznik;
  332.         while (wskaznik1 != NULL)
  333.         {
  334.                 while (wskaznik1->wydane_albumy != NULL)
  335.                 {
  336.                         if (wskaznik1->wydane_albumy->nazwa == nazwa_albumu)
  337.                         {
  338.                                 nazwisko1 = wskaznik1->nazwisko;
  339.                                 return nazwisko1;
  340.                         }
  341.                         else
  342.                         {
  343.                                 wskaznik1->wydane_albumy = wskaznik1->wydane_albumy->nastepny;
  344.                         }
  345.                 }
  346.                 wskaznik1 = wskaznik1->nastepny;
  347.         }
  348.         return "nie ma takiego nazwiska";
  349. }
  350. bool szukanie3(wykonawca*&wskaznik, string nazwisko1,string imie1) //sprawdza czy podany album mozna przypisac wykonnawcy wpiasnemu przez uzytkowanika (czy istnieje wykonawca)
  351. {
  352.         string nazwisko, imie;
  353.         wykonawca*wskaznik1 = wskaznik;
  354.         while (wskaznik1 != NULL)
  355.         {
  356.                 if (wskaznik1->nazwisko == nazwisko1 && wskaznik1->imie == imie1 )
  357.                 {
  358.                         return true;
  359.                 }
  360.                 else
  361.                 {
  362.                         wskaznik1 = wskaznik1->nastepny;
  363.                 }
  364.         }
  365.         return false;
  366. }
  367. void usuwanie_wykonawcy(wykonawca *& wskaznik, string imie1,string nazwisko1)  
  368. {
  369.         wykonawca * wskaznik1 = wskaznik;
  370.         if (wskaznik1 != NULL)  //sprawdzenie czy wykonawcy wogole sa w bazie dancyh
  371.         {
  372.                 if (wskaznik1->imie == imie1 && wskaznik1->nazwisko == nazwisko1)
  373.                 {
  374.                         wskaznik = wskaznik1->nastepny;
  375.                         delete wskaznik1;
  376.                         cout << "usunieto wykonawce o imieniu " << imie1 <<"i nazwisku "<<nazwisko1 <<endl;
  377.                         return;
  378.                 }
  379.                 wykonawca *wskaznik2 = wskaznik1->nastepny;
  380.                         while (wskaznik1 != NULL)  //przejscie po kolejnych wykonawcach
  381.                         {
  382.                                 if (wskaznik2->nazwisko == nazwisko1 && wskaznik2->imie == imie1)
  383.                                 {
  384.                                         wskaznik2 = wskaznik2->nastepny;
  385.                                         delete wskaznik1->nastepny;
  386.                                         wskaznik1->nastepny = wskaznik2;
  387.                                         cout << "usunieto wykonawce o imieniu"<<imie1<<"i nazwisku"<<nazwisko1<< endl;
  388.                                         return;
  389.                                 }
  390.        
  391.                                 wskaznik2 = wskaznik2->nastepny;
  392.                            wskaznik1 = wskaznik1->nastepny;
  393.                         }      
  394.         }
  395.         cout << "nie ma takiego wykonawcy" << endl;
  396. }
  397. void wyswietl_wykonawce_podanego_utworu(wykonawca *& wskaznik, string nazwa_utworu)
  398. {
  399.         wykonawca * wskaznik1 = wskaznik;
  400.         while (wskaznik1 != NULL)  //sprawdzenie czy wykonawca istnieje
  401.         {
  402.                 album*wskaznik2 = wskaznik1->wydane_albumy;
  403.                 while (wskaznik2 != NULL) //program musi sprawdzic tez album
  404.                 {
  405.                         utwor*wskaznik3 = wskaznik2->wskaznik_utwory;
  406.                         while (wskaznik3 != NULL)  //przejscie po kolejnych utworach albumu
  407.                         {
  408.                                 if (wskaznik3->nazwa_utworu == nazwa_utworu)
  409.                                 {
  410.                                         cout << "Wykonawca tego utworu jest " << wskaznik1->imie << " " << wskaznik1->nazwisko << endl;
  411.                                         return;
  412.                                 }
  413.                                 wskaznik3 = wskaznik3->nastepny;
  414.                         }
  415.                         wskaznik2 = wskaznik2->nastepny;
  416.                 }
  417.                 wskaznik1 = wskaznik1->nastepny;
  418.         }
  419.         cout << "Nie ma takiego utworu." << endl;
  420. }
  421. void zapis_do_pliku(wykonawca *& wskaznik, ofstream &plik)
  422. {
  423.         wykonawca * wskaznik1=wskaznik;
  424.         while (wskaznik1 != NULL)  
  425.         {
  426.                 plik << "Wykonawca " << wskaznik1->imie << " " << wskaznik1->nazwisko << endl;
  427.                 while (wskaznik1->wydane_albumy != NULL)
  428.                 {
  429.                         plik << "Album " << wskaznik1->wydane_albumy->nazwa << " " << wskaznik1->wydane_albumy->cena << " " << wskaznik1->wydane_albumy->data.dzien << " " << wskaznik1->wydane_albumy->data.miesiac << " " << wskaznik1->wydane_albumy->data.rok << endl;
  430.                         while (wskaznik1->wydane_albumy->wskaznik_utwory != NULL)
  431.                         {
  432.                                 plik << "Utwor " << wskaznik1->wydane_albumy->wskaznik_utwory->nazwa_utworu << endl;
  433.                                 wskaznik1->wydane_albumy->wskaznik_utwory = wskaznik1->wydane_albumy->wskaznik_utwory->nastepny; //przejscie po kolejnych utworach
  434.                         }
  435.                         wskaznik1->wydane_albumy = wskaznik1->wydane_albumy->nastepny; //przejscie po albumach
  436.  
  437.                 }
  438.                 wskaznik1 = wskaznik1->nastepny; //przejscie po wykonawcach
  439.         }
  440. }
  441. void zapis_do_pliku2(wykonawca *wskaznik) //tworzenie pliku do zapisu
  442. {
  443.         string nazwa_pliku;
  444.         cout << "podaj nazwe pliku do ktorego chcesz zapisac dane po ukonczeniu pracy" << endl;
  445.         cin >> nazwa_pliku;
  446.         ofstream plik_do_zapisu(nazwa_pliku, ios::out);
  447.         if (plik_do_zapisu.is_open())
  448.         {
  449.                 cout << "Udalo sie utworzyc plik!" << endl;
  450.                 zapis_do_pliku(wskaznik, plik_do_zapisu); //wykonanie zapisu
  451.         }
  452.         else
  453.         {
  454.                 cout << "Nie udalo sie utworzyc pliku, sprobuj jeszcze raz!" << endl;
  455.         }
  456.        
  457. }
  458. char menu()
  459. {
  460.         char znak;
  461.         cout << "Podaj cyfre:" << endl;
  462.         cout << "1.Wyswietl wykonawcow." << endl;
  463.         cout << "2.Wyswietl albumy." << endl;
  464.         cout << "3.Wyswietl utwory." << endl;
  465.         cout << "4.Dodaj utwor do albumu." << endl;
  466.         cout << "5.Dodaj album do wykonawcy." << endl;
  467.         cout << "6.Dodaj wykonawce."<<endl;
  468.         cout << "7.Usuwanie wykonawcow." << endl;
  469.         cout << "8.Wyswietl date podanego albumu." << endl;
  470.         cout << "9.Wyswietl cene podanego albumu." << endl;
  471.         cout << "a.Wyswietl wykonawce podanego utworu" << endl;
  472.         cout << "Wybor literki 'k' oznacza koniec mozliwosci wyboru opcji." << endl;
  473.         cin >> znak;
  474.         return znak;
  475. }
  476. int main()
  477. {
  478.         ifstream plik_do_odczytu;
  479.         ofstream nazwa_pliku_do_zapisu;
  480.         string cos, nazwa_utworu, nazwa_albumu, imie, nazwisko;  //dane ktore wpisuje uzytkownik
  481.         char znak1;
  482.         int cena, dzien, miesiac, rok;
  483.         wykonawca * wykonawca1 = NULL;
  484.         nazwa_pliku(cos);
  485.         bool otwarcie_pliku1;
  486.         otwarcie_pliku1 = otwarcie_pliku(cos, plik_do_odczytu);  //sprawdznie czy plik z danymi istnieje i sie  otworzyl
  487.         if (otwarcie_pliku1)
  488.         {
  489.                 czytaj_z_pliku(wykonawca1, plik_do_odczytu);
  490.         }
  491.         else
  492.         {
  493.                 system("pause");
  494.                 return 0;
  495.         }
  496.         char znak = menu();
  497.         while (znak != 'k')
  498.         {
  499.                 switch (znak) //realizacja wybranej opcji
  500.                 {
  501.                 case'1':
  502.                         cout << "Wykonawcy: " << endl;
  503.                         wyswietl_wykonawcy(wykonawca1);
  504.                         break;
  505.  
  506.                 case'2': cout << "Albumy:" << endl;
  507.                         wyswietl_albumy(wykonawca1);
  508.                         break;
  509.  
  510.                 case'3':
  511.                 { cout << "Utwory" << endl;
  512.                 wyswietl_utwory(wykonawca1);
  513.                 break; }
  514.  
  515.                 case'4':
  516.                         cout << "Podaj nazwe utworu" << endl;
  517.                         cin >> nazwa_utworu;
  518.                         cout << "Podaj nazwe albumu" << endl;
  519.                         cin >> nazwa_albumu;
  520.                         imie = szukanie_imienia(wykonawca1, nazwa_albumu);
  521.                         nazwisko = szukanie_nazwiska(wykonawca1, nazwa_albumu);
  522.                         if (imie == "nie ma takeigo imienia" || nazwisko == "nie ma takiego nazwiska")
  523.                         {
  524.                                 cout << "Nie ma takiego albumu!" << endl;
  525.                                 break;
  526.                         }
  527.                         if (szukanie1(wykonawca1, nazwa_albumu) == false)
  528.                         {
  529.                                 cout << "W spisie nie ma takeigo albumu!" << endl;
  530.                                 break;
  531.                         }
  532.                         else
  533.                                 dodaj_utwor_do_albumu(nazwa_utworu, wykonawca1, imie, nazwisko, nazwa_albumu);
  534.                         break;
  535.  
  536.                 case'5':
  537.                         cout << "Podaj nazwe albumu." << endl;
  538.                         cin >> nazwa_albumu;
  539.                         cout << "Podaj imie wykonawcy ktoremu chcesz dodac album." << endl;
  540.                         cin >> imie;
  541.                         cout << "Podaj nazwisko wykonawcy." << endl;
  542.                         cin >> nazwisko;
  543.                         cout << "Podaj cene dodanego albumu" << endl;
  544.                         cin >> cena;
  545.                         while (!cin && cena > 0)
  546.                         {
  547.                                 cin.clear();
  548.                                 cin.ignore(100, 'n');
  549.                                 cout << "Podaj jescze raz" << endl;
  550.                                 cin >> cena;
  551.                         }
  552.                         cout << "Podaj dzien wydania dodanego albumu" << endl;
  553.                         cin >> dzien;
  554.                         while (!cin && cena > 0 && cena < 32)
  555.                         {
  556.                                 cin.clear();
  557.                                 cin.ignore(100, 'n');
  558.                                 cout << "Podaj jescze raz" << endl;
  559.                                 cin >> dzien;
  560.                         }
  561.                         cout << "Podaj miesiac wydania dodanego albumu" << endl;
  562.                         cin >> miesiac;
  563.                         while (!cin && miesiac > 0 && miesiac < 13)
  564.                         {
  565.                                 cin.clear();
  566.                                 cin.ignore(100, 'n');
  567.                                 cout << "Podaj jescze raz" << endl;
  568.                                 cin >> miesiac;
  569.                         }
  570.                         cout << "Podaj rok wydania dodanego albumu" << endl;
  571.                         cin >> rok;
  572.                         while (!cin && rok > 0)
  573.                         {
  574.                                 cin.clear();
  575.                                 cin.ignore(100, 'n');
  576.                                 cout << "Podaj jescze raz" << endl;
  577.                                 cin >> rok;
  578.                         }
  579.                         if (szukanie3(wykonawca1, nazwisko, imie) == false)
  580.                                 cout << "W spisie nie ma takeigo wykonawcy!" << endl;
  581.                         else
  582.                                 dodaj_album_do_wykonawcy(wykonawca1, imie, nazwisko, nazwa_albumu, cena, dzien, miesiac, rok);
  583.                         break;
  584.                 case'6':
  585.                         cout << "Podaj imie  wykonawcy" << endl;
  586.                         cin >> imie;
  587.                         cout << "Podaj nazwisko wykonawcy" << endl;
  588.                         cin >> nazwisko;
  589.                         dodaj_wykonawce(wykonawca1, imie, nazwisko);
  590.                         break;
  591.                 case'7':
  592.                         cout << "Podaj imie wykonawcy ktorego chcesz usunac" << endl;
  593.                         cin >> imie;
  594.                         cout << "Podaj nazwisko wykonawcy ktorego chcesz usunac" << endl;
  595.                         cin >> nazwisko;
  596.                         usuwanie_wykonawcy(wykonawca1, imie, nazwisko);
  597.                         break;
  598.                 case '8':
  599.                         cout << "Podaj album ktorego date chcesz sprwadzic" << endl;
  600.                         cin >> nazwa_albumu;
  601.                         wyswietl_date_podanego_albumu(wykonawca1, nazwa_albumu);
  602.                         break;
  603.                 case '9':
  604.                         cout << "Podaj album którego cene chcesz sprawdzic" << endl;
  605.                         cin >> nazwa_albumu;
  606.                         wyswietl_cene_podanego_albumu(wykonawca1, nazwa_albumu);
  607.                         break;
  608.                 case 'a':
  609.                         cout << "Podaj utwor ktorego wykonawce chcesz sprwadzic" << endl;
  610.                         cin >> nazwa_utworu;
  611.                         wyswietl_wykonawce_podanego_utworu(wykonawca1, nazwa_utworu);
  612.                         break;
  613.                 default:
  614.                         cout << "zly znak" << endl;
  615.                         break;
  616.                 }
  617.                 char znaczek;
  618.                 cout << "Twoj wybor zostal zrealizowany. Chcesz cos jesscze wykonac ('T') ?" << endl;
  619.                 cin >> znaczek;
  620.                 if (znaczek == 'T')
  621.                         znak = menu();
  622.                 else
  623.                 {
  624.                         zapis_do_pliku2(wykonawca1); //zapsianie do pliku
  625.                         system("pause");
  626.                         return 0;
  627.                 }
  628.         }
  629. }
  630.