Zadanie 6 (termin oddania 26.01, 18:30) --------------------------------------- Napisz program umozliwiajacy przegladanie i modyfikowanie bazy danych przechowujacej nastepujace informacje o osobach: - imie: napis dlugosci maksymalnie 15 - nazwisko: napis dlugosci maksymalnie 20 - plec: wartosc typu wyliczeniowego (kobieta,mezczyzna) - rokUrodzenia: liczba calkowita Baza danych bedzie zapisana w trzech plikach. Pierwszy z nich przechowuje rekordy z informacjami wymienionymi powyzej. Dwa pozostale pliki (tzw. indeksy) beda plikami liczb calkowitych (longint) zawierajacymi numery rekordow bazy danych uporzadkowane w kolejnosci niemalejacej wartosci odpowiednio pol "nazwisko" oraz "rokUrodzenia". Indeksy pozwola na efektywna realizacje wyszukiwania rekordow. Jesli np. pojawi sie potrzeba odnalezienia rekordu o okreslonej wartosci pola "rokUrodzenia", zastosujemy wyszukiwanie binarne jego numeru w indeksie. Program bedziemy wywolywali z trzema parametrami bedacymi kolejno: nazwa pliku rekordow, nazwa pliku indeksu dla pola "nazwisko" i nazwa pliku indeksu dla pola "rokUrodzenia". Po uruchomieniu program oczekuje na polecenia wydawane przez uzytkownika. Polecenie wydajemy wprowadzajac w oddzielnym wierszu pojedyncza litere, a nastepnie, w kolejnych wierszach, ewentualne argumenty polecenia. Niektore polecenia wymagaja od programu wyswietlenia zawartosci rekordow. Kazdy rekord nalezy wyswietlac w oddzielnym wierszu podajac kolejno: fizyczny numer rekordu w bazie danych, spacje, imie, spacje, nazwisko, spacje, plec (napis kobieta lub mezczyzna), spacje i rok urodzenia. Program powinien wykonywac nastepujace polecenia: i - wyszukanie w bazie wszystkich osob o imieniu bedacym argumentem polecenia. W odpowiedzi wyswietlamy zawartosci odnalezionych rekordow. n - wyszukanie w bazie osob o podanym jako argument nazwisku. p - wyszukanie osob o podanej plci. Argumentem bedzie napis: kobieta lub mezczyzna r - wyszukanie osob urodzonych w podanym roku a - wyswietlenie wszystkich rekordow bazy danych uporzadkowanych wg niemalejacej wartosci pola "nazwisko" o - wyswietlenie wszystkich rekordow bazy danych uporzadkowanych wg niemalejacej wartosci pola "rokUrodzenia" d - dodanie rekordu do bazy danych. Argumentami polecenia beda wartosci, ktore nalezy umiescic w poszczegolnych polach. W wypadku pola "plec" argumentem bedzie napis kobieta lub mezczyzna u - usuniecie rekordu o numerze podanym jako argument k - zakonczenie pracy z baza danych Operacje szukajace rekordow wg wartosci pol "nazwisko" i "rokUrodzenia" powinny korzystac z indeksow bazy danych. Operacje dodawania i usuwania bazy danych powinny takze aktualizowac pliki indeksow. Nalezy zadbac o to, by po usunieciu rekordu z bazy danych nie pozostala w niej "dziura". W tym celu nalezy w miejsce po usunietym rekordzie przeniesc ostatni rekord bazy.