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

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.

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, USD
    • identyfikator - unia zawierająca pola 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.

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 jest na studiach stacjonarnych (1) czy niestacjonarnych (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.

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 typedef do zdefiniowania aliasu dla struktury czujnika.
  • Uzyj pola bitowego lub typu enum do 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.