Programowanie w języku C 2 - Ćwieczenia dodatkowe zestaw A
Autor: Mariusz Wiśniewski

Zadania:
  1. Wykorzystując bibliotekę Curses opracować program, w którym będą gromadzone dane o użytkownikach serwisu samochodowego. W szczególności należy opracować interface aplikacji z co najmniej jedną formatką oraz zapewnić elementy aplikacji pozwalające na wyświetlanie przewijanej listy osób i innych danych związanych z tymi osobami (np. nr rejestracyjny, data zgłoszenia, krótki opis usterki).
  2. Wykorzystując bibliotekę Curses opracować program, w którym będą trzy formatki, wyświetlane po wybraniu i naciśnięciu przycisku. W jednej z formatek muszą znajdować się pola służące do wprowadzania danych, które będzie trzeba wyświetlać w pozostałych formatkach. Należy zapewnić taką funkcjonalność, że po zamknięciu i ponownym otwarciu formatek dane w nich zawarte nie ulegały zatarciu.
  3. Wykorzystując bibliotekę Curses opracować program, w którym będzie opracowany interface graficzny (tekstowy) pozwalający na edycję tekstu wielowierszowego. W przypadku wierszy o długości przekraczających szerokość okna edycyjnego należy wprowadzić funkcjonalność powodująca przesłanie nadmiaru danych do nowego wiersza. Aplikacja ma mieć możliwość zapisu i odczytu danych do pliku tekstowego.
  4. W pliku tekstowym znajdują się w osobnych wierszach liczby zapisane w różnych systemach liczbowych. Format wiersza jest następujący: S:LLL..LLL, gdzie S jest znacznikiem systemu liczbowego, a L są cyframi liczby. Wykorzystując bibliotekę Curses opracować program, w którym w jednej formatce będzie możliwe określenie symboli S. Ponadto w oknie głównym aplikacji należy utworzyć tabelkę, w której kolumnach będą znajdowały się wczytane liczby, po jednej kolumnie na każdy z systemów liczbowych.
  5. W pliku tekstowym znajdują się litery, cyfry i znaki białe. Należy wczytać ten plik a następnie w aplikacji dla każdej grupy znaków wyświetlać na żądanie formatkę w której będzie znajdować się podsumowanie na temat dotyczących jej znaków (np. liczba wystąpień, stosunek wystąpień do liczby wszystkich znaków). Ponadto aplikacja powinna mieć możliwość zapisu statystyk do pliku tekstowego. Interface należy opracować wykorzystując bibliotekę Curses.
  6. Wykorzystując bibliotekę Curses wykonać aplikację zegara, gdzie cyfry główne godziny i minut będą miały wysokość co najmniej 8 wierszy, cyfry sekund będą miały wysokość od 3 do 5-ciu wierszy. Dodatkowo pod cyframi godziny, minuty i sekund ma być wyświetlana słownie nazwa dnia tygodnia oraz jego numer. Wysokość tego napisu powinna mieć taka samą wysokość jak cyfry sekund. Zegar ma pokazywać aktualny czas wraz z animacją jego zmiany.
  7. W pliku tekstowym znajdują się liczby, po jednej na wiersz, określające wartość pieniężną w złotych - format AAAAzł BBBBBgr, gdzie A - cyfry wartości w złotych, B - cyfry wartości w groszach. Należy opracować program, który wczyta te dane, a następnie wyświetli słownie wartości znajdujące się w wierszach. W aplikacji należy wyświetlać dane w formie tabelarycznej, gdzie w pierwszej kolumnie będzie kwota a w drugiej kwota zapisana słownie. Ponadto kwota słowna nie powinna wychodzić poza ekran (wiersze należy zawijać), co trzeba uwzględnić w sposobie wyświetlania danych w tabelce. Interface należy opracować wykorzystując bibliotekę Curses.
  8. Wykorzystując bibliotekę Curses opracować program wczytujący plik tekstowy i wyświetlający go w oknie (z zawijaniem wierszy) z możliwością przewijania zawartości okna. Ponadto aplikacja musi posiadać mechanizmy pozwalające na wyszukiwanie słów (pierwszego i następnych).
  9. Opracować program kalendarza, wyświetlający dni miesiąca w postaci tabelarycznej zorganizowanej tygodniami z możliwością dodania notatek do poszczególnych dni (maksymalnie 3 notatki). Należy umożliwić zapis i odczyt danych wykorzystywane w aplikacji. Interface należy opracować wykorzystując bibliotekę Curses.
  10. Wykorzystując bibliotekę Curses opracować program prostego kalkulatora z historią operacji wyświetlanej w osobnej formatce. Dane do operacji mają być wprowadzane przy pomocy przycisków.

__