Krótka specyfikacja wymagań funkcjonalnych
Pewna pizzeria zleca napisanie prostego programu kalkulowania cen pizzy. Użytkownik programu może:
- określić liczbę sztuk;
- wybrać rozmiar pizzy (mała, średnia, duża);
- dobrać opcjonalne sosy (łagodny lub pikantny), jeden sos na jedną pizzę;
- wybrać składniki podstawowe,
- wybrać składniki dodatkowe z dwóch możliwych zestawów — mięsny lub wegetariański.
Składniki podstawowe (mogą występować jednocześnie):
- sos pomidorowy,
- cebula,
- ser,
- papryka.
Składniki dodatkowe, wersja mięsna (jeden z poniższych składników):
- szynka,
- salami,
- kiełbasa.
Składniki dodatkowe, wersja wegetariańska (jeden z poniższych składników):
- oscypek,
- ananas,
- brokuł.
Krótka specyfikacja wymagań niefunkcjonalnych
Ceny składników mają być pobierane z pliku tekstowego, należy przemyśleć i zaproponować format pliku, tak aby można go było edytować zwykłym edytorem testowym. Cena pizzy jest kalkulowana następująco — pizza w każdym rozmiarze ma swoją cenę wyjściową, inną dla małej, średniej i dużej. Cena bazowa pizzy w każdym rozmiarze ma być określona w pliku tekstowym cen. Każdy dodatek i sos ma swoją cenę, przy czym cena sosu jest stała i nie zależy od rozmiaru pizzy, cena poszczególnych dodatków zależy od rozmiaru, przy czym w pliku podaje się ceny dla rozmiaru pizza duża, składniki dla rozmiaru średniego i małego kalkuluje się biorą odpowiednio 80% i 60% ceny dla rozmiaru dużego.
Należy przewidzieć możliwość edycji cen zapisanych w pliku tekstowym, ma do tego służyć osobne okno, jednak wejście to tego okna ma być chronione hasłem, hasło może być zapisane w programie na stałe.
Wersja rozwojowa, opcja
Program można rozszerzyć o możliwość wprowadzania wielu sztuk pizzy, sztuki te tworzą pojedyncze zamówienie. Każda ze sztuk może być indywidualnie modyfikowana (wymaga zaimplementowania przeglądu elementów zamówienia), po zatwierdzeniu zaliczenia program wyznacza łączną cenę dla zamówienia oraz generuje plik tekstowy dla „kuchni”, w pliku tym zapisywany jest skład każdej sztuki pizzy, tak aby kucharz mógł ją skomponować.
Narzędzia implementacji
Proszę zaimplementować program w każdym z rozważanych na zajęciach środowisk zintegrowanych. Aktualnie C++ Builder, C# VisualStudio (WF lub WPF), C++ QtCreator, można również rozważyć implementację w jęzku Java (Swing lub FX).
Rezultat
Zrealizowane projekty proszę zachować, będą brane pod uwagę przy negocjowaniu oceny zaliczeniowej.