View difference between Paste ID: 0JYs0yWx and yjMvVjV2
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
5
#define MAX1 30
6
#define MAX2 40
7
#define MAX3 20
8
9
// STRUKTURA Z INFORMACJAMI O KSIAZCE Z BIBLIOTEKI
10
typedef struct
11
{
12
    char AutorB[MAX1];
13
    char TytulB[MAX2];
14
    int Rok;
15
    char Wydawnictwo[50];
16
    char Typ[50];
17
    char Wypozyczona[4];//TAK LUB NIE, jesli tak komu zostala wypozyczona
18
    char Komu[MAX3];
19
}Biblioteka;
20
21
//STRUKTURA Z LISTA DO BIBLIOTEKI
22
struct ListaB
23
{
24
    Biblioteka data;
25
    struct ListaB *next;
26
};
27
typedef struct ListaB LISTAB;
28
typedef LISTAB *ADRESB;
29
30
//STRUKTURA Z INFORMACJAMI O KSIAZCE KTORA CHCEMY KUPIC
31
typedef struct
32
{
33
    char AutorDK[MAX1];
34
    char TytulDK[MAX2];
35
}DoKupienia;
36
37
//STRUKTURA Z LISTA DO DOKUPIENIA
38
struct ListaDK
39
{
40
    DoKupienia dane;
41
    struct ListaDK *nast;
42
};
43
typedef struct ListaDK LISTADK;
44
typedef LISTADK *ADRESDK;
45
46
//_____________  prototypy _________________
47
void UsunB(ADRESB first, char Usuwany[MAX2]);
48
void UsunDK(ADRESDK pierwszy, char Usuwany[MAX2]);
49
50
//_______________________________________
51
void DodajKsiazkeB(ADRESB first, ADRESDK pierwszy)
52
{
53
    int usunzDK;
54
     //DODANIE KSIAZKI DO BILBIOTEKI
55
    ADRESB tmp;
56
    tmp = first;
57
    while(tmp->next)
58
    {
59
    tmp = tmp->next;
60
    }
61
    tmp->next = (ADRESB)malloc(sizeof(LISTAB));
62
    tmp = tmp->next;
63
    tmp->next = NULL;
64
    printf("Podaj nazwisko autora: ");
65
    fflush(stdin);
66
    gets(tmp->data.AutorB);
67
    printf("Podaj tytul ksiazki: ");
68
    fflush(stdin);
69
    gets(tmp->data.TytulB);
70
    printf("Podaj rok wydania ksiazki: ");
71
    fflush(stdin);
72
    scanf("%d", &tmp->data.Rok);
73
    printf("Podaj wydawnictwo: ");
74
    fflush(stdin);
75
    gets(tmp->data.Wydawnictwo);
76
    printf("Podaj typ ksiazki (np.: kryminal, dramat, poradnik, itd.: ");
77
    fflush(stdin);
78
    gets(tmp->data.Typ);
79
80
    system("cls");
81
    printf("Ksiazka zostala dodana do listy Biblioteka.\n\n");
82
    printf("Czy chcesz, aby dodana przez Ciebie ksiazka zostala jednoczesnie usunieta z listy 'Do kupienia'?\n\n");
83
    printf("1. TAK \n2. NIE \n\n");
84
    scanf("%d", &usunzDK);
85
    switch(usunzDK)
86
    {
87
        case 1: //ksiazka zostanie usunieta z listy DoKupienia
88
        {
89
            if(pierwszy == NULL)
90
            {
91
                printf("Nie mozesz usunac ksiazki, gdyz lista 'Do kupienia' jest pusta.");
92
                puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
93
                fflush(stdin);
94
                getch();
95
            }
96
            else
97
            {
98
                UsunDK(pierwszy, tmp->data.TytulB);
99
                puts("Ksiazka zostala usunieta z listy DoKupienia.\n\n");
100
                puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
101
                fflush(stdin);
102
                getch();
103
            }
104
        }break;
105
106
        case 2: //ksiazka pozostanie w liscie DoKupienia
107
        {
108
            puts("Ksiazka pozostala w liscie 'Do kupienia'.\n\n");
109
            puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
110
            fflush(stdin);
111
            getch();
112
            break;
113
        }
114
115
        case 3: //POWRÓT DO MENU
116
        {
117
            return;
118
        }
119
    }
120
121
}
122
123
124
//____________________________________________
125
void DodajKsiazkeDK(ADRESDK pierwszy)
126
{
127
128
    // DODANIE KSIAZKI DO LISTY DOKUPIENIA
129
    ADRESDK pom;
130
    pom = pierwszy;
131
    while(pom->nast)
132
    {
133
    pom->nast = pom;
134
    }
135
    pom->nast = (LISTADK*) malloc(sizeof(LISTADK));
136
    pom = pom->nast;
137
    pom->nast = NULL;
138
    printf("Podaj nazwisko autora: ");
139
    fflush(stdin);
140
    gets(pom->dane.AutorDK);
141
    printf("Podaj tytul: ");
142
    fflush(stdin);
143
    gets(pom->dane.TytulDK);
144
145
    puts("Ksiazka zostala dodana do listy 'Do kupienia'.\n\n");
146
    puts("Nacisnij dowolny klawisz, aby powrocic do menu.");
147
    fflush(stdin);
148
    getch();
149
    system("cls");
150
151
}
152
153
154
//____________________________________________
155
void UsunB(ADRESB first, char Usuwany[MAX2])
156
{
157
    if(first)
158
        first = first->next;
159
160
    while(first->next) //Sprawdzamy dla ka¿dego elementu
161
        {
162
                if(stricmp(first->next->data.TytulB,Usuwany)==0) //Czy ten element to ten sam o którym mówmy
163
                {
164
                        ADRESB Us = first->next; //Zapamiêtujemy drania
165
                        first->next = first->next->next; //Usuwamy go z spisów
166
                        free(Us); //Wysy³amy zabójcê by go sprz¹tn¹æ
167
                        return; //I zmywamy siê z miejsca zbrodni
168
                }
169
170
                first = first->next;
171
        }
172
173
     //Je¿eli nie ma go w liœcie to te¿ koñczymy funkcjê xD
174
175
}
176
//______________________________________________
177
void UsunDK(ADRESDK pierwszy, char Usuwany[MAX2])
178
{
179
180
    if(pierwszy)
181
        pierwszy = pierwszy->nast;
182
183
    while(pierwszy->nast) //Sprawdzamy dla ka¿dego elementu
184
        {
185
                if(stricmp(pierwszy->nast->dane.TytulDK,Usuwany) == 0) //Czy ten element to ten sam o którym mówmy
186
                {
187
                        ADRESDK Us = pierwszy->nast; //Zapamiêtujemy drania
188
                        pierwszy->nast = pierwszy->nast->nast; //Usuwamy go z spisów
189
                        free(Us); //Wysy³amy zabójcê by go sprz¹tn¹æ
190
                        return; //I zmywamy siê z miejsca zbrodni
191
                }
192
193
                pierwszy = pierwszy->nast;
194
        }
195
196
     //Je¿eli nie ma go w liœcie to te¿ koñczymy funkcjê xD
197
198
199
200
201
}
202
203
//______________________________________
204
void Wypozyczone(ADRESB first)
205
{
206
    if(first)
207
        first = first->next;
208
209
    ADRESB tmp;
210
    tmp = first;
211
    int licznik = 1;
212
213
    if(tmp == NULL)
214
    {
215
        printf("Niestety na liscie nie znajduje sie zadna ksiazka.\n\n");
216
        return;
217
    }
218
    else
219
    {
220
        puts("Oto ksiazki, ktore znajduja sie na liscie:\n");
221
        while(tmp)
222
        {
223
            printf("Ksiazka nr %d\n", licznik);
224
            printf("Autor: %s\n", tmp->data.AutorB);
225
            printf("Tytul: %s\n", tmp->data.TytulB);
226
            printf("Rok wydania: %d\n", tmp->data.Rok);
227
            printf("Wydawnictwo: %s\n", tmp->data.Wydawnictwo);
228
            printf("Typ ksiazki: %s\n", tmp->data.Typ);
229
            printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
230
            tmp = tmp->next;
231
            licznik++;
232
        }
233
    }
234
    return;
235
}
236
//____________________________________________________________
237
void Chce(ADRESDK pierwszy)
238
{
239
    if(pierwszy)
240
        pierwszy = pierwszy->nast;
241
242
    ADRESDK pom;
243
    pom = pierwszy;
244
    int licznik = 1;
245
246
    if(pom == NULL)
247
    {
248
        printf("Niestety na liscie nie znajduje sie zadna ksiazka.\n\n");
249
        return;
250
    }
251
    else
252
    {
253
        puts("Oto ksiazki, ktore znajduja sie na liscie:\n");
254
        while(pom)
255
        {
256
            printf("Ksiazka nr %d\n", licznik);
257
            printf("Autor: %s\n", pom->dane.AutorDK);
258
            printf("Tytul: %s\n", pom->dane.TytulDK);
259
            printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
260
            pom = pom->nast;
261
            licznik++;
262
        }
263
    }
264
    return;
265
}
266
267
//____________________________________________________________________
268
void SortujAutorzyB(ADRESB first)
269
{
270
        ADRESB Nowy = 0; //Bedziemy tu dodawac elementy od "najwiekszego". Umieszczamy na pocz¹tku listy, wiêc ostatecznie kolejka bêdzie jakby odwrócona ;)
271
272
        while(first->next) // Póki zosta³y jakieœ elementy na liœcie first
273
        {
274
                ADRESB Tmp = first; // Bedziemy tym siê przemieszczaæ po liœcie
275
                ADRESB Max = first; // A tu mamy poprzedni element maksymalnego
276
277
                while(Tmp->next)//Póki tmp nie jest przedostatnim elementem (bo pobieramy wskaŸnik na poprzedni przed porównywanym)
278
                {
279
                        if(strcmp(Max->next->data.AutorB,Tmp->next->data.AutorB)>0) //Je¿eli "obecny" jest "wiêkszy" od minimalnego
280
                                Max= Tmp;
281
                        Tmp = Tmp->next;
282
                }
283
284
                //W tym miejscu Min wskazuje na "najwiekszy" element w liœcie A;
285
                ADRESB Buf = Max->next; //Zapamietujemy Min
286
                Max->next = Max->next->next; //Usuwamy je z pierwszej listy
287
                Buf->next = Nowy; //Te dwie linie
288
                Nowy = Buf; //Dodajemy Maxa do nowej listy
289
        }
290
291
        first->next = Nowy; //No i tylko przypisujemy spowrotem "now¹" listê na miejsce starej;
292
        return; //Gotowe
293
}
294
295
//____________________________________________________________________
296
void SortujTytulyB(ADRESB first)
297
{
298
        ADRESB Nowy = 0;
299
300
        while(first->next)
301
        {
302
                ADRESB Tmp = first;
303
                ADRESB Max = first;
304
305
                while(Tmp->next)
306
                {
307
                        if(strcmp(Max->next->data.TytulB, Tmp->next->data.TytulB) > 0)
308
                                Max= Tmp;
309
                        Tmp = Tmp->next;
310
                }
311
312
                ADRESB Buf = Max->next;
313
                Max->next = Max->next->next;
314
                Buf->next = Nowy;
315
                Nowy = Buf;
316
        }
317
318
        first->next = Nowy;
319
        return;
320
}
321
//____________________________________________________________________
322
323-
void Zapisz(ADRESB first, ADRESDK pierwszy, FILE *moon)
323+
324
{
325
        if(first)
326
                first = first->next;
327
        if(pierwszy)
328
                pierwszy = pierwszy->nast;
329
330
        ADRESB Popf = first; //W Popf zapamiêtujemy poprzedni element
331
        while(first->next) //Póki jest nastêpny element
332
                {
333
                        first = first->next; //Przechodzimy na niego
334
                        free(Popf); //Zwalniamy poprzedni
335
                        Popf = first; //I zapamiêtujemy obecny
336
                }
337
        free(Popf); //Zwalniamy jeszcze ostatni element
338
339
        ADRESDK Popp = pierwszy; //Analogincznie
340
        while(pierwszy->nast)
341
                {
342
                        pierwszy = pierwszy->nast;
343
                        free(Popp);
344
                        Popp = pierwszy;
345
                }
346
        free(Popf);
347
        return;
348
}
349
350
351
void Zapisz(ADRESB first, ADRESDK pierwszy, char Sciezka1[], char Sciezka2[])
352
{
353
    if(first)
354
        first = first->next;
355
    if(pierwszy)
356
        pierwszy = pierwszy->nast;
357
 
358
    ADRESB tmp;
359
    tmp = first;
360
    Biblioteka b;
361
    ADRESDK pom;
362
    pom = pierwszy;
363
    DoKupienia d;
364-
void Wczytaj(ADRESB first, ADRESDK pierwszy, char Sciezka[])
364+
 
365
        FILE *moon = fopen(Sciezka1,"wb");
366
 
367
    //ZAPISYWANIE DANYCH 'BIBLIOTEKA'
368
    while(tmp)
369
    {
370
        strcpy(b.AutorB, tmp->data.AutorB);
371-
    FILE *food = fopen(Sciezka,"rb");
371+
372
        b.Rok = tmp->data.Rok;
373-
        /*if(food == 0)
373+
374
        strcpy(b.Wypozyczona, tmp->data.Wypozyczona);
375
        strcpy(b.Komu, tmp->data.Komu);
376
        strcpy(b.Typ, tmp->data.Typ);
377
 
378-
        }*/
378+
379
        tmp = tmp->next;
380
    }
381
 
382
        fclose(moon);
383
        moon = fopen(Sciezka2,"wb");
384
    //ZAPISYWANIE DANYCH 'DOKUPIENIA'
385
    while(pom)
386
    {
387
        strcpy(d.AutorDK, pom->dane.AutorDK);
388
        strcpy(d.TytulDK, pom->dane.TytulDK);
389
 
390
        fwrite(&d, sizeof(DoKupienia), 1, moon);
391
        pom = pom->nast;
392
    }
393
 
394
        fclose(moon);
395
}
396
397
//_________________________________________________
398
void Wczytaj(ADRESB first, ADRESDK pierwszy, char Sciezka1[],char Sciezka2[])
399
{
400
	Zwolnij(first);
401
	Zwolnij(pierwszy);
402
    ADRESB tmp, help;
403
    Biblioteka b;
404
    ADRESDK pom, rat;
405
    DoKupienia d;
406
    char nowyplik[50];
407
    FILE *food = fopen(Sciezka1,"rb");
408
 
409
        if(food == 0)
410
        {
411
                printf("Pirat nie zyje! Pliku nie ma!\n\n");
412
                getch();
413
                return;
414
        }
415
 
416
    while(fread(&b, sizeof(Biblioteka), 1, food) == 1)
417
    {
418
        tmp=(LISTAB*)malloc(sizeof(LISTAB));
419
        strcpy(tmp->data.AutorB, b.AutorB);
420
        strcpy(tmp->data.TytulB, b.TytulB);
421
        tmp->data.Rok = b.Rok;
422
        strcpy(tmp->data.Wydawnictwo, b.Wydawnictwo);
423
        strcpy(tmp->data.Wypozyczona, b.Wypozyczona);
424
        strcpy(tmp->data.Komu, b.Komu);
425
        strcpy(tmp->data.Typ, b.Typ);
426
        tmp->next = NULL;
427
 
428
        first->next = tmp;
429
        first = tmp;
430
    }
431
 
432
        food = fopen(Sciezka2,"wb");
433
        fclose(food);
434
 
435
        if(food == 0)
436
        {
437
                printf("Pirat nie zyje! Pliku nie ma!\n\n");
438
                getch();
439
                return;
440
        }
441
 
442
    while(fread(&d, sizeof(DoKupienia), 1, food) == 1)
443
    {
444
 
445
        strcpy(pom->dane.AutorDK, d.AutorDK);
446
        strcpy(pom->dane.TytulDK, d.TytulDK);
447
 
448-
    char nazwa[50]; //nazwa jaka uzytkownik nada dla pliku
448+
449
 
450
        pierwszy->nast = pom;
451
        pierwszy = pom;
452
    }
453
 
454
    printf("\n\nUdalo sie otworzyc plik\n\nWcisnij dowolny klawisz aby kontynuowac.\n");
455
    getch();
456
    system("cls");
457
 
458
        fclose(food); //Zamykamy plik
459
    return;
460
}
461
462
//___________________________________________________________________
463
464
//____________________________________________________________________
465
int main()
466
{
467
    FILE *moon;
468
    char nazwa1[50]; //nazwa pierwszego pliku uzytkownik nada dla pliku
469
    char nazwa2[50]; //nazwa drugiego
470
    ADRESB first, tmp;
471
    first = (LISTAB*) malloc(sizeof(LISTAB));
472
    first->next = NULL;
473
    ADRESDK pierwszy, pom;
474
    pierwszy = (LISTADK*) malloc(sizeof(LISTADK));
475
    pierwszy->nast = NULL;
476
477
    int numer;
478
    int zapis;
479
    int sort;
480-
            printf("\nPodaj nazwe pliku do wczytania: \n");
480+
481
    int usuwanie;
482
    int wybor;
483-
            moon = fopen(nazwa, "rb");
483+
484-
            if(moon = NULL)
484+
485
    tmp = first;
486-
                printf("Plik o podanej nazwie nie istnieje.\n");
486+
487
    printf("1. Stworz nowy plik \n2. Wczytaj plik\n\n");
488
    scanf("%d", &wybierz);
489
    switch(wybierz)
490
    {
491-
            /*else
491+
492
            printf("\nPodaj nazwe nowego pliku: \n");
493-
                Wczytaj(first, pierwszy, nazwa);
493+
494
            gets(nazwa);
495-
            }*/
495+
496
            //fclose(moon);
497
            //moon = fopen(nazwa,"rb");
498
            break;
499
500
        case 2:
501
            printf("\nPodaj nazwe pliku DK do wczytania: \n");
502
            fflush(stdin);
503
            gets(nazwa1);
504
		
505
		printf("\nPodaj nazwe pliku S do wczytania: \n");
506
            fflush(stdin);
507
            gets(nazwa2);
508
            Wczytaj(first, pierwszy, nazwa, nazwa2);
509
             system("cls");
510
            
511
            break;
512
513
    }
514
515
    Wczytaj(first, pierwszy, nazwa); //Wczytujemy na wstepie dane
516
517
    do{
518
        printf("1. Wypozyczone\n2. Ksiazki, ktore chcesz kupic\n3. Dodaj ksiazke\n4. Usun ksiazke \n5. Sortowanie\n6. Autorzy - ilosc ksiazek\n7. Najpopularniejsza kategoria\n8. Wczytaj nowy plik\n9. Zapisz i zakoncz\n\n");
519
        {
520
            do{
521
                scanf("%d", &numer);
522
                if(numer<1 || numer>9)
523
                {
524
                    printf("Zly numer. Wybierz prawidlowa kategorie\n");
525
                }
526
            }while(numer<1 || numer>9);
527
        }
528
529
        system("cls");
530
531
        switch(numer)
532
        {
533
            case 1: //KSIAZKI KTORE MAM (lista Biblioteka)
534
                Wypozyczone(first);
535
                printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
536
                getch();
537
                system("cls");
538
                break;
539
540
            case 2: //KSIAZKI KTORE CHCE KUPIC (lista DoKupienia)
541
                Chce(pierwszy);
542
                printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
543
                getch();
544
                system("cls");
545
                break;
546
547
            case 3: //DODANIE KSIAZKI
548
549
                puts("Gdzie chcesz dodac nowa ksiazke?\n1. Biblioteka \n2. Do kupienia \n3. Powrot do menu");
550
                int nazwa;
551
                do{
552
                    scanf("%d", &gdzieDodac);
553
                    if(gdzieDodac<1 || gdzieDodac>3)
554
                    {
555
                    printf("Zly numer. Podaj prawidlowa kategorie.");
556
                    }
557
                } while(gdzieDodac<1 || gdzieDodac>3);
558
                system("cls");
559
                switch(gdzieDodac)
560
                {
561
                    case 1:
562
                        DodajKsiazkeB(first, pierwszy);
563
                        break;
564
565
                    case 2:
566
                        DodajKsiazkeDK(pierwszy);
567
                        break;
568
569
                    //system("cls");
570
                }
571
                printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
572
                getch();
573
                system("cls");
574
                break;
575
576
577
            case 4: //USUNIECIE KSIAZKI
578
                printf("Skad chcesz usunac ksiazke?\n1.Biblioteka\n2.Do kupienia\n\n");
579
                scanf("%d", &usuwanie);
580
                char Tytul[MAX2];
581
                switch(usuwanie)
582
                {
583
                    case 1:
584
                        printf("Podaj tytul ksiazki, ktora chcesz usunac: \n");
585
                        fflush(stdin);
586
                        gets(Tytul);
587
                        UsunB(first, Tytul);
588
                        printf("Ksiazka zostala usunieta z listy.\n\n");
589
                        printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
590
                        getch();
591
                        system("cls");
592
                        break;
593
594
                    case 2:
595
                        printf("Podaj tytul ksiazki ktora chcesz usunac: \n\n");
596
                        fflush(stdin);
597
                        //char Tytul[MAX2];
598
                        gets(Tytul);
599
                        UsunDK(pierwszy, Tytul);
600
                        printf("Ksiazka zostala usunieta z listy.\n\n");
601
                        int dodajdoB;
602
                        printf("Czy chcesz, aby ksiazka zostala jednoczesnie dodana do listy 'Biblioteka'? \n1. TAK \n2. NIE\n\n");
603
                        scanf("%d", &dodajdoB);
604
                        switch(dodajdoB)
605
                        {
606
                            case 1:
607
                                while(tmp->next)
608
                                {
609
                                tmp = tmp->next;
610
                                }
611
                                tmp->next = (ADRESB)malloc(sizeof(LISTAB));
612
                                tmp = tmp->next;
613
                                tmp->next = NULL;
614
                                printf("Uzupelnij brakujace informacje o ksiazce:\n");
615
                                printf("Podaj rok wydania ksiazki: ");
616
                                fflush(stdin);
617
                                scanf("%d", &tmp->data.Rok);
618
                                printf("Podaj wydawnictwo: ");
619
                                fflush(stdin);
620
                                gets(tmp->data.Wydawnictwo);
621
                                printf("Podaj typ ksiazki (np.: kryminal, dramat, poradnik, itd.: ");
622
                                fflush(stdin);
623
                                gets(tmp->data.Typ);
624
625
                                system("cls");
626
                                printf("Ksiazka zostala dodana do listy Biblioteka.\n\n");
627
                                break;
628
629
                            case 2:
630
                                printf("Ksiazka pozostala w liscie 'Biblioteka'");
631
                                break;
632
                        }break;
633
                }break;
634
635
            case 5: //SORTOWANIE
636
                printf("Wedlug jakiej kategorii chcesz posortowac? \n1. Autorzy \n2. Tytuly\n");
637
                fflush(stdin);
638
                scanf("%d", &sort);
639
                switch(sort)
640
                {
641
                    case 1:
642
                        SortujAutorzyB(first);
643
                        printf("\n\nWcisnij dowolny klawisz, aby powrocic do menu.\n\n");
644
                        getch();
645
                        system("cls");
646
                        break;
647
648-
                        Zapisz(first, pierwszy, moon);
648+
649-
                        puts("Plik zostal zapisany.");
649+
650
                        printf("\n\nWcisnij dowolny klawisz, aby powrocic do menu.\n\n");
651-
                        Zwolnij(first, pierwszy);
651+
652-
                        Wczytaj(first, pierwszy, Tytul);
652+
653
                        break;
654
                }break;
655
656
            case 8: //WCZYTANIE I OPEROWANIE NA NOWYM PLIKU
657
                system("cls");
658
                printf("Czy zapisac dotychczasowy? \n1. TAK \n2. NIE\n");
659
                scanf("%d", &zapis);
660
                switch(zapis)
661
                {
662
                    case 1:
663
			printf("gdzie zapisac? 1 Plik:");
664
			fflush(stdin);
665
			gets(nazwa1);
666
			printf("gdzie zapisac? 2 Plik:");
667
			fflush(stdin);
668
			gets(nazwa2);
669-
                Zapisz(first, pierwszy, moon);
669+
                        Zapisz(first, pierwszy, nazwa1,nazwa2);
670
                        puts("Plik zostal zapisany.\n");
671
672
			printf("gdzie wczytac? 1 Plik:");
673
			fflush(stdin);
674
			gets(nazwa1);
675
			printf("gdzie wczytac? 2 Plik:");
676
			fflush(stdin);
677
			gets(nazwa2);
678
                        getch();
679
                        Wczytaj(first, pierwszy, nazwa1, nazwa2);
680
                        printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
681
                        getch();
682
                        system("cls");
683
                        break;
684
685
                    case 2: // Nie rozumiem co tu robisz
686
                        printf("\nNazwa nowego pliku:");
687
                        fflush(stdin);
688
                        gets(Tytul);
689
                        printf("\nWcisnij dowolny klawisz aby wrocic do menu.\n");
690
                        getch();
691
                        system("cls");
692
                        break;
693
                } break;
694
695
            case 9: //ZAPIS DANYCH I KONIEC PROGRAMU
696
		printf("gdzie zapisac? 1 Plik:");
697
			fflush(stdin);
698
			gets(nazwa1);
699
			printf("gdzie zapisac? 2 Plik:");
700
                Zapisz(first, pierwszy, nazwa1, nazwa2);
701
                printf("Wszystkie dane zostaly zapisane.\nDo zobaczenia w drugim semestrze :)\n\n");
702
                break;
703
704
            }
705
706
        }while(numer>0 && numer<9);
707
708
709
    return 0;
710
}