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 typuDANE
do pliku nagłówkowego o nazwiebaza.h
. Utwórz funkcje o nazwiewyswietl_osobe
(definicję funkcji umieść w plikubaza.c
). Funkcja wyświetla zawartość podanej struktury. Przetestuj działanie funkcji. - zaimplementuj funkcję
wczytaj_osoba
wczytującą zawartość pojedynczej strukturyosoba
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
idzien
(jakiego typu będą te pola?). Dodaj do strukturyosoba
nowe pole o nazwiedata_urodzenia
typustruct 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 nazwiezespolone
zawierającą dwa pola:re
iim
. Następnie w plikachfmat.c
ifmat.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.