Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define max 50
  5. struct obraz{
  6. char nazwa[max];
  7. int szerokosc;
  8. int jakosc;
  9. };
  10. void wypisywanie(struct obraz *pliki,int i)
  11. {
  12. int j;
  13. printf("Nazwa szerokosc jakosc\n");
  14. for(j=0;j<i;j++)
  15. {
  16. printf("%-10s %-10d %-10d\n",pliki[j].nazwa,pliki[j].szerokosc,pliki[j].jakosc);
  17. }
  18. }
  19. void wpisywanie(struct obraz *pliki,int *i)
  20. {
  21. char nazwa[50];
  22. if(*i<50)
  23. {
  24.  
  25. printf("Podaj nazwe pliku\n");
  26. scanf("%s",&nazwa);
  27. strcpy(pliki[*i].nazwa,nazwa);
  28. printf("Podaj szerokosc pliku\n");
  29. scanf("%d",&pliki[*i].szerokosc);
  30. printf("Podaj jakosc pliku(wartosc od 0.0 do 1.0\n");
  31. scanf("%d",&pliki[*i].jakosc);
  32. (*i)++;
  33. }
  34. else
  35. printf("Nie mozna dodac wiecej\n");
  36. }
  37.  
  38.  
  39.  
  40.  
  41. void sortuj(struct obraz *posortowane,int pole,int kolejnosc,int ilosc)
  42. {
  43. struct obraz kopia;
  44. int i,a;
  45. switch (pole)
  46. {
  47. case 0:
  48. if(kolejnosc==1)
  49. {
  50. for(i=1; i<ilosc; i++)
  51. {
  52. int j = i - 1;
  53. kopia=posortowane[i];
  54. while(j>=0 && (a=strcmp(posortowane[j].nazwa,posortowane[i].nazwa)>0))
  55. {
  56.  
  57. posortowane[i]=posortowane[j];
  58. posortowane[j]=kopia;
  59. j--;
  60. i--;
  61. }
  62.  
  63.  
  64. }
  65. }
  66. else if(kolejnosc==0)
  67. {
  68. for(i=1; i<ilosc; i++)
  69. {
  70. int j = i - 1;
  71.  
  72. while(j>=0 && (strcmp(posortowane[j].nazwa,posortowane[i].nazwa)<0))
  73. {
  74. kopia=posortowane[i];
  75. posortowane[i]=posortowane[j];
  76. posortowane[j]=kopia;
  77. j--;
  78. i--;
  79. }
  80.  
  81.  
  82. }
  83. }
  84. break;
  85.  
  86. case 1:
  87. if(kolejnosc==1)
  88. {
  89. for(i=1; i<ilosc; i++)
  90. {
  91. int j = i - 1;
  92.  
  93. while(j>=0 && (posortowane[j].szerokosc>posortowane[i].szerokosc))
  94. {
  95. kopia=posortowane[i];
  96. posortowane[i]=posortowane[j];
  97. posortowane[j]=kopia;
  98. j--;
  99. i--;
  100. }
  101.  
  102.  
  103. }
  104. }
  105. else if (kolejnosc==0)
  106. {
  107. for(i=1; i<ilosc; i++)
  108. {
  109. int j = i - 1;
  110.  
  111. while(j>=0 && (posortowane[j].szerokosc<posortowane[i].szerokosc))
  112. {
  113. kopia=posortowane[i];
  114. posortowane[i]=posortowane[j];
  115. posortowane[j]=kopia;
  116. j--;
  117. i--;
  118. }
  119.  
  120.  
  121. }
  122. }
  123. break;
  124.  
  125. case 2:
  126. if(kolejnosc==1)
  127. {
  128. for(i=1; i<ilosc; i++)
  129. {
  130. int j = i - 1;
  131.  
  132. while(j>=0 && (posortowane[j].jakosc>posortowane[i].jakosc))
  133. {
  134. kopia=posortowane[i];
  135. posortowane[i]=posortowane[j];
  136. posortowane[j]=kopia;
  137. j--;
  138. i--;
  139. }
  140.  
  141.  
  142. }
  143. }
  144. else if (kolejnosc==0)
  145. {
  146. for(i=1; i<ilosc; i++)
  147. {
  148. int j = i - 1;
  149.  
  150. while(j>=0 && (posortowane[j].jakosc<posortowane[i].jakosc))
  151. {
  152. kopia=posortowane[i];
  153. posortowane[i]=posortowane[j];
  154. posortowane[j]=kopia;
  155. j--;
  156. i--;
  157. }
  158.  
  159.  
  160. }
  161. }
  162.  
  163. break;
  164. }
  165.  
  166.  
  167. }
  168.  
  169.  
  170.  
  171. int main()
  172. { int i=0;
  173. int b,d;
  174. char a;
  175. struct obraz pliki[max];
  176.  
  177.  
  178.  
  179. do
  180. {
  181. printf("Co mam zrobic?\n");
  182. printf("[0]Dodaj do bazy\n");
  183. printf("[1]Sortowanie po polu\n");
  184. printf("[2] Wyswietlic cala baze\n");
  185. printf("[3]Zakoncz program \n");
  186. scanf("%d",&a);
  187.  
  188. if(a>=0&&a<=3)
  189. {
  190. switch(a)
  191. {
  192. case 0:
  193. wpisywanie(&pliki,&i);
  194. break;
  195. case 1:
  196. printf("Po jakim polu chcesz sortowac?\n[0]nazwa\n[1]szerokosc\n[2]jakosc\n");
  197. scanf("%d",&b);
  198. printf("malejaco czy rosnaco\n[0]malejaco\n[1]rosnaco\n");
  199. scanf("%d",&d);
  200. sortuj(&pliki,b,d,i);
  201. wypisywanie(pliki,i);
  202. break;
  203. case 2:
  204. wypisywanie(&pliki,i);
  205. break;
  206.  
  207. }
  208. }
  209. else
  210. continue;
  211.  
  212. }
  213. while(a!=3);
  214.  
  215.  
  216.  
  217. return 0;
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement