Zadania: typy złożone (struktury, unie, pola bitowe)
1. System zarządzania biblioteką
Opis: Napisz program, który umożliwia zarządzanie zbiorem książek w bibliotece. Program powinien pozwalać na dodawanie, usuwanie, wyszukiwanie i wyświetlanie książek.
Wymagania:
- Zdefiniuj strukturę
Ksiazkazawierającą pola:tytuł,autor,rok_wydania,gatunek(typ wyliczeniowyenum). - Zdefiniuj typ wyliczeniowy
Gatunekz wartościami:Fantasy,SciFi,Kryminal,Romans,Inne. - Napisz funkcje:
dodajKsiazke()– dodaje książkę do tablicy struktur.usunKsiazke()– usuwa książkę po tytule.wyswietlKsiazki()– wyświetla wszystkie książki.wyszukajKsiazke()– wyszukuje książkę po tytule lub autorze.
- Użyj
typedefdo zdefiniowania aliasu dla strukturyKsiazka. - Dodaj pole bitowe do struktury
Ksiazka, które będzie informowało, czy książka jest wypożyczona (1) czy dostępna (0).
Napisz program testujący powyższe funkcje, tworzący kilka książek i wykonujący na nich różne operacje.
2. Symulator konta bankowego
Opis: Napisz program symulujący proste konto bankowe, które umożliwia wpłaty, wypłaty i sprawdzanie stanu konta.
Wymagania:
- Zdefiniuj strukturę
Kontozawierającą pola:numer_kontareprezentowany przez 26 cyfr,saldo– wartość konta (typdouble),waluta– typ wyliczeniowyenumz wartościamiPLN,EURiUSD,identyfikator– unia zawierająca polePESEL(11 znaków) lubNIP(10 znaków),typ_identyfikatora– pole bitowe określające, czy identyfikatorem jestPESEL(1), czyNIP(0).
- Napisz funkcje:
wplata()– zwiększa saldo konta o podaną kwotę.wyplata()– zmniejsza saldo konta o podaną kwotę (sprawdź, czy jest wystarczająca ilość środków).sprawdzSaldo()– wyświetla aktualne saldo.- Użyj
typedefdo zdefiniowania aliasu dla strukturyKonto.
Napisz program testujący powyższe funkcje, tworzący konto bankowe i wykonujący na nim kilka operacji.
3. System zarządzania studentami
Opis: Napisz program, który umożliwia zarządzanie danymi studentów na uczelni.
Wymagania:
- Zdefiniuj strukturę
Studentzawierającą pola:imie- łańcuch znakowy,nazwisko- łańcuch znakowy,nr_indeksu- numer indeksu (typint),rok_studiow– typ wyliczeniowyenumz wartościamiPierwszy,Drugi,Trzeci,Czwarty,Piaty,tryb_studiow– pole bitowe określające, czy student studiuje stacjonarnie (1), czy niestacjonarnie (0),- Użyj
typedefdo zdefiniowania aliasu dla strukturyStudent.
- Napisz funkcje:
dodajStudenta()– dodaje studenta do tablicy struktur.usunStudenta()– usuwa studenta po numerze indeksu.wyswietlStudentow()– wyświetla listę studentów.znajdzStudenta()– wyszukuje studenta po numerze indeksu.
Napisz program testujący powyższe funkcje, tworzący kilka rekordów studentów i wykonujący na nich różne operacje.
4. System czujników
Opis: Napisz program do zarządzania odczytami z różnych czujników środowiskowych (temperatura, wilgotność, ciśnienie).
Wymagania:
- Odczyty z różnych czujników (temperatury, wilgotności i ciśnienia) są przechowywane w jednej strukturze zawierającej następujące pola:
- nazwa czujnika (łańcuch znakowy),
- typ czujnika – typ wyliczeniowy z wartościami
TEMPERATURA,WILGOTNOSCiCISNIENIE, - wartość odczytu – unia umożliwiająca przechowywanie różnych typów danych w zależności od typu czujnika:
- dla czujnika temperatury: wartość typu
float(np. 23.5 °C), - dla czujnika wilgotności: wartość typu
unsigned int(np. 65%), - dla czujnika ciśnienia: wartość typu
unsigned int(np. 1013 hPa),
- Napisz funkcje:
wyswietlOdczyt()– wyświetla odczyt pomiaru w zależności od typu czujnika.przeliczTemperature()– przelicza temperaturę z Celsjusza na Fahrenheity.
- Użyj
typedefdo zdefiniowania aliasu dla struktury czujnika. - Użyj pola bitowego lub typu
enumdo określenia jednostki temperatury (Celsjusz/Fahrenheit).
Napisz program testujący powyższe funkcje, tworzący kilka odczytów z różnych czujników i wyświetlający je.