Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 1 wczytaj dane z pliku
- 2 Zapisz dane do pliku
- 3 Wypisz dane w postaci tabeli
- 4 Sortuj dane
- a)w/g imienia
- B) w/g nazwiska
- c) w/g wieku
- d) w/g zarobku
- 5 Dodaj osobe do tabeli
- 6 Usuń osobe z tabeli
- 7 Zakończenie programu */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct{
- char imie[20];
- char nazwisko[20];
- int wiek;
- double zarobki;} Osoba;
- int wczytaj_dane(Osoba os[])
- {
- char s[20];
- printf("podaj nazwe pliku: ");
- scanf("%s",s);
- FILE *fin=fopen(s, "r");
- int n=0;
- while(fscanf(fin,"%s %s %d %lf", os[n].imie, os[n].nazwisko, &os[n].wiek, &os[n].zarobki)==4)n++;
- fclose(fin);
- printf("wczytanoo dane %d osob \n", n);
- return n;
- }
- int zapisz_dane(Osoba os[],int n)
- {
- int c;
- char s[20];
- printf("podaj nazwe pliku: ");
- scanf("%s",s);
- FILE *fout=fopen(s, "w");
- for(c=0; c<n; c++)
- {
- fprintf(fout, "%s %s %d %lf \n", os[c].imie, os[c].nazwisko, os[c].wiek, os[c].zarobki);
- }
- fclose(fout);
- printf("Zapisano dane %d osob \n", c);
- }
- int wypisz_tabela(Osoba os[], int n)
- {
- int c;
- printf("__________________________________________\n");
- printf("| Imie | Nazwisko | Wiek | Zarobki |\n");
- printf("__________________________________________\n");
- for(c=0; c<n; c++)
- {
- printf("| %-8s | %-12s |%5d |%9.2f | \n",os[c].imie,os[c].nazwisko,os[c].wiek,os[c].zarobki);
- }
- }
- int porownaj_wiek(const void*a, const void*b)
- {
- Osoba *os1=(Osoba *)a;
- Osoba *os2=(Osoba *)b;
- return os1->wiek-os2->wiek;}
- void qsort(void *tablica, size_t nelem, size_t rozmiar, int (*porownaj)(const void*a, const void*b));
- qsort((void*)os, n, sizeof(Osoba), porownaj_wiek);
- int menu()
- {
- printf("1. Wczytaj dane \n");
- printf("2. Zapisz dane do pliku \n");
- printf("3. Wypisz dane w postaci tabeli \n");
- printf("4. Sortuj dane w/g imienia\n");
- printf("Dokonaj wyboru: ");
- int n;
- scanf("%d",&n);
- return n;
- }
- int main (int argc, char *argv[])
- {
- Osoba os[100];
- int liczba;
- while (1)
- switch (menu()){
- case 1:
- liczba=wczytaj_dane(os);
- break;
- case 2:
- zapisz_dane(os,liczba);
- break;
- case 3:
- wypisz_tabela(os,liczba);
- case 4:
- qsort(os);
- break;
- default:
- printf("Nie ma takiej opcji. \n");
- break;}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement