Kod: Zaznacz cały
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define ROZMIAR 16
struct osoba
{
char imie[ROZMIAR];
char nazwisko[ROZMIAR];
int rok;
struct osoba *nastepny;
};
void pokaz_zawartosc(struct osoba* glowa1); /* wypisuje zawartosc listy */
struct osoba* dodaj_poczatek(struct osoba** glowa1); /* dodaje element na poczatku listy */
void szukaj_rok(struct osoba* glowa1,int lata1); /* wyszukuje element wg. roku */
void dodaj_miejsce(struct osoba** glowa1); /* dodaje element za wyszkuanym indeksem */
void usun_poczatek(struct osoba** glowa1); /* usuwa element z poczatku listy */
void usun_zawartosc(struct osoba** glowa1); /* usuwa zawartosc listy */
int main()
{
int proces,lata=0;
struct osoba *glowa=NULL;
for(;;system("cls"))
{
printf("Wybierz polecenie aby edytowac ksiazke z danymi:
");
printf("[1] --> Wyswietlanie zawartosci listy.
");
printf("[2] --> Dodawanie elementu na poczatku listy.
");
printf("[3] --> Wszukiwanie elementu na podstawie roku urodzenia.
");
printf("[4] --> Dodawanie elementu za wskazanym indeksem.
");
printf("[5] --> Usuwanie elementu z poczatku listy.
");
printf("[6] --> Usuwanie calej listy poprzez zwolnienie pamieci.
");
printf("[0] --> Zakonczenie programu.
");
printf("Twoje polecenie to: ");
scanf("%d",&proces);
system("cls");
switch(proces)
{
case 1 : pokaz_zawartosc(glowa); break;
case 2 : glowa=dodaj_poczatek(&glowa); break;
case 3 : szukaj_rok(glowa,lata); break;
case 4 : dodaj_miejsce(&glowa); break;
case 5 : usun_poczatek(&glowa); break;
case 6 : usun_zawartosc(&glowa); break;
case 0 : return -1; /* spróbuj goto */
}
}
free(glowa);
return 0;
}
void pokaz_zawartosc(struct osoba* glowa1)
{
if(glowa1==NULL)
printf("Lista jest pusta.
");
else
{
int i;
struct osoba* glowa2;
printf("| %6s | %16s | %16s | %4s |
","Indeks","Imie","Nazwisko","Rok");
for(glowa2=glowa1;glowa2!=NULL;glowa2=glowa2->nastepny,i++)
printf("| %6d | %16s | %16s | %4d |
",i,glowa2->imie,glowa2->nazwisko,glowa2->rok);
}
printf("[ENTER] aby powrocic do menu");
getch();
return;
}