Projekt: baza danych osobowych cd
Podsumowanie zajęć:
- klasy i obiekty, pola i metody
- zakresy dostępu, hermetyzacja: private, public
- konstruktory (domniemany, kopiujący), destruktory
- przeciążanie funkcji, przeciążanie operatorów (operator przypisania)
- strumienie (
iostream
), łańcuchy znakowe (string
) - typ wyliczeniowy: enum class
Dodatkowe zagadnienia:
- konwersja typów za pomocą konstruktora z jednym argumentem
- konwersja liczb na napisy: to_string(), stoi()
Projekt: Baza danych osobowych c.d.
Do projektu bazy danych z poprzednich zajęć dodajemy możliwość zapisu i odczytu bazy danych z pliku.
- Opis projektu: Projekt: baza danych osobowych
Uzupełnij projekt o poniższe elementy.
Do klasy Data
dodaj:
- konstruktor
Data(const string& s)
, który inicjuje obiekt reprezentujący datę napisem w postaciDD-MM-YYYY
. Zakładamy, że argument będzie zawsze zawierała poprawny format daty, metoda nie musi tego weryfikować. Tego typu konstruktor pozwoli na konwersję napisu na datę.
Data d=(Data)"21-11-1999";
Do klasy Baza
dodaj:
- metodę
Zapisz
, która zapisuje zawartość bazy danych w pliku tekstowym wskazanym w argumencie plikuvoid Zapisz(const char* nazwa_pliku) const
- metoda
Wczytaj
, która wypełnia bazę danych zawartością podanego w argumencie plikuBaza& Wczytaj(const char* nazwa_pliku)
Zakładamy, że wskazany plik został utworzony wcześniej metodą
Zapisz
. Zaproponuj odpowiedni format zapisu/odczytu danych tak aby metodaWczytaj
była w stanie bezbłednie odtworzyć zapisany wczesniej stan bazy. Jeżeli wskazany plik istnieje i można go odczytać to aktualna zawartość bazy danych jest zastępowana zawartością pliku, w przeciwnym razie zawartość bazy danych pozostaje bez zmian.
Program
Rozbuduj program realizowany na poprzednich zajęciach (Zadanie 5: Baza danych osobowych) o możliwość zapisu i odczytu bazy danych z pliku. Przy pierwszym uruchomieniu program startuje z pustą bazą danych. Użytkownik może dodawać rekordy do bazy danych, przeglądać zawartość bazy danych oraz sortować rekordy alfabetycznie. Program powinien działać w pętli do momentu wybrania opcji zakończenia pracy. W momencie zamknięcia programu (po wybraniu opcji 4 z menu) aktualny stan bazy danych jest zapisywany w pliku znajdującym się w bieżącym katalogu programu. Przy każdym kolejnym uruchomieniu, jeszcze przed wypisaniem menu, program sprawdza, czy w bieżącym katalogu znajduje się plik zawierający zapis bazy danych z poprzedniego uruchomienia. Jeżeli plik istnieje to stan bazy danych zostaje odtworzony z tego pliku i program kontynuuje swoje działanie.