Advertisement
Guest User

kod kodzik kodeczek

a guest
Jan 28th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. /*Zapytanie
  2. 1.Dlaczego nie dziala mi funkcja zapisz?
  3. 2.
  4. */
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. #define MAX1 30
  10. #define MAX2 20
  11.  
  12. // STRUKTURA Z INFORMACJAMI O BAZIE NOCLEGOWEJ
  13. typedef struct {
  14. char Miasto[MAX1];
  15. char Lokum[MAX2];
  16. float KwotaNoc;
  17. int MinNoc;
  18. char Piesek[4];
  19. }BazaNoclegowa;
  20.  
  21. //STRUKTURA Z LISTA DO BAZY NOCLEGOWEJ
  22. struct Lista
  23. {
  24. BazaNoclegowa dane;
  25. struct Lista *nast;
  26. };
  27.  
  28. typedef struct Lista LISTA;
  29. typedef LISTA *ADRES;
  30.  
  31. //STRUKTURA Z INFORMACJAMI O MIJESCACH DO ODWIEDZENIA
  32. typedef struct{
  33. char MiastaPlaner[MAX1];
  34. int CzasPobytu;
  35. }DoOdwiedzenia;
  36.  
  37. //STURKTURA Z LISTA DO DO ODWIEDZENIA
  38. struct Lista2
  39. {
  40. DoOdwiedzenia dane;
  41. struct Lista2 *nast;
  42. };
  43.  
  44. typedef struct DoOdwiedzenia LISTA2;
  45. typedef LISTA2 *ADRES2;
  46.  
  47. void dodaj_element_baza(ADRES pierwszy)
  48. {
  49. ADRES pom;
  50. pom = pierwszy;
  51. while(pom->nast)
  52. pom = pom->nast;
  53. pom->nast=(ADRES)malloc(sizeof(LISTA));
  54. printf("Podaj dane.\n");
  55. printf("Miasto:\n");
  56. scanf("%s", &pom->dane.Miasto);
  57. fflush(stdin);
  58. printf("Lokum:\n");
  59. scanf("%s", &pom->dane.Lokum);
  60. fflush(stdin);
  61. printf("Kwota za noc:\n");
  62. scanf("%f", &pom->dane.KwotaNoc);
  63. printf("Minimalna ilosc nocy: \n");
  64. scanf("%d", &pom->dane.MinNoc);
  65. printf("Czy jest mozliwe posiadanie psa: \n");
  66. scanf("%s", &pom->dane.Piesek);
  67. fflush(stdin);
  68. pom->nast->nast==NULL;
  69. }
  70.  
  71. void wyswietl_liste(ADRES pierwszy)
  72. {
  73. ADRES pom;
  74. pom = pierwszy;
  75. int k = 1;
  76. if(pom == NULL)
  77. {
  78. printf("Na liscie nie ma zadnych ofert\n");
  79. }
  80. printf("Oto oferty, ktore znajduja sie na liscie: ");
  81. do
  82. {
  83. printf("\nOferta nr %d\n\n", k);
  84. printf("\nMiasto: %s\n\nLokum: %s\n\nKwota za noc: %f\n\nMinimalna ilosc nocy: %d\n\nMozliwosc posiadania psa: %s\n", pom->dane.Miasto, pom->dane.Lokum, pom->dane.KwotaNoc, pom->dane.MinNoc, pom->dane.Piesek);
  85. pom = pom->nast;
  86. k++;
  87. }while(pom == 0);
  88.  
  89. }
  90. void odczytaj_plik(ADRES pierwszy, FILE* kaczka)
  91. {
  92. BazaNoclegowa pot;
  93. ADRES pom, pomidor;
  94.  
  95. while(fread(&pot , sizeof(LISTA) , 1 , kaczka)!=EOF)
  96. {
  97. pom = (ADRES)malloc(sizeof(LISTA));
  98. strcpy(pom->dane.Miasto, pot.Miasto);
  99. strcpy(pom->dane.Lokum, pot.Lokum);
  100. pom->dane.KwotaNoc = pot.KwotaNoc;
  101. pom->dane.MinNoc = pot.MinNoc;
  102. strcpy(pom -> dane.Piesek, pot.Piesek);
  103. pom->nast = NULL;
  104. }
  105. if (pierwszy == NULL)
  106. {
  107. pierwszy = pom;
  108. }
  109. else
  110. {
  111. pomidor = pierwszy;
  112. while(pomidor->nast != NULL)
  113. {
  114. pomidor = pomidor->nast;
  115. pomidor->nast = pom;
  116. }
  117. }
  118.  
  119. printf("Udalo sie otworzyc plik. \n Naciśnij dowolny klawisz aby kontynouwac");
  120. getchar();
  121. system("cls");
  122. return;
  123.  
  124. }
  125.  
  126. void zapisz(ADRES pierwszy, FILE *kaczka)
  127. {
  128. ADRES pom;
  129. pom = pierwszy;
  130.  
  131. if( pom == NULL)
  132. {
  133. printf("Nie ma elementow do zapisania");
  134. }
  135. else
  136. {
  137. if( kaczka == NULL)
  138. {
  139. printf("Blad otwarcia pliku.");
  140. }
  141. do
  142. {
  143. fprintf(kaczka, "%s\n", pom->dane.Miasto);
  144. fprintf(kaczka, "%s\n", pom->dane.Lokum);
  145. fprintf(kaczka, "%f\n", pom->dane.KwotaNoc);
  146. fprintf(kaczka, "%d\n", pom->dane.MinNoc);
  147. fprintf(kaczka,"%s\n", pom->dane.Piesek);
  148. pom = pom->nast;
  149. }while(pom == 0);
  150. printf("Udalo sie zapisac\n");
  151. }
  152. }
  153. void szukaj_ofert(ADRES pierwszy)
  154. {
  155. ADRES pom, pif;
  156. pom = pierwszy;
  157. int wybor, licznik = 0, i;
  158. float puf;
  159. char slowo[MAX1];
  160.  
  161. if(pom == NULL)
  162. {
  163. printf("Nie mozna wyszukac oferty, gdyz lista baz jest pusta");
  164. }
  165. printf("Podaj w jakim miescie chcesz szukac ofert: ");
  166. scanf("%s", &slowo);
  167. do
  168. { if(slowo == pom->dane.Miasto)
  169. printf("\nLokum: %s\n\nKwota za noc: %f\n\nMinimalna ilosc nocy: %d\n\nMozliwosc posiadania psa: %s\n", pom->dane.Lokum, pom->dane.KwotaNoc, pom->dane.MinNoc, pom->dane.Piesek);
  170. licznik++;
  171. }while(pom == 0);
  172. if(slowo != pom->dane.Miasto)
  173. {
  174. printf("Brak podanego miasta w liscie ofert.");
  175. }
  176. else
  177. {
  178. printf("Wcisnij '1' jesli chcesz wybrac z tych ofert najtansza lub '2' jesli chcesz wrocic do menu");
  179. switch(wybor)
  180. {
  181. case 1:
  182. {
  183. puf = pom->dane.KwotaNoc;
  184. for(i=0; i<licznik; i++)
  185. {
  186. if(pom->dane.KwotaNoc<puf)
  187. {
  188. puf = pom->dane.KwotaNoc;
  189. pif->dane = pom->dane;
  190. }
  191. }
  192. printf("Najtansza oferta za\nKwota za noc: %f to\n: \nLokum: %s\n\nMinimalna ilosc nocy: %d\n\nMozliwosc posiadania psa: %s\n", pif->dane.KwotaNoc,pif->dane.Lokum, pif->dane.MinNoc, pif->dane.Piesek);
  193. }
  194. case 2:
  195. return 0;
  196. }
  197. }
  198. }
  199.  
  200. int main()
  201. {
  202. FILE *kwaczka;
  203. int tworzenie;
  204. ADRES pierwszy;
  205. pierwszy == NULL;
  206. char slowo[MAX1];
  207.  
  208. printf("Podaj nazwe pliku do wczytania: ");
  209. fflush(stdin);
  210. scanf("%s",&slowo);
  211. kwaczka = fopen(slowo,"rb");
  212. if(kwaczka == NULL)
  213. {
  214. printf("Nie ma takiego pliku.\n 1.Stworz nowy plik \n 2.Zamknij program\n");
  215. scanf("%d", &tworzenie);
  216. switch (tworzenie)
  217. {
  218. case 1:
  219. printf("Podaj nazwe pliku do stworzenia: \n");
  220. fflush(stdin);
  221. scanf("%s", &slowo);
  222. kwaczka = fopen(slowo,"wb");
  223. fclose(kwaczka);
  224. kwaczka = fopen(slowo,"rb");
  225. break;
  226. case 2:
  227. printf("Dziekuje ze skorzystanie z programu.Do zobaczenia!\n");
  228. return 0;
  229. }
  230. }
  231. ADRES pierwszy_baza;
  232. pierwszy_baza = (ADRES)malloc(sizeof(LISTA));
  233. pierwszy_baza->nast = NULL;
  234. int wybor;
  235. do
  236. {
  237. printf("MENU\n1. Pokaz liste baz noclegowych\n2. Wyszukaj oferty noclegowe w danym miescie \n2.1 Znajdz najtansza oferte w danym miescie\n2.2 Znajdz oferte w cenie z podanego przedzialu\n3. Sprawdz, czy oferta noclegowa pasuje do planow wyjazdowych \n4. Dodaj oferte\n5. Zakoncz.");
  238. do
  239. {
  240. scanf("%d", &wybor);
  241. if(wybor<1 || wybor>8)
  242. printf("Zle dane. Wybierz prawidlowe polecenie\n");
  243. }while(wybor<1 || wybor>8);
  244.  
  245. system("cls");
  246.  
  247.  
  248. switch(wybor)
  249. {
  250. case 1: //LISTA BAZ
  251. wyswietl_liste(pierwszy_baza);
  252. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  253. getch();
  254. system("cls");
  255. break;
  256.  
  257.  
  258. case 2: //WYSZUKIWANIE BAZ
  259. szukaj_ofert(pierwszy_baza);
  260. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  261. getch();
  262. system("cls");
  263. break;
  264.  
  265. /*case 3: //SZUKANIE NAJTANSZYCH
  266. szukaj_najtansza();
  267. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  268. getch();
  269. system("cls");
  270. break;*/
  271.  
  272. /*case 4: //SZUKANIE W PRZEDZIALE
  273. szukaj_w_przedziale();
  274. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  275. getch();
  276. system("cls");
  277. break;*/
  278.  
  279. /*case 5: //SPRAWDZANIE CZY PASUJE DO PLANOW
  280. sprawdanie();
  281. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  282. getch();
  283. system("cls");
  284. break;*/
  285.  
  286. case 4://DODAWANIE NOWEGO ELEMENTU
  287. dodaj_element_baza(pierwszy_baza);
  288. printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
  289. getch();
  290. system("cls");
  291. break;
  292.  
  293. case 5: //ZAKONCZ
  294. fclose(kwaczka);
  295. kwaczka=fopen(slowo,"wb");
  296. zapisz(pierwszy_baza, kwaczka);
  297. fclose(kwaczka);
  298. printf("Koniec programu, do zobaczenia\n");
  299. return 0;
  300. }
  301. }while(wybor<8 && wybor>0);
  302. return 0;
  303. }
  304.  
  305.  
  306.  
  307.  
  308. /*ADRES pierwszy_baza;
  309. pierwszy_baza=(ADRES)malloc(sizeof(LISTA));
  310. pierwszy_baza->nast = NULL;
  311.  
  312. int i;
  313.  
  314. for(i=0; i<4; i++)
  315. {
  316. dodaj_element_baza(pierwszy_baza);
  317. wyswietl_liste(pierwszy_baza);
  318.  
  319. }
  320.  
  321. return 0;
  322. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement