Skip to content

Commit ead51a5

Browse files
authored
Create README.md
1 parent 174d73d commit ead51a5

File tree

1 file changed

+40
-0
lines changed
  • AHE/Programowanie obiektowe/Projekt 1

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<h1>Trains</h1>
2+
3+
**Cel**
4+
5+
Symulacja pociągów, zabawa z łączeniem wagonów i lokomotyw, ładowaniem towarów do wagonów i zmiana prędkości pociągów.
6+
7+
**Na ocenę 3**
8+
9+
Opracować szkielet systemu w oparciu o poniższe klasy i funkcje.
10+
*RailVehicle* - abstrakcyjna klasa bazowa dla wszystkich pojazdów szynowych. Umożliwia łączenie pojazdów. Umożliwia wyświetlanie stanu i zawartości pojazdów.
11+
12+
**Funkcje**
13+
14+
- RailVehicle* ConnectToNext(RailVehicle* nextPtr);
15+
- virtual int GetSpeed() const;
16+
- virtual void ShowThis(ostream& o) const = 0;
17+
- void ShowAll(ostream& o) const;
18+
19+
*Engine* - lokomotywa. Umożliwia zmianę prędkości pociągu. Dziedziczy po RailVehicle. Ma maksymalną prędkość.
20+
21+
**Funkcje**
22+
23+
*int ChangeSpeed(int value)*
24+
25+
*FreightCar* - wagon towarowy. Dziedziczy po *RailVehicle*.
26+
27+
**Zasady łączenia pojazdów**
28+
29+
Pojazdy można połączyć jeśli z danej strony nie są do niczego podłączone. Do łączenia służy jedna funkcja, podłączająca pojazd do następnego w szeregu. Aby połączyć pojazdy, należy podać wskaźnik do następnego pojazdu. Aby rozłączyć pojazdy, należy podać NULL. W przypadku pomyślnej operacji funkcja zwraca wskaźnik do dołączanego pojazdu, w przeciwnym wypadku rzuca wyjątek. Operacje łączenia i rozłączania można przeprowadzić tylko gdy pojazdy łączone/rozłączane stoją. Zniszczenie pojazdu powoduje odłączenie go od sąsiadów (tu wyjątek: nawet jeśli jadą).
30+
31+
**Zasady zwracania prędkości pociągu**
32+
33+
Każdy pojazd można zapytać o prędkość pociągu. Używając wskaźników do poprzedniego pojazdu dochodzi on do czoła pociągu i jeśli jest tam lokomotywa, zwraca jej prędkość.
34+
35+
(uwaga: nie uwzględniamy wielu lokomotyw w pociągu, zwracamy zawsze prędkość lokomotywy z czoła pociągu)
36+
37+
**Inna funkcjonalność**
38+
39+
Funkcje *ShowThis* i *ShowAll* mają odpowiednio wyprowadzać do strumienia informację o pojedynczym pojeździe i całym pociągu.
40+

0 commit comments

Comments
 (0)