Facebook
From Paltry Sheep, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 246
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4. using namespace std;
  5. struct Data {
  6.         int dzien;
  7.         int miesiac;
  8.         int rok;
  9.         Data(int dzien1, int miesiac1, int rok1) :dzien(dzien1), miesiac(miesiac1), rok(rok1) {};
  10.         void Wypisz() {
  11.                 cout << dzien << "-" << miesiac << "-" << rok << endl;
  12.         }
  13. };
  14. struct utwor
  15. {
  16.         string nazwa_utworu;
  17.         utwor *nastepny;
  18. };
  19. struct album
  20. {
  21.         string nazwa;
  22.         float cena;
  23.         album * nastepny;
  24.         utwor *wskaznik_utwory;
  25.         Data data;
  26.         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)) {};
  27. };
  28. struct wykonawca {
  29.         string imie;
  30.         string nazwisko;
  31.         album * wydane_albumy;
  32.         wykonawca * nastepny;
  33.         wykonawca(string imie1, string nazwisko1) : imie(imie1),wydane_albumy(NULL),nastepny(NULL), nazwisko(nazwisko1) {};
  34.         void Danewykonawycy() {
  35.                 cout << nazwisko << endl;
  36.                 cout << imie << endl;
  37.         }
  38. };
  39. void dodanie_albumu(album * wskaznik, string nazwa,int cena,int dzien,int miesiac,int rok)
  40. {
  41.         if (wskaznik == NULL) {
  42.  
  43.                 wskaznik = new album(nazwa,cena,dzien,miesiac,rok);
  44.                 return;
  45.         }
  46.         album* wskaznik1 = wskaznik;
  47.         while (wskaznik1->nastepny != NULL)
  48.         {
  49.                 wskaznik1 = wskaznik1->nastepny;
  50.         }
  51.         wskaznik1->nastepny = new album(nazwa, cena, dzien, miesiac, rok);
  52.         cout << "dodano " << nazwa << endl;
  53.         //sortowanie_albumow(wskaznik);
  54. }
  55. void nazwa_pliku(string &nazwa_pliku)
  56. {
  57.         cout << "podaj nazwę pliku albo wciśnij n jesli chcesz stworzyc nowa baze danych " << endl;
  58.         cin >> nazwa_pliku;
  59. }
  60. bool otwarcie_pliku(const string nazwa, ifstream &plik1)
  61. {
  62.         plik1.open(nazwa);
  63.         if (plik1.good() == true && plik1.is_open())
  64.         {
  65.                 cout << "udało sie" << endl;
  66.                 return true;
  67.         }
  68.         else
  69.         {
  70.                 cout << "Otwieranie pliku się nie powiodło!";
  71.                         return false;
  72.         }
  73. }
  74. //void sortowanie_albumow(album *&wskaznik)
  75. //{
  76. //      album * wskaz = wskaznik;
  77. //      if (wskaznik->nastepny != NULL)
  78. //      {
  79. //              if (wskaznik->nastepny->nazwa < wskaznik->nazwa)
  80. //              {
  81. //                      album * wskaz = wskaznik;
  82. //                      wskaz = wskaz->nastepny;
  83. //                      wskaznik->nastepny = wskaznik->nastepny->nastepny;
  84. //                      wskaz->nastepny = wskaznik;
  85. //                      wskaznik = wskaz;
  86. //              }
  87. //      }
  88. //      else
  89. //      {
  90. //              return;
  91. //      }
  92. //      album * wskaznik1 = wskaznik;
  93. //      while (wskaznik1->nastepny->nastepny != NULL)
  94. //      {
  95. //              if (wskaznik1->nastepny->nastepny->nazwa < wskaznik1->nastepny->nazwa)
  96. //              {
  97. //                      wskaz = wskaznik1;
  98. //                      wskaz = wskaz->nastepny;
  99. //                      wskaznik1->nastepny = wskaznik1->nastepny->nastepny;
  100. //                      wskaz->nastepny = wskaz->nastepny->nastepny;
  101. //                      wskaznik1->nastepny->nastepny = wskaz;
  102. //                      wskaznik1->nastepny->nastepny = wskaz;
  103. //                      sortowanie_albumow(wskaznik);
  104. //              }
  105. //              else
  106. //              {
  107. //                      wskaznik1 = wskaznik1->nastepny;
  108. //              }
  109. //      }
  110. //}
  111. //void sortowanie_wykonawcow(wykonawca * & wskaznik) {
  112. //      wykonawca * wskaznik2 = wskaznik;
  113. //      if (wskaznik != NULL && wskaznik->nastepny != NULL) {
  114. //              if (wskaznik->nastepny->nazwisko < wskaznik->nazwisko) {
  115. //                      wykonawca * wskaznik2 = wskaznik;
  116. //                      wskaznik2 = wskaznik2->nastepny;
  117. //                      wskaznik->nastepny = wskaznik->nastepny->nastepny;
  118. //                      wskaznik2->nastepny = wskaznik;
  119. //                      wskaznik = wskaznik2;
  120. //              }
  121. //      }
  122. //      else {
  123. //              return;
  124. //      }
  125. //      wykonawca * wskaznik1 = wskaznik;
  126. //      while (wskaznik1->nastepny->nastepny != NULL) {
  127. //              if (wskaznik1->nastepny->nastepny->nazwisko < wskaznik1->nastepny->nazwisko) {
  128. //                      wskaznik2 = wskaznik1;
  129. //                      wskaznik2 = wskaznik2->nastepny;
  130. //                      wskaznik1->nastepny = wskaznik1->nastepny->nastepny;
  131. //                      wskaznik2->nastepny = wskaznik2->nastepny->nastepny;
  132. //                      wskaznik1->nastepny->nastepny = wskaznik2;
  133. //                      sortowanie_wykonawcow(wskaznik);
  134. //              }
  135. //              else
  136. //              {
  137. //                      wskaznik1 = wskaznik1->nastepny;
  138. //              }
  139. //      }
  140. //
  141. //}
  142. //
  143. //void sortowanie_wykonawcow( wykonawca* & wskaznik) {
  144. //      wykonawca * wskaznik2 = wskaznik;
  145. //      if (wskaznik != NULL && wskaznik->nastepny != NULL) {
  146. //              if (wskaznik->nastepny->nazwisko < wskaznik->nazwisko) {
  147. //                      wykonawca * wskaznik2 = wskaznik;
  148. //                      wskaznik2 = wskaznik2->nastepny;
  149. //                      wskaznik->nastepny = wskaznik->nastepny->nastepny;
  150. //                      wskaznik2->nastepny = wskaznik;
  151. //                      wskaznik = wskaznik2;
  152. //              }
  153. //      }
  154. //      else {
  155. //              return;
  156. //      }
  157. //      wykonawca * wskaznik1 = wskaznik;
  158. //      while (wskaznik1->nastepny->nastepny != NULL) {
  159. //              if (wskaznik1->nastepny->nastepny->nazwisko < wskaznik1->nastepny->nazwisko) {
  160. //                      wskaznik2 = wskaznik1;
  161. //                      wskaznik2 = wskaznik2->nastepny;
  162. //                      wskaznik1->nastepny = wskaznik1->nastepny->nastepny;
  163. //                      wskaznik2->nastepny = wskaznik2->nastepny->nastepny;
  164. //                      wskaznik1->nastepny->nastepny = wskaznik2;
  165. //                      sortowanie_wykonawcow(wskaznik);
  166. //              }
  167. //              else
  168. //              {
  169. //                      wskaznik1 = wskaznik1->nastepny;
  170. //              }
  171. //      }
  172. //
  173. //}
  174. //void wyswietl_albumy(album* & wskaznik) {
  175. //      album * wskaznik1 = wskaznik;
  176. //      cout << endl;
  177. //      while (wskaznik != NULL) {
  178. //              cout << wskaznik->nazwa << endl;
  179. //              while(wskaznik!=NULL)
  180. //              cout << "utwory" << wskaznik->utwory << endl;;
  181. //              cout << "cena  " << wskaznik->cena << endl;
  182. //              wskaznik = wskaznik->nastepny;
  183. //              cout << endl;
  184. //      }
  185. //      wskaznik = wskaznik1;
  186. //}
  187. //void wyswietl_wykonawcow(wykonawca* & wskaznik) {
  188. //      wykonawca * wskaznik1 = wskaznik;
  189. //      cout << endl;
  190. //      while (wskaznik1 != NULL) {
  191. //              cout << wskaznik1->nazwisko << endl;
  192. //              cout << wskaznik1->imie << endl;
  193. //              wyswietl_albumy(wskaznik1->wydane_albumy);
  194. //              wskaznik1 = wskaznik1->nastepny;
  195. //              cout << endl;
  196. //      }
  197. //}
  198.  
  199. //void dodaj_album_z_pliku(album * &muzyka, string nazwa, string utwory, int cena) {
  200. //      if (muzyka == NULL) {
  201. //              muzyka = new album(nazwa,utwory, cena);
  202. //              return;
  203. //      }
  204. //      album * muzyka1 = muzyka;
  205. //      while (muzyka->nastepny != NULL) {
  206. //              muzyka = muzyka->nastepny;
  207. //      }
  208. //      muzyka->nastepny = new album(nazwa,utwory,cena);
  209. //      muzyka = muzyka1;
  210. //}
  211. void dodaj_wykonawce(wykonawca * & lista, string nazwisko, string imie) {
  212.         if (lista == NULL) {
  213.                 cout << "dodano " << imie << nazwisko << endl;
  214.                 lista = new wykonawca(nazwisko, imie);
  215.                 return;
  216.         }
  217.         wykonawca* lista1 = lista;
  218.         while (lista1->nastepny != NULL)
  219.         {
  220.                 lista1 = lista1->nastepny;
  221.         }
  222.                 lista1->nastepny = new wykonawca(nazwisko, imie);
  223.                 cout << "dodano " << imie << nazwisko << endl;
  224.                 //sortowanie_wykonawcow(lista);
  225.         }
  226.  
  227. void dodaj_album_do_wykonawcy(wykonawca *&wskaznik, string imie, string nazwisko, string nazwa1, int cena, int dzien, int miesiac, int rok)
  228. {
  229.         if (wskaznik == NULL)
  230.         {
  231.                 return;
  232.         }
  233.         if (wskaznik->imie == imie && wskaznik->nazwisko == nazwisko)
  234.         {
  235.                 dodanie_albumu(wskaznik->wydane_albumy,nazwa1,cena,dzien,miesiac,rok);
  236.         }
  237.         wykonawca *wskaznik1 = wskaznik;
  238.         while (wskaznik1->nastepny = NULL)
  239.         {
  240.                 if (wskaznik1->nastepny->imie == imie && wskaznik1->nastepny->nazwisko == nazwisko)
  241.                         dodanie_albumu(wskaznik1->wydane_albumy, nazwa1, cena, dzien, miesiac, rok);
  242.                 else
  243.                         wskaznik1 = wskaznik1->nastepny;
  244.         }
  245. }
  246. void czytaj_z_pliku(wykonawca * & wykonawca1, ifstream & plik)
  247. {   wykonawca *wskaznik1 = wykonawca1;
  248.         string słowo, nazwa1, nazwisko, imie, utwor1;
  249.         int cena, dzien, miesiac, rok;
  250.         while (plik) {
  251.                 słowo = " ";
  252.                 plik >> słowo;
  253.                 if (słowo == "Wykonawca") {
  254.                         plik >> imie;
  255.                                 plik >> nazwisko;
  256.                         dodaj_wykonawce(wykonawca1, nazwisko, imie);
  257.                 }
  258.                 else if (słowo == "Album") {
  259.                         cout << "jesr" << endl;
  260.                         plik >> nazwa1;
  261.                         plik >> cena;
  262.                         plik >> dzien;
  263.                     plik >> miesiac;
  264.                         plik >> rok;
  265.                         dodaj_album_do_wykonawcy(wykonawca1,imie,nazwisko,nazwa1,cena,dzien,miesiac,rok);
  266.                         /*      while (słowo3 == "Utwor")
  267.                         {
  268.                                 plik >> utwor1;
  269.                         }
  270.                         */
  271.                         cout << endl;
  272.                 }
  273.         }
  274. }
  275. void wyswietl_utwory(utwor *& wskaznik)
  276. {
  277.         utwor * wskaznik1 = wskaznik;
  278.         while (wskaznik1 != NULL)
  279.         {
  280.                 cout << wskaznik1->nazwa_utworu << endl;
  281.                 wskaznik1 = wskaznik1->nastepny;
  282.         }
  283. }
  284. void wyswietl_albumy(album *& wskaznik)
  285. {
  286.         album * wskaznik1 = wskaznik;
  287.         while (wskaznik1 != NULL)
  288.         {
  289.                 cout << wskaznik1->nazwa<<" "<<wskaznik1->cena<<" "<< wskaznik1->data.dzien<<" "<<wskaznik1->data.miesiac<<" "<<wskaznik1->data.rok<< endl;
  290.                 wyswietl_utwory(wskaznik1->wskaznik_utwory);
  291.                 wskaznik1 = wskaznik1->nastepny;
  292.         }
  293. }
  294. void wyswietl_wykonawcy(wykonawca *& wskaznik)
  295. {
  296.         wykonawca * wskaznik1 = wskaznik;
  297.         while (wskaznik1 != NULL)
  298.         {
  299.                 cout  << " " << wskaznik1->imie << " " << wskaznik1->nazwisko << endl;
  300.                 wyswietl_albumy(wskaznik1->wydane_albumy);
  301.                 wskaznik1 = wskaznik1->nastepny;
  302.         }
  303. }
  304. int main()
  305. {
  306.         ifstream plik_do_odczytu;
  307.         string cos;
  308.         wykonawca * wykonawca1 = NULL;
  309.         nazwa_pliku(cos);
  310.         bool otwarcie_pliku1;
  311.         otwarcie_pliku1 = otwarcie_pliku(cos, plik_do_odczytu);
  312.         if (cos == "q" || otwarcie_pliku1) {
  313.                 if (otwarcie_pliku1) {
  314.                         czytaj_z_pliku(wykonawca1,plik_do_odczytu);
  315.                 }
  316.         }
  317.         wyswietl_wykonawcy(wykonawca1);
  318.         wyswietl_albumy(wykonawca1->wydane_albumy);
  319.  
  320.         system("pause");
  321.         return 0;
  322. }
  323.