Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define LICZBA_PLIKOW 6
- #define MAKSYMALNA_DLUGOSC_TEKSTU 50
- #define LICZBA_TYPOW 3
- #define LICZBA_GATUNKOW 3
- char *typy_plikow_nazwy[]={"WAV","MP3","MIDI"};
- char *gatunki_nazwy[]={"Pop","Rock","Disco"};
- typedef enum{WAV,MP3,MIDI} typ;
- typedef enum{Pop,Rock,Disco}gatunek;
- typedef struct
- {
- char sciezka[MAKSYMALNA_DLUGOSC_TEKSTU];
- typ typ_pliku;
- unsigned int czas_trwania;
- char wykonawca[MAKSYMALNA_DLUGOSC_TEKSTU];
- char tytul[MAKSYMALNA_DLUGOSC_TEKSTU];
- gatunek gatunek_pliku;
- }Plik;
- void opisz_plik(Plik *wskaznik,char* path,typ typ_opis,unsigned int czas,char* wykonawca_opis,char* tytul_opis,gatunek gatunek_opis)
- {
- strcpy(wskaznik->sciezka,path);
- wskaznik->typ_pliku=typ_opis;
- wskaznik->czas_trwania=czas;
- strcpy(wskaznik->wykonawca,wykonawca_opis);
- strcpy(wskaznik->tytul,tytul_opis);
- wskaznik->gatunek_pliku=gatunek_opis;
- }
- void wypisz(Plik *tablica_z_danymi,int ile)
- {
- int x;
- printf("\n%-25s%-15s%-15s%-15s%-15s%-5s\n","Sciezka","Typ pliku","czas trwania","wykonawca","Tytul","Gatunek");
- for(x=0;x<ile;x++)
- {
- printf("%-25s",tablica_z_danymi[x].sciezka);
- printf("%-15s",typy_plikow_nazwy[tablica_z_danymi[x].typ_pliku]);
- printf("%-15d",tablica_z_danymi[x].czas_trwania);
- printf("%-15s",tablica_z_danymi[x].wykonawca);
- printf("%-15s",tablica_z_danymi[x].tytul);
- printf("%-5s",gatunki_nazwy[tablica_z_danymi[x].gatunek_pliku]);
- printf("\n");
- }
- }
- void wyszukaj_po_sciezce(Plik **tablica_z_danymi)
- {
- char fraza[20];
- int i,x=0;
- printf("Podaj fragment scizeki");
- scanf("%s",fraza);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_PLIKOW;i++)
- {
- if(strstr(tablica_z_danymi[i]->sciezka,fraza))
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[i];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukaj_po_wykonawcy(Plik **tablica_z_danymi)
- {
- char fraza[20];
- int i,x=0;
- printf("Podaj nazwe wykonawcy");
- scanf("%s",fraza);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_PLIKOW;i++)
- {
- if(strstr(tablica_z_danymi[i]->wykonawca,fraza))
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[i];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukaj_po_tytule(Plik **tablica_z_danymi)
- {
- char fraza[20];
- int i,x=0;
- printf("Podaj tytul");
- scanf("%s",fraza);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_PLIKOW;i++)
- {
- if(strstr(tablica_z_danymi[i]->tytul,fraza))
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[i];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukaj_po_czasie(Plik **tablica_z_danymi)
- {
- unsigned int czas;
- int i,x=0;
- printf("Podaj czas");
- scanf("%u",&czas);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_PLIKOW;i++)
- {
- if(tablica_z_danymi[i]->czas_trwania==czas)
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[i];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukaj_po_typie(Plik **tablica_z_danymi)
- {
- char fraza[20];
- int i,n,x=0;
- typ typ_podany;
- printf("Podaj typ pliku");
- scanf("%s",fraza);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_TYPOW;i++)
- {
- if(strstr(fraza,typy_plikow_nazwy[i]))
- {
- typ_podany=i;
- break;
- }
- }
- for(n=0;n<LICZBA_PLIKOW;n++)
- {
- if(tablica_z_danymi[n]->typ_pliku==typ_podany)
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[n];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukaj_po_gatunku(Plik **tablica_z_danymi)
- {
- char fraza[20];
- int i,n,x=0;
- gatunek gatunek_podany;
- printf("Podaj gatunek pliku");
- scanf("%s",fraza);
- Plik* znalezione=malloc(sizeof(Plik));
- for(i=0;i<LICZBA_GATUNKOW;i++)
- {
- if(strstr(fraza,gatunki_nazwy[i]))
- {
- gatunek_podany=i;
- break;
- }
- }
- for(n=0;n<LICZBA_PLIKOW;n++)
- {
- if(tablica_z_danymi[n]->gatunek_pliku==gatunek_podany)
- {
- realloc(znalezione,sizeof(Plik)*(++x));
- znalezione[x-1]=*tablica_z_danymi[n];
- }
- else
- continue;
- }
- wypisz(znalezione,x);
- }
- void wyszukiwanie(Plik **tablica_z_danymi,int kryterium_szukania)
- {
- switch(kryterium_szukania)
- {
- case 1:
- wyszukaj_po_sciezce(tablica_z_danymi);
- break;
- case 2:
- wyszukaj_po_typie(tablica_z_danymi);
- break;
- case 3:
- wyszukaj_po_czasie(tablica_z_danymi);
- break;
- case 4:
- wyszukaj_po_wykonawcy(tablica_z_danymi);
- break;
- case 5:
- wyszukaj_po_tytule(tablica_z_danymi);
- break;
- case 6:
- wyszukaj_po_gatunku(tablica_z_danymi);
- break;
- }
- }
- int main()
- {
- int szukanie,i;
- Plik *baza[LICZBA_PLIKOW];
- for(i=0;i<LICZBA_PLIKOW;i++)
- baza[i]=malloc(sizeof(Plik));
- Plik *(*ptr)[]=&baza;
- opisz_plik(baza[0],"E://muzyka//dzieci5",WAV,180,"Czarodziej","Wieza Magow",Rock);
- opisz_plik(baza[1],"C://folder//rozne5",MP3,60,"Czarodziej","Czapki Magow",Rock);
- opisz_plik(baza[2],"E://muzyka//bal5",WAV,200,"MZSS","Dron",Pop);
- opisz_plik(baza[3],"C://folder//dzieci5",MIDI,180,"MZSS","elektronik",Pop);
- opisz_plik(baza[4],"C://muzyka//rozne5",WAV,300,"Zenek","Wesele",Disco);
- opisz_plik(baza[5],"C://muzyka//bal",WAV,180,"Zenek","Po Weselu",Disco);
- printf("Wybierz po czym wyszukac\n[1]Po sciezce dostepu \n");
- printf("[2]Po typie pliku\n[3]Po czasie\n[4]Po wykonawcy\n[5]Po tytule\n[6]Po gatunku\n");
- scanf("%d",&szukanie);
- wyszukiwanie(*ptr,szukanie);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement