Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Zapytanie
- 1.Dlaczego nie dziala mi funkcja zapisz?
- 2.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX1 30
- #define MAX2 20
- // STRUKTURA Z INFORMACJAMI O BAZIE NOCLEGOWEJ
- typedef struct {
- char Miasto[MAX1];
- char Lokum[MAX2];
- float KwotaNoc;
- int MinNoc;
- char Piesek[4];
- }BazaNoclegowa;
- //STRUKTURA Z LISTA DO BAZY NOCLEGOWEJ
- struct Lista
- {
- BazaNoclegowa dane;
- struct Lista *nast;
- };
- typedef struct Lista LISTA;
- typedef LISTA *ADRES;
- //STRUKTURA Z INFORMACJAMI O MIJESCACH DO ODWIEDZENIA
- typedef struct{
- char MiastaPlaner[MAX1];
- int CzasPobytu;
- }DoOdwiedzenia;
- //STURKTURA Z LISTA DO DO ODWIEDZENIA
- struct Lista2
- {
- DoOdwiedzenia dane;
- struct Lista2 *nast;
- };
- typedef struct DoOdwiedzenia LISTA2;
- typedef LISTA2 *ADRES2;
- void dodaj_element_baza(ADRES pierwszy)
- {
- ADRES pom;
- pom = pierwszy;
- while(pom->nast)
- pom = pom->nast;
- pom->nast=(ADRES)malloc(sizeof(LISTA));
- printf("Podaj dane.\n");
- printf("Miasto:\n");
- scanf("%s", &pom->dane.Miasto);
- fflush(stdin);
- printf("Lokum:\n");
- scanf("%s", &pom->dane.Lokum);
- fflush(stdin);
- printf("Kwota za noc:\n");
- scanf("%f", &pom->dane.KwotaNoc);
- printf("Minimalna ilosc nocy: \n");
- scanf("%d", &pom->dane.MinNoc);
- printf("Czy jest mozliwe posiadanie psa: \n");
- scanf("%s", &pom->dane.Piesek);
- fflush(stdin);
- pom->nast->nast==NULL;
- }
- void wyswietl_liste(ADRES pierwszy)
- {
- ADRES pom;
- pom = pierwszy;
- int k = 1;
- if(pom == NULL)
- {
- printf("Na liscie nie ma zadnych ofert\n");
- }
- printf("Oto oferty, ktore znajduja sie na liscie: ");
- do
- {
- printf("\nOferta nr %d\n\n", k);
- 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);
- pom = pom->nast;
- k++;
- }while(pom == 0);
- }
- void odczytaj_plik(ADRES pierwszy, FILE* kaczka)
- {
- BazaNoclegowa pot;
- ADRES pom, pomidor;
- while(fread(&pot , sizeof(LISTA) , 1 , kaczka)!=EOF)
- {
- pom = (ADRES)malloc(sizeof(LISTA));
- strcpy(pom->dane.Miasto, pot.Miasto);
- strcpy(pom->dane.Lokum, pot.Lokum);
- pom->dane.KwotaNoc = pot.KwotaNoc;
- pom->dane.MinNoc = pot.MinNoc;
- strcpy(pom -> dane.Piesek, pot.Piesek);
- pom->nast = NULL;
- }
- if (pierwszy == NULL)
- {
- pierwszy = pom;
- }
- else
- {
- pomidor = pierwszy;
- while(pomidor->nast != NULL)
- {
- pomidor = pomidor->nast;
- pomidor->nast = pom;
- }
- }
- printf("Udalo sie otworzyc plik. \n Naciśnij dowolny klawisz aby kontynouwac");
- getchar();
- system("cls");
- return;
- }
- void zapisz(ADRES pierwszy, FILE *kaczka)
- {
- ADRES pom;
- pom = pierwszy;
- if( pom == NULL)
- {
- printf("Nie ma elementow do zapisania");
- }
- else
- {
- if( kaczka == NULL)
- {
- printf("Blad otwarcia pliku.");
- }
- do
- {
- fprintf(kaczka, "%s\n", pom->dane.Miasto);
- fprintf(kaczka, "%s\n", pom->dane.Lokum);
- fprintf(kaczka, "%f\n", pom->dane.KwotaNoc);
- fprintf(kaczka, "%d\n", pom->dane.MinNoc);
- fprintf(kaczka,"%s\n", pom->dane.Piesek);
- pom = pom->nast;
- }while(pom == 0);
- printf("Udalo sie zapisac\n");
- }
- }
- void szukaj_ofert(ADRES pierwszy)
- {
- ADRES pom, pif;
- pom = pierwszy;
- int wybor, licznik = 0, i;
- float puf;
- char slowo[MAX1];
- if(pom == NULL)
- {
- printf("Nie mozna wyszukac oferty, gdyz lista baz jest pusta");
- }
- printf("Podaj w jakim miescie chcesz szukac ofert: ");
- scanf("%s", &slowo);
- do
- { if(slowo == pom->dane.Miasto)
- 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);
- licznik++;
- }while(pom == 0);
- if(slowo != pom->dane.Miasto)
- {
- printf("Brak podanego miasta w liscie ofert.");
- }
- else
- {
- printf("Wcisnij '1' jesli chcesz wybrac z tych ofert najtansza lub '2' jesli chcesz wrocic do menu");
- switch(wybor)
- {
- case 1:
- {
- puf = pom->dane.KwotaNoc;
- for(i=0; i<licznik; i++)
- {
- if(pom->dane.KwotaNoc<puf)
- {
- puf = pom->dane.KwotaNoc;
- pif->dane = pom->dane;
- }
- }
- 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);
- }
- case 2:
- return 0;
- }
- }
- }
- int main()
- {
- FILE *kwaczka;
- int tworzenie;
- ADRES pierwszy;
- pierwszy == NULL;
- char slowo[MAX1];
- printf("Podaj nazwe pliku do wczytania: ");
- fflush(stdin);
- scanf("%s",&slowo);
- kwaczka = fopen(slowo,"rb");
- if(kwaczka == NULL)
- {
- printf("Nie ma takiego pliku.\n 1.Stworz nowy plik \n 2.Zamknij program\n");
- scanf("%d", &tworzenie);
- switch (tworzenie)
- {
- case 1:
- printf("Podaj nazwe pliku do stworzenia: \n");
- fflush(stdin);
- scanf("%s", &slowo);
- kwaczka = fopen(slowo,"wb");
- fclose(kwaczka);
- kwaczka = fopen(slowo,"rb");
- break;
- case 2:
- printf("Dziekuje ze skorzystanie z programu.Do zobaczenia!\n");
- return 0;
- }
- }
- ADRES pierwszy_baza;
- pierwszy_baza = (ADRES)malloc(sizeof(LISTA));
- pierwszy_baza->nast = NULL;
- int wybor;
- do
- {
- 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.");
- do
- {
- scanf("%d", &wybor);
- if(wybor<1 || wybor>8)
- printf("Zle dane. Wybierz prawidlowe polecenie\n");
- }while(wybor<1 || wybor>8);
- system("cls");
- switch(wybor)
- {
- case 1: //LISTA BAZ
- wyswietl_liste(pierwszy_baza);
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;
- case 2: //WYSZUKIWANIE BAZ
- szukaj_ofert(pierwszy_baza);
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;
- /*case 3: //SZUKANIE NAJTANSZYCH
- szukaj_najtansza();
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;*/
- /*case 4: //SZUKANIE W PRZEDZIALE
- szukaj_w_przedziale();
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;*/
- /*case 5: //SPRAWDZANIE CZY PASUJE DO PLANOW
- sprawdanie();
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;*/
- case 4://DODAWANIE NOWEGO ELEMENTU
- dodaj_element_baza(pierwszy_baza);
- printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
- getch();
- system("cls");
- break;
- case 5: //ZAKONCZ
- fclose(kwaczka);
- kwaczka=fopen(slowo,"wb");
- zapisz(pierwszy_baza, kwaczka);
- fclose(kwaczka);
- printf("Koniec programu, do zobaczenia\n");
- return 0;
- }
- }while(wybor<8 && wybor>0);
- return 0;
- }
- /*ADRES pierwszy_baza;
- pierwszy_baza=(ADRES)malloc(sizeof(LISTA));
- pierwszy_baza->nast = NULL;
- int i;
- for(i=0; i<4; i++)
- {
- dodaj_element_baza(pierwszy_baza);
- wyswietl_liste(pierwszy_baza);
- }
- return 0;
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement