Czy zadanie masz podane na piśmie? Jeżeli tak, to umieść oryginalne brzmienie zadania.
W pralce to użytkownik wybiera program, a nie sama pralka, sama pralka może w niewielkim zakresie zmieniać przebieg w zależności od wielkości prania (ma to wpływ na całkowity czas wykonania prania i ilość zużytej wody).
Czy masz napisać program w C++, czy narysować diagram klas? To są dwie różne rzeczy (ewentualnie można najpierw narysować diagram, a implementację przygotować na jego podstawie).
Jeżeli chodzi o symulator pracy pralki, to moim zdaniem musiałbyś mieć w niej obiekty wykonawcze z możliwymi stanami, np:
- Bęben (stoi, obraca się w lewo, obraca się w prawo, wiruje z prędkością 500RPM, wiruje z prędkością 1000RPM itd.)
- Elektrozawór poboru wody (zamknięty, otwarty)
- Pompa spustu wody (wyłączona, załączona)
- Grzałka (wyłączona, załączona)
Do tego obiekty zbierające dane np.:
- Czujnik temperatury wody
- Czujnik obecności wody (tak, większość pralek ma taką funkcję, że jak się zapomni otworzyć zawór dopływu wody, to pralka po kilku próbach poboru wody odmówi prania)
- Czujnik siły odśrodkowej przy obrocie bębna.
Program prania to nic innego, jak odczyt danych z czujników i sterowanie stanami obiektów wykonawczych na podstawie zaimplementowanego przebiegu programu, który może być modyfikowany na podstawie odczytów z czujników.
W Twoim programie są dwie informacje wejściowe:
- Wybrany program i jego parametry (prędkość wirowania, temperatura).
- Masa włożonego prania (od tego zależy czas programu i ilość zużytej wody).
Wyjściem z Twojego programu byłby przebieg programu (np. momenty załączania i wyłączania bębna, grzałki, poboru wody i spustu wody). Na swoje potrzeby program możesz sobie wymyślić, nie ma sensu odwzorowywać prawdziwej pralki.
Starsze pralki nie mają praktycznie żadnych czujników, wszystko ustawia użytkownik (a i tak wiele nie ma, bo w pralkach takich, jak Wiatka lub Luna jest tylko kilka programów bez dodatkowych parametrów).
PerlMonkPerlMonk