Zadanie 6 (termin oddania 26.01, 18:30) --------------------------------------- Napisz program umożliwiający przeglądanie i modyfikowanie bazy danych przechowującej nastepujące informacje o osobach: - imie: napis długosci maksymalnie 15 - nazwisko: napis długości maksymalnie 20 - plec: wartość typu wyliczeniowego (kobieta, mężczyzna) - rokUrodzenia: liczba całkowita Baza danych bedzie zapisana w trzech plikach. Pierwszy z nich przechowuje rekordy z informacjami wymienionymi powyżej. Dwa pozostałe pliki (tzw. indeksy) będą plikami liczb całkowitych (longint) zawierającymi numery rekordów bazy danych uporządkowane w kolejności niemalejącej wartości odpowiednio pól "nazwisko" oraz "rokUrodzenia". Indeksy pozwolą na efektywną realizację wyszukiwania rekordów. Jeśli np. pojawi się potrzeba odnalezienia rekordu o określonej wartości pola "rokUrodzenia", zastosujemy wyszukiwanie binarne jego numeru w indeksie. Program będziemy wywoływali z trzema parametrami będącymi kolejno: nazwą pliku rekordów, nazwą pliku indeksu dla pola "nazwisko" i nazwą pliku indeksu dla pola "rokUrodzenia". Po uruchomieniu program oczekuje na polecenia wydawane przez użytkownika. Polecenie wydajemy wprowadzając w oddzielnym wierszu pojedynczą literę, a następnie, w kolejnych wierszach, ewentualne argumenty polecenia. Niektóre polecenia wymagają od programu wyświetlenia zawartości rekordów. Każdy rekord należy wyświetlać w oddzielnym wierszu podając kolejno: fizyczny numer rekordu w bazie danych, spacje, imię, spacje, nazwisko, spacje, płeć (napis kobieta lub mezczyzna), spacje i rok urodzenia. Program powinien wykonywać następujące polecenia: i - wyszukanie w bazie wszystkich osób o imieniu będącym argumentem polecenia. W odpowiedzi wyświetlamy zawartości odnalezionych rekordów. n - wyszukanie w bazie osób o podanym jako argument nazwisku. p - wyszukanie osób o podanej płci. Argumentem będzie napis: kobieta lub mezczyzna r - wyszukanie osób urodzonych w podanym roku a - wyświetlenie wszystkich rekordów bazy danych uporządkowanych wg niemalejącej wartości pola "nazwisko" o - wyświetlenie wszystkich rekordów bazy danych uporządkowanych wg niemalejącej wartości pola "rokUrodzenia" d - dodanie rekordu do bazy danych. Argumentami polecenia będą wartości, które należy umieścić w poszczególnych polach. W wypadku pola "plec" argumentem będzie napis kobieta lub mezczyzna u - usunięcie rekordu o numerze podanym jako argument k - zakończenie pracy z bazą danych Operacje szukające rekordów wg wartości pól "nazwisko" i "rokUrodzenia" powinny korzystać z indeksów bazy danych. Operacje dodawania i usuwania do bazy danych powinny także aktualizować pliki indeksów. Należy zadbać o to, by po usunięciu rekordu z bazy danych nie pozostala w niej "dziura". W tym celu należy w miejsce po usuniętym rekordzie przenieść ostatni rekord bazy.