Erinevus lehekülje "ITI0011:harjutus 09" redaktsioonide vahel
(Ago teisaldas lehekülje ITI0011:harjutus 09 pealkirja ITI0011-2015:harjutus 09 alla) |
|||
1. rida: | 1. rida: | ||
− | + | == Üldine == | |
+ | |||
+ | Tähtaeg: 14. - 15. märts<br /> | ||
+ | Kaust gitis: EX09 | ||
+ | |||
+ | == Ülesanne == | ||
+ | |||
+ | Madisel on näpud põhjas ning naistepäeva eel tuli tal geniaalne idee raha teenimiseks lilli müüma hakata. Roosid ja tulbid on Madis juba hankinud. | ||
+ | |||
+ | Kuna lilli ja kliente on palju, palub Madis teil luua kahe ilusa lille eest lihtne arvete väljastamise süsteem. | ||
+ | |||
+ | Kõigepealt looge klass <code>Flower</code>. Sellel klassil on olemas ka konstruktor, mis saab ette hinna <code>double</code> kujul. Kui lill on loodud, siis hinda enam muuta ei saa, kuid peaks olema meetod <code>getPrice()</code>, mis tagastab lille hinna. | ||
+ | |||
+ | Seejärel looge klassid <code>Rose</code> ja <code>Tulip</code>. Need peaks olema klassi <code>Flower</code> alamklassid.<br /> | ||
+ | Kuna Madisel on okastega ja okasteta roose, on <code>Rose</code> klassil meetod <code>hasThorns()</code>, mis tagastab tõeväärtuse, kas roosil on või pole okkaid.<br /> | ||
+ | Veel on madisel erinevat värvi tulpe, tulbi klassil on vastavalt meetod <code>getColour()</code>, mis tagastab tulbi värvi sõnena. | ||
+ | |||
+ | Igal alamklassil on oma <code>getPrice</code> meetod, mis saab ette lillede arvu (<code>int</code>) ja tagastab ühe lille hinna vastavalt konkreetse lille reeglitele (<code>double</code>). | ||
+ | |||
+ | Reeglid on järgmised: | ||
+ | * <code>Rose</code> - kui lilli on rohkem kui 3 (3 kaasa arvatud), siis on allahindlus 5%. | ||
+ | * <code>Tulip</code> - kui lilli on rohkem kui 5 (5 kaasa arvatud), siis on allahindlus 10%. | ||
+ | |||
+ | Lisaks tuleb teil luua klass <code>Order</code>, mille konstruktor saab ette sõne kujul kaks argumenti: kliendi nimi ja asukoht, kuhu tellimus saadetakse. | ||
+ | |||
+ | Order klassil on olemas ka:<br /> | ||
+ | * Väli <code>orderNumber</code>, mis on tellimuse number. Esimesel tellimusel 1, järgmisel 2 jne. | ||
+ | * Meetod <code>boolean add(Flower flower)</code>, mis lisab etteantud lille lillede listi ja tagastab vastavalt booleani. | ||
+ | * Meetod <code>double getTotalPrice()</code>, mis tagastab kogu tellimuse maksumuse kahe komakoha täpsusega. | ||
+ | * Meetod <code>int getOrderNumber()</code>, mis tagastab tellimuse numbri. | ||
+ | * Staatiline meetod <code>int getNextOrderNumber()</code>, mis tagastab järgmise tellimuse numbri. Siin on mõistlik kasutada staatilist muutujat, kus on kirjas järgmise tellimuse number. Iga kord, kui küsitakse järgmist numbrit, peaks vastavat muutujat ka suurendama. Tegemist on staatilise muutujaga, kuna see on kõikide tellimuste peale ühine (ei ole seotud konkreetse tellimusega). | ||
+ | * Meetod <code>String pay()</code>, mis tagastab tellimuse tšeki. | ||
+ | |||
+ | Tšeki näide: | ||
+ | <pre> | ||
+ | Order: 2 | ||
+ | Client: Kati | ||
+ | Address: Tallinn | ||
+ | 11.55€ | ||
+ | </pre> | ||
+ | (lõpus reavahetust pole) |
Redaktsioon: 10. märts 2016, kell 06:16
Üldine
Tähtaeg: 14. - 15. märts
Kaust gitis: EX09
Ülesanne
Madisel on näpud põhjas ning naistepäeva eel tuli tal geniaalne idee raha teenimiseks lilli müüma hakata. Roosid ja tulbid on Madis juba hankinud.
Kuna lilli ja kliente on palju, palub Madis teil luua kahe ilusa lille eest lihtne arvete väljastamise süsteem.
Kõigepealt looge klass Flower
. Sellel klassil on olemas ka konstruktor, mis saab ette hinna double
kujul. Kui lill on loodud, siis hinda enam muuta ei saa, kuid peaks olema meetod getPrice()
, mis tagastab lille hinna.
Seejärel looge klassid Rose
ja Tulip
. Need peaks olema klassi Flower
alamklassid.
Kuna Madisel on okastega ja okasteta roose, on Rose
klassil meetod hasThorns()
, mis tagastab tõeväärtuse, kas roosil on või pole okkaid.
Veel on madisel erinevat värvi tulpe, tulbi klassil on vastavalt meetod getColour()
, mis tagastab tulbi värvi sõnena.
Igal alamklassil on oma getPrice
meetod, mis saab ette lillede arvu (int
) ja tagastab ühe lille hinna vastavalt konkreetse lille reeglitele (double
).
Reeglid on järgmised:
Rose
- kui lilli on rohkem kui 3 (3 kaasa arvatud), siis on allahindlus 5%.Tulip
- kui lilli on rohkem kui 5 (5 kaasa arvatud), siis on allahindlus 10%.
Lisaks tuleb teil luua klass Order
, mille konstruktor saab ette sõne kujul kaks argumenti: kliendi nimi ja asukoht, kuhu tellimus saadetakse.
Order klassil on olemas ka:
- Väli
orderNumber
, mis on tellimuse number. Esimesel tellimusel 1, järgmisel 2 jne. - Meetod
boolean add(Flower flower)
, mis lisab etteantud lille lillede listi ja tagastab vastavalt booleani. - Meetod
double getTotalPrice()
, mis tagastab kogu tellimuse maksumuse kahe komakoha täpsusega. - Meetod
int getOrderNumber()
, mis tagastab tellimuse numbri. - Staatiline meetod
int getNextOrderNumber()
, mis tagastab järgmise tellimuse numbri. Siin on mõistlik kasutada staatilist muutujat, kus on kirjas järgmise tellimuse number. Iga kord, kui küsitakse järgmist numbrit, peaks vastavat muutujat ka suurendama. Tegemist on staatilise muutujaga, kuna see on kõikide tellimuste peale ühine (ei ole seotud konkreetse tellimusega). - Meetod
String pay()
, mis tagastab tellimuse tšeki.
Tšeki näide:
Order: 2 Client: Kati Address: Tallinn 11.55€
(lõpus reavahetust pole)