Facebook
From Sweet Pintail, 5 Years ago, written in C.
Embed
Download Paste or View Raw
Hits: 230
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define FORMAT 5
  6. #define NAZWYK 44
  7. #define NAZKAW 60
  8. #define NAZGAT 20
  9. #define ILEKAW 5
  10. #define TRALEN 420
  11.  
  12. int mystrcmp(char* str1, char* str2)
  13. {
  14.     int flag, i=0, m = 0;
  15.     int koniec = 0;
  16.     if(strlen(str1)>strlen(str2))
  17.     {
  18.         char* tmp = str1;
  19.         str1 = str2;
  20.         str2 = tmp;
  21.     }
  22.     do
  23.     {
  24.         flag=(str1[m]==str2[i]);
  25.         if (flag==1)
  26.         {
  27.             m+=1;
  28.         }
  29.         else
  30.         {
  31.             m = 0;
  32.         }
  33.         if (str1[m]==0)
  34.         {
  35.             koniec = 1;
  36.         }
  37.         if(str2[i]==0 && str1[m]==0)
  38.         {
  39.             koniec = 1;
  40.         }
  41.         else
  42.         {
  43.             if(str2[i]==0)
  44.             {
  45.                 flag = 0;
  46.                 koniec = 1;
  47.             }
  48.         }
  49.         i+=1;
  50.     }
  51.     while(koniec != 1);
  52.     return flag;
  53. }
  54.  
  55. struct Kawalek
  56. {
  57. char sciezka[TRALEN];
  58. char tytul[NAZKAW];
  59. char wykonawca[NAZWYK];
  60. char gatunek[NAZGAT];
  61. float czas;
  62. int nr;
  63. char format[FORMAT];
  64. };
  65.  
  66. void co_to_za_kawalek(struct Kawalek* v, char* tytul, char* wykonawca, char* gatunek, float czas, int nr, char* sciezka, char* format)
  67. {   strcpy( v -> format, format);
  68.     strcpy( v -> sciezka, sciezka);
  69.     strcpy( v -> tytul, tytul);
  70.     strcpy( v -> wykonawca, wykonawca);
  71.     strcpy( v -> gatunek, gatunek);
  72.     v-> czas = czas;
  73.     v-> nr = nr;
  74. }
  75.  
  76.  
  77.  
  78.  void szukajka_kawalek (struct Kawalek* v, char* tytul, char* wykonawca, char* gatunek)
  79.  {
  80.  
  81.  
  82.      char opcja;
  83.      printf("Mozesz wyszukac dany kawalek z biblioteki, korzystajac z jego roznych parametrow.\n");
  84.      printf("Jezeli za pomoca tytulu - wpisz t.\n");
  85.      printf("Wykonawcy? No to wpisz w.\n");
  86.      printf("Za pomoca gatunku? - Wpisz g\n");
  87.      scanf(" %c", &opcja);
  88.  
  89.  
  90.      if(opcja=='t')
  91.         {
  92.             printf("Wprowadzono wyszukiwanie za pomoca tytulu. Wpisz tytul piosenki.\n");
  93.             printf("Kazde slowo zaczyna sie od wielkiej litery, pomin polskie znaki.");
  94.  
  95.         }
  96.     else if(opcja=='w')
  97.         {
  98.  
  99.  
  100.          printf("Wprowadzono wyszukiwanie za pomoca nazwy wykonawcy. Czyje wykonanie program ma znalezc?\n");
  101.          char* szukaj = (char*) malloc(NAZWYK);
  102.          if(mystrcmp(szukaj, &kaw1->wykonawca)==1)
  103.          {
  104.            printf("Szukany wykonawca to %s, jego kawalek to %s\n", kaw1.wykonawca, kaw1.tytul);
  105.          }
  106.  
  107.         }
  108.  
  109.  
  110.  
  111.  
  112.  
  113.     else if(opcja=='g')
  114.         printf("Wprowadzono wyszukiwanie za pomoca gatunku. Podaj go.\n");
  115.  
  116.     printf("Wprowadzono wywolanie nieprzewidzianej metody wyszukiwania\n");
  117.  }
  118.  
  119.  
  120. void print_info_kawalek(struct Kawalek* v)
  121. {
  122.     printf("Numer na liscie: %d, tytul brzmi %s, wykonawca to %s, \n nalezy do gatunku <%s> i trwa %.2f.\n", v->nr, v->tytul, v->wykonawca, v->gatunek, v->czas);
  123.     printf("Sciezka do kawalka brzmi %s, plik jest w formacie %s\n\n", v->sciezka, v->format);
  124. }
  125.  
  126. int main()
  127. {
  128.     char s_czy_w;
  129.     struct Kawalek kaw1, kaw2, kaw3, kaw4, kaw5;
  130. printf("W bibliotece znajduje sie %d kawalkow \n", ILEKAW);
  131. co_to_za_kawalek(&kaw1, "She Loves You", "The Beatles", "Rock", 2.25, 1, "C:/Desktop/PRM/Lab6/SheLovesYou.mp3", ".mp3");
  132. co_to_za_kawalek(&kaw2, "Everybody Loves Somebody", "Dean Martin", "Jazz", 2.46, 2, "C:/Desktop/PRM/Lab6/EverybodyLovesSomebody.wav", ".wav");
  133. co_to_za_kawalek(&kaw3, "As Tears Go By", "The Rolling Stones", "Rock", 2.51, 3, "C:/Desktop/PRM/Lab6/AsTearsGoBy.mp3", ".mp3");
  134. co_to_za_kawalek(&kaw4, "All Along The Watchtower", "Bob Dylan", "Folk", 2.31, 4, "C:/Desktop/PRM/Lab6/AllAlongTheWatchtower.mp3", ".mp3w");
  135. co_to_za_kawalek(&kaw5, "All Along The Watchtower", "Jimi Hendrix", "Rock", 4.00, 5, "C:/Desktop/PRM/Lab6/AllAlongTheWatchtower.wav", ".wav");
  136.  
  137. printf("Wypisac liste utworow (w) czy wyszukac wyniku/wynikow o danej cesze(s)?\n");
  138. scanf(" %c", &s_czy_w);
  139.         switch(s_czy_w){
  140.                 case 's':
  141.                     {       szukajka_kawalek();
  142.  
  143.                             break;
  144.                     }
  145.                 case 'w':
  146.                     {
  147.  
  148.                             print_info_kawalek(&kaw1);
  149.                             print_info_kawalek(&kaw2);
  150.                             print_info_kawalek(&kaw3);
  151.                             print_info_kawalek(&kaw4);
  152.                             print_info_kawalek(&kaw5);
  153.                             break;
  154.                     }
  155.                         }
  156. return 0;
  157. }
  158.