Witam! Na przyszły wtorek mam do napisania projekt w C++, a że jeśli chodzi o informatykę to jestem raczej teoretykiem (co jednak w najbliższej przyszłości postaram się zmienić :>), proszę o pomoc. W żadnym wypadku nie chcę, aby ktokolwiek pisał za mnie program. Na początek proszę tylko o parę wskazówek jak się do tego zabrać, od czego zacząć, ile tych klas zaimplementować i w jaki sposób najlepiej, czy implementować 12 różnych klas i dodatkowe do obsługi itp. Jeżeli będę miał jakikolwiek problem z samym kodem, to wtedy będę prosił np. o zaklepanie jakiejś metody, na razie chcę spróbować sam, więc oczekuję porad ogólnych. ;) A oto treść samego projektu:
Schemat przedstawia hierarchię klas (na samym dole). Każdy prostokąt reprezentuje jedną klasę. Klasy położone niżej dziedziczą z klas położonych wyżej zgodnie z siecią połączeń. Nazwy klas można modyfikować. Należy:
- zdefiniować poszczególne składowe każdej z klas (pola i metody) - nazwy i liczność pól i metod są zależne od realizującego
- określić sposób dziedziczenia klas, czyli zaimplementować przedstawioną hierarchię
Jako liść rozumiana jest klasa, która nie ma potomka.
Program powinien umożliwiać następujące operacje na zbiorze obiektów:
- dodawanie obiektu(tylko do liści)
- usuwanie obiektu(tylko z liści)
- modyfikacje obiektu
- zapis zbioru do pliku
- odczyt zbioru z pliku
- przeglądanie podzbioru obiektów zgodnie z przedstawioną na rysunku hierarchią - z dowolnego węzła drzewa, wyświetlane zostaną tylko obiekty należące do liści, które z danego węzła dziedziczą, lub w przypadku liścia - jedynie obiekty do niego należące
- każda klasa powinna posiadać przynajmniej 1 pole prywatne i protected
Poruszanie się w strukturze z linii komend:
- W systemie znajdują się obiekty
- Tylko liść zawiera w sobie listę obiektów (długość listy jest nieograniczona)
- Struktura - operacje:
- CD [nazwa węzła(klasy)] - zmiana węzła w strukturze
- Obiekty - operacje:
- MO [obiekt] - tworzy obiekt o nazwie "obiekt" dla bieżącego liścia - należy podać parametry obiektu
- DO [obiekt] - usuwa obiekt o nazwie "obiekt" dla bieżącego liścia
- MDO [obiekt] - modyfikacja obiektu o nazwie obiekt dla bieżącego liścia
-
- Polecenie DIR - wyświetla informacje o obiektach widocznych z danego poziomu - domyślnie tylko informacje o nazwach obiektów (wyświetla listę wszystkich obiektów należących do liści, które dziedziczą z danej klasy)
- Polecenie SHOW [obiekt] - wyświetla szczegółowe informacje o obiekcie
- SAVE - zapis zbioru do pliku
- READ - odczyt zbioru z pliku
- Polecenie TREE - wyświetla całą strukturę widoczną na rysunku, np w formie wcięć
- Zapis i odczyt informacji ma być zrealizowany za pomocą strumieni
Oto symboliczny rysunek hierarchii (przepraszam za jakość, ale powinno wystarczyć) :
z jakiegoś powodu obrazek nie chce się wyświetlić, wystarczy wkleić link do przeglądarki