Ślad: • zad-typy-zlozone

Zadania: typy złożone (struktury, unie, pola bitowe)

Action unknown: siteexport_addpage

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ę Ksiazka zawierającą pola: tytuł, autor, rok_wydania, gatunek (typ wyliczeniowy enum).
  • Zdefiniuj typ wyliczeniowy Gatunek z 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 typedef do zdefiniowania aliasu dla struktury Ksiazka.
  • 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ę Konto zawierającą pola:
    • numer_konta reprezentowany przez 26 cyfr,
    • saldo – wartość konta (typ double),
    • waluta – typ wyliczeniowy enum z wartościami PLN, EUR i USD,
    • identyfikator – unia zawierająca pole PESEL (11 znaków) lub NIP (10 znaków),
    • typ_identyfikatora – pole bitowe określające, czy identyfikatorem jest PESEL (1), czy NIP (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 typedef do zdefiniowania aliasu dla struktury Konto.

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ę Student zawierającą pola:
    • imie - łańcuch znakowy,
    • nazwisko - łańcuch znakowy,
    • nr_indeksu - numer indeksu (typ int),
    • rok_studiow – typ wyliczeniowy enum z wartościami Pierwszy, Drugi, Trzeci, Czwarty, Piaty,
    • tryb_studiow – pole bitowe określające, czy student studiuje stacjonarnie (1), czy niestacjonarnie (0),
    • Użyj typedef do zdefiniowania aliasu dla struktury Student.
  • 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, WILGOTNOSC i CISNIENIE,
    • 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 typedef do zdefiniowania aliasu dla struktury czujnika.
  • Użyj pola bitowego lub typu enum do 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.