Struktury

Deklaracja struktury i typedef

#include <stdio.h> #include <string.h> #define MAX 256 // deklaracja typu struct osoba struct osoba { char nazwisko[MAX]; char imie[MAX]; int wiek; }; typedef struct osoba DANE; int main() { struct osoba agent; DANE student; struct osoba *wsk; strcpy(agent.nazwisko,"Bond"); strcpy(agent.imie,"James"); agent.wiek = 33; strcpy(student.nazwisko,"Kowalski"); strcpy(student.imie,"Jan"); student.wiek = 21; printf("Imie %s\nNazwisko %s\nWiek %d\n\n",agent.imie,agent.nazwisko,agent.wiek); printf("Imie %s\nNazwisko %s\nWiek %d\n\n",student.imie,student.nazwisko,student.wiek); wsk = &agent; strcpy((*wsk).nazwisko,"Kloss"); strcpy(wsk->imie,"Hans"); wsk->wiek--; printf("Imie %s\nNazwisko %s\nWiek %d\n\n",agent.imie,agent.nazwisko,agent.wiek); }

Zadania domowe

Baza danych

przenieś deklarację struktury osoba oraz typu DANE do pliku nagłówkowego o nazwie baza.h. Utwórz funkcje o nazwie wyswietl_osobe (definicję funkcji umieść w pliku baza.c). Funkcja wyświetla zawartość podanej struktury. Przetestuj działanie funkcji.

zaimplementuj funkcję wczytaj_osoba wczytującą zawartość pojedynczej struktury osoba z klawiatury.

zaimplementuj prostą bazę danych osobowych. Struktury zawierające dane przechowuj w odpowiedniej tablicy. Dla uproszczenia zakładamy, że maksymalna ilość wpisów nie przekroczy 1000.

zaimplementuj funkcją która wyszuka w tak stworzonej bazie osobę wg. zadanego wzorca. Szukany wzorzec może pojawić się w nazwisku lub imieniu. Funkcja powinna zwrócić pierwszy pasujący rekord.

zaimplementuj w programie z zajęć (baza danych osobowych) możliwość sortowania wpisów w kolejności alfabetycznej

dodaj do programu z poprzedniego zadania menu z możliwością wyboru następujących akcji: dodaj wpis, usuń wpis o podanym numerze, wyświetl wszystkie wpisy w kolejności alfabetycznej, zamknij program.

stwórz nową strukturę o nazwie data zawierającą trzy pola: rok, miesiąc i dzien (jakiego typu będą te pola?). Dodaj do struktury osoba nowe pole o nazwie data_urodzenia typu struct data i uzupełnij działanie programu z zajęć tak aby umożliwiał wprowadzanie i poprawne wyświetlanie wpisów zawierających datę urodzenia podanej osoby.

przekształć bazę danych osobowych z poprzednich zajęć tak aby tablica zawierająca struktury była przydzielana dynamicznie. Na tworzymy bazę mogącą pomieścić 10 wpisów a przypadku gdy tablica zostanie całkowicie wypełniona zwiększamy jej rozmiar dwukrotnie (za pomocą funkcji realloc)

zaimplementuj prostą bazę danych osobowych w oparciu o listę jednokierunkową

Liczby zespolone

w pliku fmat.h zadeklaruj strukturę o nazwie zespolone zawierającą dwa pola: re i im. Następnie w plikach fmat.c i fmat.h utwórz następujące funkcje: dodawanie - funkcja dodaje dwie liczby zespolone, iloczyn - funkcja oblicza iloczyn dwóch liczb zespolonych, modul - funkcja zwraca modul liczby zespolonej, argument - funkcja zwraca argument funkcji zespolonej. Przetestuj te funkcje w przykładowym programie.