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ściami:PLN,EUR,USDidentyfikator- unia zawierająca polaPESEL(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ściami:Pierwszy,Drugi,Trzeci,Czwarty,Piaty.tryb_studiow- pole bitowe określające, czy student jest na studiach stacjonarnych (1) czy niestacjonarnych (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 (temperatura, wilgotność, ciśnienie) przechowywane są w jednej strukturze zawierającej nastepujace pola:
- nazwa czujnika (łańcuch znakowy),
- typ czujnika - typ wyliczeniowy z wartościami:
TEMPERATURA,WILGOTNOSC,CISNIENIE, - wartość odczytu - unia umożliwiająca przechowywać różne typy 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. - Uzyj pola bitowego lub typu
enumdo okreslenia 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.