Spis treści

Projekt: baza danych osobowych

Podsumowanie zajęć:

Dodatkowe zagadnienia:

Projekt: Baza danych osobowych

Zaimplementuj program realizujący bazę danych przechowującą dane osobowe: imię (lub imiona), nazwisko, data urodzenia, płeć. Baza danych powinna umożliwiać następujące funkcjonalności:

Zaproponuj i zaimplementuj odpowiednie klasy pozwalające na realizację programu w postaci obiektowej (klasa Baza, Osoba, Data). Zadbaj o hermetyzację (pola klas powinny byc prywatne).

Klasa: Osoba

Obiekt klasy Osoba reprezentuje pojedynczy rekord z danymi osobowymi.

Atrybuty (prywatne pola):

Operacje (publiczne metody):

Klasa: Data

Obiekt klasy Data posiada pola (prywatne):

Operacje publiczne:

Klasa: Baza

Obiekt klasy Baza przechowuje zbiór rekordów (obiektów klasy Osoba) oraz pozwala na manipulację zawartością i wyświetlanie bazy danych. Rekordy przechowywane są w dynamicznie tworzonej tablicy, która jest powiększana w miarę dodawania nowych rekordów.

Atrybuty (prywatne pola):

Operacje (publiczne metody):

Zadanie 5: Baza danych osobowych

Dokończ implementację klas Baza, Osoba, Data zgodnie z powyższą specyfikacją i zrealizuj program, który będzie wykorzystywał te klasy do zarządzania prostą bazą danych osobowych w następujący sposób. Podczas uruchomienia programu tworzona jest pusta baza danych o domyślnym rozmiarze. Następnie program wypisuje menu umożliwiające użytkownikowi podjęcie jednej z czterech akcji do wykonania:

  1. Dodaj - dodanie nowego rekordu do bazy danych. Użytkownik proszony jest o wypełnienie wszystkich pól nowego rekordu (imię, nazwisko, data urodzenia, płeć).
  2. Wyświetl - wyświetlenie aktualnej zawartości bazy danych (wszystkich rekordów).
  3. Sortuj - posortowanie alfabetycznie (wg nazwisk) wszystkich rekordów w bazie danych.
  4. Zamknij - zakończenie programu.

Po wykonaniu wybranej przez użytkownika akcji menu wyświetlane jest ponownie. Użytkownik może podjąć kolejną akcję, aż do momentu wybrania ostatniej pozycji menu, która zamyka program.

Rozwiązanie w postaci plików nagłówkowych *.h i źródłowych *.cpp umieść w Moodle Zadanie 5