Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define LICZBA_PLIKOW 6
  6. #define MAKSYMALNA_DLUGOSC_TEKSTU 50
  7. #define LICZBA_TYPOW 3
  8. #define LICZBA_GATUNKOW 3
  9. char *typy_plikow_nazwy[]={"WAV","MP3","MIDI"};
  10. char *gatunki_nazwy[]={"Pop","Rock","Disco"};
  11. typedef enum{WAV,MP3,MIDI} typ;
  12. typedef enum{Pop,Rock,Disco}gatunek;
  13.  
  14.  
  15. typedef struct
  16. {
  17. char sciezka[MAKSYMALNA_DLUGOSC_TEKSTU];
  18. typ typ_pliku;
  19. unsigned int czas_trwania;
  20. char wykonawca[MAKSYMALNA_DLUGOSC_TEKSTU];
  21. char tytul[MAKSYMALNA_DLUGOSC_TEKSTU];
  22. gatunek gatunek_pliku;
  23.  
  24. }Plik;
  25.  
  26.  
  27.  
  28. void opisz_plik(Plik *wskaznik,char* path,typ typ_opis,unsigned int czas,char* wykonawca_opis,char* tytul_opis,gatunek gatunek_opis)
  29. {
  30. strcpy(wskaznik->sciezka,path);
  31. wskaznik->typ_pliku=typ_opis;
  32. wskaznik->czas_trwania=czas;
  33. strcpy(wskaznik->wykonawca,wykonawca_opis);
  34. strcpy(wskaznik->tytul,tytul_opis);
  35. wskaznik->gatunek_pliku=gatunek_opis;
  36. }
  37.  
  38. void wypisz(Plik *tablica_z_danymi,int ile)
  39. {
  40. int x;
  41. printf("\n%-25s%-15s%-15s%-15s%-15s%-5s\n","Sciezka","Typ pliku","czas trwania","wykonawca","Tytul","Gatunek");
  42. for(x=0;x<ile;x++)
  43. {
  44. printf("%-25s",tablica_z_danymi[x].sciezka);
  45. printf("%-15s",typy_plikow_nazwy[tablica_z_danymi[x].typ_pliku]);
  46. printf("%-15d",tablica_z_danymi[x].czas_trwania);
  47. printf("%-15s",tablica_z_danymi[x].wykonawca);
  48. printf("%-15s",tablica_z_danymi[x].tytul);
  49. printf("%-5s",gatunki_nazwy[tablica_z_danymi[x].gatunek_pliku]);
  50.  
  51.  
  52. printf("\n");
  53.  
  54. }
  55. }
  56.  
  57. void wyszukaj_po_sciezce(Plik **tablica_z_danymi)
  58. {
  59. char fraza[20];
  60. int i,x=0;
  61. printf("Podaj fragment scizeki");
  62. scanf("%s",fraza);
  63.  
  64. Plik* znalezione=malloc(sizeof(Plik));
  65. for(i=0;i<LICZBA_PLIKOW;i++)
  66. {
  67. if(strstr(tablica_z_danymi[i]->sciezka,fraza))
  68. {
  69. realloc(znalezione,sizeof(Plik)*(++x));
  70. znalezione[x-1]=*tablica_z_danymi[i];
  71. }
  72. else
  73. continue;
  74. }
  75. wypisz(znalezione,x);
  76.  
  77.  
  78. }
  79. void wyszukaj_po_wykonawcy(Plik **tablica_z_danymi)
  80. {
  81. char fraza[20];
  82. int i,x=0;
  83. printf("Podaj nazwe wykonawcy");
  84. scanf("%s",fraza);
  85.  
  86. Plik* znalezione=malloc(sizeof(Plik));
  87. for(i=0;i<LICZBA_PLIKOW;i++)
  88. {
  89. if(strstr(tablica_z_danymi[i]->wykonawca,fraza))
  90. {
  91. realloc(znalezione,sizeof(Plik)*(++x));
  92. znalezione[x-1]=*tablica_z_danymi[i];
  93. }
  94. else
  95. continue;
  96. }
  97. wypisz(znalezione,x);
  98.  
  99.  
  100. }
  101.  
  102. void wyszukaj_po_tytule(Plik **tablica_z_danymi)
  103. {
  104. char fraza[20];
  105. int i,x=0;
  106. printf("Podaj tytul");
  107. scanf("%s",fraza);
  108.  
  109. Plik* znalezione=malloc(sizeof(Plik));
  110. for(i=0;i<LICZBA_PLIKOW;i++)
  111. {
  112. if(strstr(tablica_z_danymi[i]->tytul,fraza))
  113. {
  114. realloc(znalezione,sizeof(Plik)*(++x));
  115. znalezione[x-1]=*tablica_z_danymi[i];
  116. }
  117. else
  118. continue;
  119. }
  120. wypisz(znalezione,x);
  121.  
  122.  
  123. }
  124.  
  125. void wyszukaj_po_czasie(Plik **tablica_z_danymi)
  126. {
  127. unsigned int czas;
  128. int i,x=0;
  129. printf("Podaj czas");
  130. scanf("%u",&czas);
  131.  
  132. Plik* znalezione=malloc(sizeof(Plik));
  133. for(i=0;i<LICZBA_PLIKOW;i++)
  134. {
  135. if(tablica_z_danymi[i]->czas_trwania==czas)
  136. {
  137. realloc(znalezione,sizeof(Plik)*(++x));
  138. znalezione[x-1]=*tablica_z_danymi[i];
  139. }
  140. else
  141. continue;
  142. }
  143. wypisz(znalezione,x);
  144. }
  145.  
  146. void wyszukaj_po_typie(Plik **tablica_z_danymi)
  147. {
  148. char fraza[20];
  149. int i,n,x=0;
  150. typ typ_podany;
  151. printf("Podaj typ pliku");
  152. scanf("%s",fraza);
  153.  
  154. Plik* znalezione=malloc(sizeof(Plik));
  155.  
  156. for(i=0;i<LICZBA_TYPOW;i++)
  157. {
  158. if(strstr(fraza,typy_plikow_nazwy[i]))
  159. {
  160. typ_podany=i;
  161. break;
  162. }
  163.  
  164. }
  165. for(n=0;n<LICZBA_PLIKOW;n++)
  166. {
  167. if(tablica_z_danymi[n]->typ_pliku==typ_podany)
  168. {
  169. realloc(znalezione,sizeof(Plik)*(++x));
  170. znalezione[x-1]=*tablica_z_danymi[n];
  171. }
  172. else
  173. continue;
  174. }
  175.  
  176. wypisz(znalezione,x);
  177. }
  178.  
  179. void wyszukaj_po_gatunku(Plik **tablica_z_danymi)
  180. {
  181. char fraza[20];
  182. int i,n,x=0;
  183. gatunek gatunek_podany;
  184. printf("Podaj gatunek pliku");
  185. scanf("%s",fraza);
  186.  
  187. Plik* znalezione=malloc(sizeof(Plik));
  188.  
  189. for(i=0;i<LICZBA_GATUNKOW;i++)
  190. {
  191. if(strstr(fraza,gatunki_nazwy[i]))
  192. {
  193. gatunek_podany=i;
  194. break;
  195. }
  196.  
  197. }
  198. for(n=0;n<LICZBA_PLIKOW;n++)
  199. {
  200. if(tablica_z_danymi[n]->gatunek_pliku==gatunek_podany)
  201. {
  202. realloc(znalezione,sizeof(Plik)*(++x));
  203. znalezione[x-1]=*tablica_z_danymi[n];
  204. }
  205. else
  206. continue;
  207. }
  208.  
  209. wypisz(znalezione,x);
  210. }
  211.  
  212.  
  213. void wyszukiwanie(Plik **tablica_z_danymi,int kryterium_szukania)
  214. {
  215. switch(kryterium_szukania)
  216. {
  217. case 1:
  218. wyszukaj_po_sciezce(tablica_z_danymi);
  219. break;
  220.  
  221. case 2:
  222. wyszukaj_po_typie(tablica_z_danymi);
  223. break;
  224.  
  225. case 3:
  226. wyszukaj_po_czasie(tablica_z_danymi);
  227. break;
  228.  
  229. case 4:
  230. wyszukaj_po_wykonawcy(tablica_z_danymi);
  231. break;
  232.  
  233. case 5:
  234. wyszukaj_po_tytule(tablica_z_danymi);
  235. break;
  236.  
  237. case 6:
  238. wyszukaj_po_gatunku(tablica_z_danymi);
  239. break;
  240. }
  241. }
  242.  
  243. int main()
  244. {
  245. int szukanie,i;
  246.  
  247. Plik *baza[LICZBA_PLIKOW];
  248. for(i=0;i<LICZBA_PLIKOW;i++)
  249. baza[i]=malloc(sizeof(Plik));
  250.  
  251. Plik *(*ptr)[]=&baza;
  252.  
  253.  
  254. opisz_plik(baza[0],"E://muzyka//dzieci5",WAV,180,"Czarodziej","Wieza Magow",Rock);
  255. opisz_plik(baza[1],"C://folder//rozne5",MP3,60,"Czarodziej","Czapki Magow",Rock);
  256. opisz_plik(baza[2],"E://muzyka//bal5",WAV,200,"MZSS","Dron",Pop);
  257. opisz_plik(baza[3],"C://folder//dzieci5",MIDI,180,"MZSS","elektronik",Pop);
  258. opisz_plik(baza[4],"C://muzyka//rozne5",WAV,300,"Zenek","Wesele",Disco);
  259. opisz_plik(baza[5],"C://muzyka//bal",WAV,180,"Zenek","Po Weselu",Disco);
  260.  
  261.  
  262. printf("Wybierz po czym wyszukac\n[1]Po sciezce dostepu \n");
  263. printf("[2]Po typie pliku\n[3]Po czasie\n[4]Po wykonawcy\n[5]Po tytule\n[6]Po gatunku\n");
  264. scanf("%d",&szukanie);
  265. wyszukiwanie(*ptr,szukanie);
  266.  
  267. return 0;
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement