Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define LN 50
- #define ROZMIAR 10
- struct rekord {
- char imie[LN];
- char nazwisko[LN];
- int rok_urodzenia;
- char numer_konta[LN];
- char nazwa_banku[LN];
- float srodki;
- };
- void wyswietl(struct rekord *wsk, int max)
- {
- for (int n = 0; n < max; n++)
- {
- printf("Imie: %s\nNaziwsko: %s\nRok urodzenia: %d\nNumer konta: %s\nNazwa banku: %s\nSrodki: %.2f\n\n", (wsk + n)->imie, (wsk + n)->nazwisko, (wsk + n)->rok_urodzenia, (wsk + n)->numer_konta, (wsk + n)->nazwa_banku, (wsk + n)->srodki);
- }
- }
- void wyswietl_dana_osobe(struct rekord *wsk, int n)
- {
- printf("Imie: %s\nNaziwsko: %s\nRok urodzenia: %d\nNumer konta: %s\nNazwa banku: %s\nSrodki: %.2f\n\n", (wsk + n)->imie, (wsk + n)->nazwisko, (wsk + n)->rok_urodzenia, (wsk + n)->numer_konta, (wsk + n)->nazwa_banku, (wsk + n)->srodki);
- }
- struct rekord* najmniejsza_wartosc(struct rekord* wsk, int max)
- {
- struct rekord *najmniejsza;
- najmniejsza = wsk;
- for (int i = 1; i < max; i++)
- {
- if (najmniejsza->srodki >(wsk + i)->srodki)
- najmniejsza = wsk + i;
- }
- return(najmniejsza);
- }
- struct rekord* najwieksza_wartosc(struct rekord* wsk, int max)
- {
- struct rekord *najwieksza;
- najwieksza = wsk;
- for (int i = 1; i < max; i++)
- {
- if (najwieksza->srodki < (wsk + i)->srodki)
- najwieksza = wsk + i;
- }
- return(najwieksza);
- }
- void sumuj_srodki(struct rekord* wsk, int max)
- {
- float suma = 0;
- for (int m = 0; m < max; m++)
- {
- suma += (wsk + m)->srodki;
- }
- printf("Suma srodkow wszystkich uzytkownikow to: %.2f\n\n", suma);
- }
- void dodaj(struct rekord *wsk, int max)
- {
- for (int i = 0; i < max; i++)
- {
- printf("Podaj imie:\n");
- gets((wsk + i)->imie);
- printf("Podaj nazwisko:\n");
- gets((wsk + i)->nazwisko);
- printf("Podaj rok urodzenia:\n");
- scanf_s(" %d", &(wsk + i)->rok_urodzenia);
- rewind(stdin);
- printf("Podaj numer konta:\n");
- gets((wsk + i)->numer_konta);
- printf("Podaj nazwe banku:\n");
- gets((wsk + i)->nazwa_banku);
- printf("Podaj srodki:\n");
- scanf_s("%f", &(wsk + i)->srodki);
- printf("\n");
- rewind(stdin);
- }
- }
- int main(void)
- {
- struct rekord* wsk;
- struct rekord* wsk2;
- int operacja;
- char wybor;
- int i = 0;
- int liczba_osob;
- int pamiec = 2;
- int dana_osoba;
- struct rekord* osoba; //dawna tablica z [ROZMIAR]
- printf("STRUKTURY\n\nWprowadz osoby\nIle osob chcesz wpisac: ");
- scanf_s("%d", &liczba_osob);
- rewind(stdin);
- osoba = (struct dane*) malloc(liczba_osob * sizeof(*osoba));
- if (liczba_osob >= 1)
- {
- rewind(stdin);
- printf("\nTeraz dodaj osoby\n");
- dodaj(osoba, liczba_osob);
- }
- else
- {
- printf("Nie mozesz wpisac 0 osob!\n");
- }
- rewind(stdin);
- for (;; i++)
- {
- printf("Wybierz, co chcesz zrobic:\n1 - wyswietl wszystkie osoby\n2 - wyswietl najmniej srodkow\n3 - wyswietl najwiecej srodkow\n4 - wyswietl sume wszystkich srodkow\n5 - wyszukaj dana osobe\n\nWpisz opcje: ");
- scanf_s("%d", &operacja);
- rewind(stdin);
- switch (operacja)
- {
- case 1:
- if (liczba_osob == 0)
- {
- printf("Wpisales 0 osob! Wlacz program ponownie i wpisz osoby ponownie\n");
- }
- else
- {
- wyswietl(osoba, liczba_osob);
- }
- break;
- case 2:
- if (liczba_osob == 0)
- {
- printf("Wpisales 0 osob! Wlacz program ponownie i wpisz osoby ponownie\n");
- }
- else
- {
- wsk = najmniejsza_wartosc(osoba, liczba_osob);
- printf("Najmniejsza wartosc na koncie to: %.2f\n\n", (wsk->srodki));
- }
- break;
- case 3:
- if (liczba_osob == 0)
- {
- printf("Wpisales 0 osob! Wlacz program ponownie i wpisz osoby ponownie\n");
- }
- else
- {
- wsk2 = najwieksza_wartosc(osoba, liczba_osob);
- printf("Najwieksza wartosc na koncie to: %.2f\n\n", (wsk2->srodki));
- }
- break;
- case 4:
- if (liczba_osob == 0)
- {
- printf("Wpisales 0 osob! Wlacz program ponownie i wpisz osoby ponownie\n");
- }
- else
- {
- sumuj_srodki(osoba, liczba_osob);
- }
- break;
- case 5:
- if (liczba_osob == 0)
- {
- printf("Wpisales 0 osob! Wlacz program ponownie i wpisz osoby ponownie\n");
- }
- else
- {
- printf("Ktora osobe chcesz wyswietlic: ");
- scanf_s("%d", &dana_osoba);
- if (dana_osoba > liczba_osob)
- {
- printf("Nie ma takiej osoby\n");
- }
- else
- {
- wyswietl_dana_osobe(osoba, dana_osoba - 1);
- }
- }
- break;
- default:
- rewind(stdin);
- printf("Nie ma takiej opcji!\n\n");
- break;
- }
- printf("Czy chcesz kontynuowac? t -> tak / inny znak -> nie: ");
- scanf_s(" %c", &wybor);
- printf("\n");
- if (wybor == 't')
- {
- continue;
- rewind(stdin);
- }
- else
- {
- break;
- }
- }
- free(osoba);
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement