Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define N 6
  5. #define MAX 40
  6.  
  7.  
  8. struct Wpis
  9. {
  10. char nazwisko [MAX];
  11. char imie [MAX];
  12. char numertl [MAX];
  13. char adres [MAX];
  14.  
  15. };
  16.  
  17.  
  18. void pokaz (struct Wpis Ksiazka[], int, int id[]);
  19. void dodaj (struct Wpis Ksiazka[], int *, int id[]);
  20. void sortuj (struct Wpis Ksiazka[], int lzap, int id[]);
  21. void zamiana (struct Wpis Ksiazka[], int);
  22. void usuwanie (struct Wpis Ksiazka[], int *, int id[]);
  23. void edycja (struct Wpis Ksiazka[], int , int id[], int);
  24.  
  25. int main()
  26. {
  27. int p = 0 , lzap = 6, id[N] ={0,1,2,3,4,5/*,6/*,7,8,9,10,11,12,13,14,15,16,17,18,19*/};
  28. struct Wpis Ksiazka[N] = {{"Kowalski", "Jan", "555555555", "ul. n 3"},
  29. {"Nowak", "Maciek", "444444444", "ul. d 8"},
  30. {"Tntczak", "Szymon Antek", "456456456", "ul. e 4"},
  31. {"Keselski", "Tymon", "456456456", "ul. w 4"},
  32. {"Arabowski", "Szymon", "456456456", "ul. k 4"},
  33. {"Borzym", "Ania", "456456456", "ul. c 4"}/*,
  34. {"Graba", "Alan", "456456456", "ul. t 4"} */
  35.  
  36.  
  37.  
  38.  
  39.  
  40. };
  41.  
  42.  
  43.  
  44. while(p!=1)
  45. {
  46.  
  47. sortuj (Ksiazka, lzap, id);
  48. int w,l;
  49. printf("\n\n\nProgram zawiera ksiazke adresowa, ktora mozna edytowac\n");
  50. printf("Wybierz co chcesz zrobic:\n");
  51. printf("1.Dodac nowy adres\n");
  52. printf("2.Usunac adres\n");
  53. printf("3.Wyswietlic zapisane adresy\n");
  54. printf("4.Aby wyjsc z programu\n");
  55. scanf("%d",&w);
  56. l=getc(stdin);
  57. if (l != 10) printf("blad danych\n");
  58. else
  59. switch(w)
  60. {
  61. case 1: dodaj(Ksiazka, &lzap, id) ; /* Menu programu */
  62. break;
  63. case 2: usuwanie(Ksiazka, &lzap, id) ;
  64. break;
  65. case 3: pokaz(Ksiazka, lzap, id) ;
  66. break;
  67. case 4: p=1 ;
  68. break;
  69. }
  70. }
  71. return 0;
  72. }
  73.  
  74.  
  75. void dodaj (struct Wpis Ksiazka[],int *lzap, int id[])
  76. {
  77. int porownanien, porownaniei, i;
  78. if (*lzap < N)
  79. {
  80.  
  81. printf("Podaj nazwisko\n");
  82. gets(Ksiazka[*lzap].nazwisko);
  83. if (strlen(Ksiazka[*lzap].nazwisko)> MAX) { printf("Za duzo znakow"); return (0); }
  84. printf("Podaj imie\n");
  85. gets(Ksiazka[*lzap].imie);
  86. if (strlen(Ksiazka[*lzap].imie)> MAX) { printf("Za duzo znakow"); return(0); }
  87. printf("Podaj numer telefonu\n");
  88. gets(Ksiazka[*lzap].numertl);
  89. if (strlen(Ksiazka[*lzap].numertl)> MAX) { printf("Za duzo znakow"); return(0); }
  90. printf("Podaj adres\n");
  91. gets(Ksiazka[*lzap].adres);
  92. if (strlen(Ksiazka[*lzap].adres)> MAX) { printf("Za duzo znakow"); return (0); }
  93. zamiana(Ksiazka, *lzap);
  94. for (i=0; i<(*lzap-1); i++)
  95. {
  96.  
  97. porownanien= strcmp(Ksiazka[id[i]].nazwisko, Ksiazka[*lzap].nazwisko);
  98. porownaniei= strcmp(Ksiazka[id[i]].imie, Ksiazka[*lzap].imie);
  99. if (porownanien==0 && porownaniei==0) { edycja(Ksiazka, *lzap, id, i); (*lzap)--; }
  100.  
  101. }
  102. (*lzap)++;
  103. }
  104. else printf("Ksiazka adresowa jest juz pelna \n\n");
  105. }
  106.  
  107.  
  108.  
  109.  
  110. void pokaz(struct Wpis Ksiazka[], int lzap, int id[])
  111. {
  112. int i;
  113. for (i=0; i<lzap; i++)
  114. {
  115.  
  116. printf("%s \n", Ksiazka[i].nazwisko);
  117. printf("%s \n", Ksiazka[i].imie);
  118. printf("%s \n", Ksiazka[i].numertl);
  119. printf("%s \n\n", Ksiazka[i].adres);
  120.  
  121. }
  122. printf("---------------------\n");
  123. for (i=0; i<lzap; i++)
  124. {
  125. printf("ID: %d ",id[i]);
  126. printf("%s \n", Ksiazka[id[i]].nazwisko);
  127. printf("%s \n", Ksiazka[id[i]].imie);
  128. printf("%s \n", Ksiazka[id[i]].numertl);
  129. printf("%s \n\n", Ksiazka[id[i]].adres);
  130. }
  131. }
  132.  
  133. void sortuj (struct Wpis Ksiazka[], int lzap, int id[])
  134. {
  135. int i,sort,pomoc,licznikpetli=1;
  136. while (licznikpetli!=0)
  137. {
  138.  
  139. licznikpetli=0;
  140. for (i=0; i<(lzap-1); i++)
  141. {
  142.  
  143. sort= strcmp(Ksiazka[id[i]].nazwisko, Ksiazka[id[i+1]].nazwisko);
  144. if (sort>0)
  145. {
  146. pomoc=id[i];
  147. id[i]=id[i+1]; /* sortowanie babelkowe */
  148. id[i+1]=pomoc;
  149. licznikpetli++;
  150. }
  151. if (sort==0)
  152. {
  153. sort=strcmp(Ksiazka[id[i]].imie, Ksiazka[id[i+1]].imie);
  154. if (sort>0)
  155. {
  156. pomoc=id[i];
  157. id[i]=id[i+1];
  158. id[i+1]=pomoc;
  159. licznikpetli++;
  160. }
  161.  
  162. }
  163. }
  164. }
  165.  
  166.  
  167.  
  168. }
  169.  
  170.  
  171. void zamiana (struct Wpis Ksiazka[], int lzap)
  172. {
  173. int dlnaz,i;
  174. if (((Ksiazka[lzap].nazwisko[0])>='a') && ((Ksiazka[lzap].nazwisko[0])<= 'z')) Ksiazka[lzap].nazwisko[0]-=32;
  175. dlnaz=strlen(Ksiazka[lzap].nazwisko);
  176. for (i=1; i<dlnaz;i++)
  177. {
  178. if (((Ksiazka[lzap].nazwisko[i])>= 'A') && ((Ksiazka[lzap].nazwisko[i])<= 'Z')) Ksiazka[lzap].nazwisko[i]+=32;
  179. }
  180. if (((Ksiazka[lzap].imie[0])>='a') && ((Ksiazka[lzap].imie[0])<= 'z')) Ksiazka[lzap].imie[0]-=32;
  181. dlnaz=strlen(Ksiazka[lzap].imie);
  182. for (i=1; i<dlnaz;i++)
  183. {
  184.  
  185. if (((Ksiazka[lzap].imie[i])>= 'A') && ((Ksiazka[lzap].imie[i])<= 'Z')) Ksiazka[lzap].imie[i]+=32;
  186. }
  187.  
  188. }
  189.  
  190. void usuwanie (struct Wpis Ksiazka[],int *lzap, int id[])
  191. {
  192. int idusuwania, i, pomoc;
  193.  
  194. printf("Podaj ID wpisu, ktory chcesz usunac. \n");
  195. scanf("%d", &idusuwania);
  196. if (id[idusuwania]>(*lzap-1)) {printf("Nie ma takiego id\n\n"); return(0); }
  197.  
  198.  
  199. /* for(i=0; i<*lzap; i++)
  200. {
  201. if (id[i]==idusuwania) break;
  202. }
  203. int j;
  204. printf("i= %d idusuw= %d ", i, idusuwania);
  205.  
  206. for (j=idusuwania; j<(*lzap-1); j++)
  207. {
  208. printf("%s %s -", Ksiazka[j].nazwisko, Ksiazka[j+1].nazwisko);
  209. strcpy (Ksiazka[j].nazwisko, Ksiazka[j+1].nazwisko);
  210. strcpy (Ksiazka[j].imie, Ksiazka[j+1].imie);
  211. strcpy (Ksiazka[j].numertl, Ksiazka[j+1].numertl);
  212. strcpy (Ksiazka[j].adres, Ksiazka[j+1].adres);
  213.  
  214.  
  215. } */
  216.  
  217.  
  218. for(i=0; i<*lzap; i++)
  219. {
  220. if (id[i]==idusuwania) {pomoc=i; break;}
  221. }
  222. for (i=pomoc ; i< (*lzap-1);i++ )
  223. {
  224. // Ksiazka[id[pomoc]]=Ksiazka[id[pomoc+1]];
  225. id[pomoc]=id[pomoc+1];
  226. pomoc++;
  227. }
  228.  
  229. // printf("%s %s", Ksiazka[id[j]].nazwisko, Ksiazka[id[j+1]].nazwisko);
  230.  
  231.  
  232.  
  233.  
  234. /* strcpy( Ksiazka[idusuwania].nazwisko, Ksiazka[*lzap-1].nazwisko);*/
  235. /* strcpy(Ksiazka[id[i]].nazwisko, Ksiazka[*lzap-1].nazwisko);
  236. pomoc=id[i];
  237. id[i]=id[*lzap-1];
  238. id[i+1]=pomoc;
  239. */
  240.  
  241.  
  242.  
  243. (*lzap)--;
  244.  
  245. printf("----------------------\n\n");
  246.  
  247. }
  248.  
  249.  
  250. void edycja(struct Wpis Ksiazka[], int lzap, int id[], int i)
  251. {
  252.  
  253. strcpy(Ksiazka[id[i]].numertl, Ksiazka[id[lzap]].numertl);
  254. strcpy(Ksiazka[id[i]].adres, Ksiazka[id[lzap]].adres);
  255.  
  256.  
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement