Rešena naloga: RAZRED KOLO

Rešena naloga: RAZRED KOLO

Avtor: Maja Vrenko

BESEDILO NALOGE

Napišite razred Kolo, s katerim predstavite kolesa. Vsako kolo ima neko število prestav, barvo, tip (gorsko, cestno, treking), in za koliko ljudi je namenjeno. Napišite osnovni konstruktor (sami določite privzete vrednosti), dva dodatna konstruktorja, ustrezne get/set metode. Rešite naslednje probleme:

  • Izpišite koliko koles posamezne barve je v tabeli koles.
  • Vsa kolesa rumene barve prebarvajte v rdeče.
  • Koliko ljudi se lahko pelje s cestnimi kolesi, ki so v tabeli.
  • Vsaj en (zaželeno pa več) problem po vaši izbiri ... (opišite jih!)

OPIS PROBLEMA

Oblikovanje razreda kolo, ki vsebuje podatke o številu prestav, barvi, tip, številu ljudi. Razred naj vsebuje osnovni konstruktor, dva dodatna konstruktorja, ustrezne get/set metode in rešuje različne probleme vezane na razred kolo.

IDEJA REŠITVE

Oblikovanje vseh ustreznih lastnosti in metod znotraj razreda kolo.

RAZLAGA ALGORITMA

Pri nalogi smo oblikovali razred Kolo. Najprej določimo lastnosti razreda kolo in sicer število prestav, barvo, tip in število ljudi, ki to kolo lahko istočasno uporablja. Znotraj razreda nato oblikujemo osnovni in dva dodatne konstruktorja. Osnovni konstruktor kot podatek sprejme podatke o vseh štirih lastnostih. Prvi dodaten konstruktor je minimalni konstruktor, ki ne sprejme kot vhodni podatek nobenega podatka. Drugi dodatni konstruktor pa je konstruktor, ki sprejme niz oblike kot ga vrne metoda ToString. V konstruktorje smo vključili tudi validacijo ter oblikovali tudi get/set metode. Vse opisano je prikazano v naslednjih vrsticah.

(kolo_prva.jpg) (kolo_druga.jpg) (kolo_tretja2.jpg)

Nato smo oblikovali metodi, ki omogočata zapis podatkov na datoteko ter branje podatkov iz datoteke. Ta dva programa se nahajata v nadaljevanju. Metoda za dodajanje (zapisovanje) podatkov na datoteko najprej želeno datoteko odpre za dodajanje teksta. Tekst v datoteko dodaja po vrsticah. Posamezni podatki objekta (to so tisti, ki se nahajajo v eni vrstici) so med seboj ločeni s podpičjem. Ko vrstico na datoteko zapišemo, datoteko zapremo.

(kolo_peta.jpg)

Metoda PreberiZDatoteke vrne tabelo objektov tipa Kolo. Posamezni objekt vsebuje podatke, ki so zapisani v eni vrstici vhodne datoteke. Najprej datoteko odpremo za branje. Takoj za tem preberemo prvo vrstico datoteke. Deklariramo celoštevilsko spremenljivko stevec, katera nam pomaga ustvariti tabelo ustrezne dolžine. Nato se z while zanko sprehodimo skozi celotno datoteko (dokler ne pridemo do vrstice, ki ne vsebuje znakov oziroma teksta) ter hkrati preštejemo število vrstic v datoteki. Znotraj while zanke tudi na vsakem koraku preberemo novo vrstico. S tem poskrbimo, da se while zanka zaključi. Ko se while zanka zaključi, datoteko zapremo. V nadaljevanju datoteko ponovno odpremo za branje. Ustvarimo tabelo objektov tipa Kolo velikosti spremenljivke stevec. Nato se s for zanko sprehodimo skozi tabelo ter hkrati določamo vrednosti objektom v tabeli. To storimo tako, da preberemo vrstico iz datoteke ter jo s pomočjo konstruktorja, ki kot vhodni podatek sprejme niz, spremenimo v objekt razreda Kolo. Na koncu datoteko zapremo in vrnemo tabelo objektov razreda Kolo.

(kolo_sesta.jpg)

Ustvarimo metodo steviloKolesDoloceneBarve, ki prešteje vsa kolesa določene barve. Kot vhodni podatek metoda sprejme tabelo objektov tipa Kolo in pa barvo. Pri štetju koles si bomo pomagali s celoštevilsko spremenljivko steviloKoles. S for zanko se nato sprehodimo skozi vhodno tabelo koles ter na vsakem koraku z if stavkom preverjamo ali se barva trenutnega kolesa ujema z želeno barvo. Če pride do ujemanja, spremenljivko steviloKoles povečamo za 1. V nasprotnem primeru ne storimo ničesar. Na koncu vrnemo število koles ustrezne barve.

(kolo_sedma.jpg)

Metoda PrevarvajRumenaVRdeca barvo vsem rumenim kolesom v vhodni tabeli spremeni v rdečo. Tako se v metodi s for zanko sprehodimo skozi celotno tabelo. Pri tem preverjamo ali se barva posameznega kolesa ujema z rumeno barvo. Če pride do ujemanja, barvo tega objekta nastavimo na rdečo. Metoda ne vrača ničesar.

(kolo_osma.jpg)

Metoda steviloLjudiSCestnimi pove, koliko ljudi se lahko pelje s kolesti tipa cestno. Za ugotavljanje števila ustvarimo novo celoštevilsko spremenljivko steviloLjudi. S for zanko se nato sprehodimo skozi celotno vhodno tabelo. Na vsakem koraku preverjamo ujemanje tipa trenutnega kolesa s tipom cestno. Če pride do ujemanja, spremenljivko steviloLjudi povečamo za 1. Na koncu metoda vrne spremenljivko steviloLjudi, v kateri je zabeleženo število ljudi, ki se lahko vozi s cestnimi kolesi.

(kolo_deveta.jpg)

Metoda steviloKolesPosamezneVrste vrne tabelo števil koles posameznega tipa (gorsko, cestno, traking). Na začetku deklariramo celoštevilsko tabelo velikosti 3. V to tabelo na koncu shranimo število posamezne vrste koles. Nato se s for zanko sprehodimo skozi celotno tabelo ter hkrati glede na ujemanje tipa povečujemo ustrezno celoštevilsko spremenljivko. Vrednosti celoštevilskih spremenljivk nato prenesemo v tabelo, katero metoda vrne.

(kolo_deseta.jpg)

TESTNI PRIMERI

(kolo_enajsta.jpg) (kolo_dvanajst.jpg)

(kolo_trinajst.jpg) (kolo_stirinajst.jpg)

FILMČEK TESTIRANJA REŠITVE

0%
0%