14. praktikumi harjutused
1. Auto
Koosta klass nimega Auto
, mille konstruktori parameetriteks on automargi nimi, läbisõit kilomeetrites, auto kütusekulu 100 kilomeetri kohta ning auto kütusetüüp.
Konstruktoris (meetodis __init__
) peab toimuma kütusetüübi kontroll, sest kütusetüüp võib olla ainult kas "bensiin" või "diisel", kõikide muude väärtuste korral peab kasutajale sellest teada andma, visates erindi sobiliku sõnumiga.
Klassil peab ka olema meetod nimega kütuse_maksumus, mis võtab argumendiks teekonna pikkuse kilomeetrites ja väljastab info, mitu eurot kulub antud autol teekonna läbimiseks, ümardatult sajandikeni. Meetod peab sisaldama kütuste hindasid: bensiin - 1.9 eurot liitri kohta, diisel - 1.8 eurot liitri kohta. Juhul, kui teekonna pikkus pole korrektsel kujul, peab meetod väljastama vastava sõnumi.
2. Lennureis
Koosta klass nimega Lennuk
, mille konstruktori parameetriteks on lennuki nimi, maksimaalne reisijate arv, keskmine kiirus (km/h) ja kütusekulu reisija ning 100 kilomeetri kohta.
Koosta klass nimega Reis
, mille konstruktori parameetriteks on lennuk, mis on klassi Lennuk
isend, reisi sihtkoht, reisi pikkus kilomeetrites ning reisile ostetud piletite arv. Klassis Reis
peavad olema ka järgmised neli meetodit.
- Meetod reisi_kestus, mis tagastab reisi kestuse minutites, ümardatult täisarvuni.
- Meetod vabu_kohti, mis tagastab reisiga seotud lennuki vabade kohtade arvu.
- Meetod osta_pilet, mille väljakutsel lisatakse antud reisile üks reisija juurde ja eduka ostu puhul väljastatakse ka sobilik sõnum. Meetod peab veenduma, et reisijate arv ei ületa lennuki maksimaalset reisijate arvu, ning juhul kui see juhtub, väljastama vastava teate.
- Meetod reisi_kütusekulu, mis tagastab lennuki kütusekulu antud reisi jooksul, arvestades reisi pikkust, reisijate arvu ja lennuki kütusekulu.
Lõpuks loo üks Lennuk
-tüüpi objekt, mille parameetriteks on: "Boeing-767" (nimi), 123 (maksimaalne reisijate arv), 800 (km/h keskmine kiirus), 4 (kütusekulu reisija ning 100 kilomeetri kohta). Koosta veel üks Reis
-tüüpi objekt, millel on järgmised parameetrid: eelmise objekti muutuja nimi, "Madrid" (sihtkoht), 3500 (reisi pikkus kilomeetrites), 110 (reisijate arv).
Neid objekte kasutades väljasta ekraanile reisi kestus, vabade kohtade arv reisil, osta üks pilet antud reisile, väljasta uuesti ekraanile vabade kohtade arv reisil ning reisi kütusekulu. Väljund võiks välja näha selline:
Reisi kestus on 262 minutit. Vabade kohtade arv reisile sihtkohta Madrid on 13. Pilet ostetud. Vabade kohtade arv reisile sihtkohta Madrid on 12. Kütusekulu lendamiseks sihtkohta Madrid on 15540 liitrit.
3. Kool
Koosta klass nimega Õpilane
, mille konstruktori parameetriteks on õpilase nimi (ees- ja perekonnanimi), õpilase sugu ("N" või "M"), õpilase keskmine hinne ja õpilase lemmikaine. Klassis Õpilane
peab olema meetod nimega õpilane, mis väljastab kõik õpilase andmed.
Koosta klass nimega Kool
, mille konstruktori parameetriteks on sõnena kooli nimi ning järjendina klassi Õpilane
isendid. Klassis peab olema meetod kuva_info, mis väljastab ekraanile kooli nime ning kõikide koolis õppivate õpilaste info eraldi ridadele (pöördudes klassi Õpilane
meetodi õpilane poole).
Antud on fail õpilased.txt, mille sisu on järgmine:
Karl-Markus Tamm M 3.8 kehaline kasvatus Mirjam Muster N 4.2 kirjandus Kalle M 2.6 puudub Sirje Lind N 5.0 kunst Kristjan Karu M 2.0 kirjandus Kuno Jõesaar 4.8 matemaatika Jaagup Tiik M 4.3 kehaline kasvatus Pirjo Sinilaid N 3.3 kirjandus
Koosta programm, mis loeb failist andmed sisse ja loob iga õpilase kohta ühe Õpilane
-tüüpi isendi. Juhul, kui faili real olevad andmed on puudulikud, siis peab programm andma teada, et sellise reaga pole võimalik klassi Õpilane
isendit luua. Pärast andmete sisselugemist ja õpilaste salvestamist loo klassi Kool
isend ja anna talle parameetriteks kooli nimi "Tartu Kesklinna Gümnaasium" ning õpilaste järjendiks failist sisseloetud andmete põhjal moodustatud järjend.
Näide
>>> kool.kuva_info()
Näidisväljund
Rida failis: Kalle M 2.6 puudub on puudulike andmetega Rida failis: Kuno Jõesaar 4.8 matemaatika on puudulike andmetega Koolis Tartu Kesklinna Gümnaasium õpivad järgmised õpilased: Karl-Markus Tamm M 3.8 kehaline kasvatus Mirjam Muster N 4.2 kirjandus Sirje Lind N 5.0 kunst Kristjan Karu M 2.0 kirjandus Jaagup Tiik M 4.3 kehaline kasvatus Pirjo Sinilaid N 3.3 kirjandus
Lisa 1.
Lisa klassile Kool
meetod õppeainete_graafik, mis loob ja kuvab tulpdiagrammi, kus on kujutatud õpilaste lemmikained.
Lisa 2.
Lisa klassile Kool
meetod keskmine_hinne, mis väljastab ekraanile mõlema soo õpilaste arvu ja nende keskmise hinde ümardatult sajandikeni.
Meessoost õpilasi on kokku 3 ning nende keskmine hinne on 3.37. Naissoost õpilasi on kokku 3 ning nende keskmine hinne on 4.17.