Dodatni primeri: klase i objekti (Java)

Zbirka 5 od 5 · Dodatni primeri sa rešenjima
Pre nego što počneš: lekcije Klase i objekti u Javi, Objekti i metode; lakši zadaci iz ove oblasti su u vodiču Objektno programiranje – primeri.
Kako da vežbaš: reši zadatak sam/a, pokreni program na primeru iz teksta, pa tek onda otvori rešenje i uporedi ideje.

U ovom odeljku su dati primeri zadataka iz oblasti klase i objekti, sa rešenjima. Pokušajte da primere rešite samostalno, a rešenje koristiti za proveru ili koristiti ako posle većeg broja pokušaja i dosta uloženog truda ipak ne uspete samostalno da rešite postavljen zadatak.
Rešenje će se prikazati klikom na dugme pored postavljenog zadatka.
Uz svaki zadatak (gore desno) piše njegova težina: lako, srednje teško ili teže.

ZADATAK 01Težina: Lako

Ramovi za slike

Na stolu se nalaze ramovi za slike različitih dimenzija, ali su svi pravougaonog oblika. Program treba na osnovu unete širine i visine rama u milimetrima odredi površinu rama u kvadratnim milimetrima. Zadatak rešiti upotrebom objekata.

Ulaz:
Korisnik unosi širinu i visinu rama za 2 slike izraženu u milimetrima.

Izlaz
Na izlazu prikazati površine ramova u kvadratnim milimetrima:

Primer
Ulaz
456 785
300 400
Izlaz 357960 120000

Ilustracija uz zadatak
ZADATAK 02Težina: Teže

Grupa radnika-objekti

Kreirati klasu koja opisuje radnika. Kreirati 2 objekta koji predstavljaju radnike, Uneti im sledeće podatke: ime, prezime, zaradu po satu, broj radnih sati nedeljno. Napisati program koji na osnovu njihovih zarada po satu i broj radnih sati nedeljno izračunava njihovu nedeljnu zaradu.

Ilustracija uz zadatak
ZADATAK 03Težina: Lako

Kretanje automobila

Automobil počne da se kreće iz mirovanja stalnim ubrzanjem od a(m/s2).
Kolika je njegova brzina posle vremena t (5 s < t < 30 s)
Koliki put pređe za ovo vreme.
Uneti podatke za dva automobila. Zadatak rešiti upotrebom objekata

Ulaz
U dve linije standardnog ulaza se redom nalaze ubrzanje a u m/s2, i vreme t u sekundama za prvi automobil.
U sledeće dve linije uneti iste podatke za drugi automobil
Izlaz
Prikazati brzine, kao pređeni put za oba objekta koji predstavljaju automobile

Primer
Ulaz
Ubrzanje auta 1 u [m/s^2]?
2
Vreme kretanja auta 1 u [s]?
20
Ubrzanje auta 2 u [m/s^2]?
3.5
Vreme kretanja auta 2 u [s]?
10.25

Izlaz
Auto 1{ v=40m/s, s=400m}
Auto 2{ v=35.875m/s, s=183.86m}

Ilustracija uz zadatak
ZADATAK 04Težina: Lako

Salon Automobila

Napisati aplikaciju koja od korisnika zahteva da unese podatke za dva automobila koji su užem izboru eventualne kupovine u salonu automobila, zatim te podatke smešta u objekte i prikazuje na ekranu. Napraviti klasu koja opisuje automobil sa najmanje 5 atributa.

Ilustracija uz zadatak
ZADATAK 05Težina: Lako

Zapremina Lopti

Kreirati dve lopte, kao objekte, uneti im poluprečnike a zatim izračunati zapremine i rezultat prikazati na ekranu.

Ilustracija uz zadatak
ZADATAK 06Težina: Srednje teško

Kockice

Kreirati klasu koja opisuje kocku. U glavnoj klasi kreirati dva objekta kocke, uneti stranice i izračunati površine i zapremine.

Ilustracija uz zadatak
ZADATAK 07Težina: Srednje teško

Trouglovi

Kreirati dva objekta koji predstavljaju trouglove, uneti im stranicu i visinu i izračunati površine. Rezultat prikazati na ekranu.

ZADATAK 08Težina: Teže

Porudžbine u Restoranu

Napomena: ovaj zadatak je rešen u jeziku C# (a ne u Javi kao ostali zadaci na strani) – ideje su iste, sintaksa se malo razlikuje.

Zadatak je da se kreira program koji upravlja porudžbinama u restoranu. Porudžbina treba da sadrži informacije kao što su ime gostiju, jelo koje su naručili, i način plaćanja. Potrebno je da se porudžbina automatski potvrdi ako je plaćanje izvršeno unapred ili gotovinom.
Program treba da omogući unos novih porudžbina, ali restoran može primiti najviše deset porudžbina istovremeno. Takođe, treba omogućiti prikaz svih porudžbina, kao i prikaz porudžbina zajedno sa cenom jela. Cena jela može biti umanjena ako je plaćanje izvršeno unapred, uz određeni popust (npr. 15%).
Dodatno, potrebno je implementirati funkcionalnost za sortiranje porudžbina po imenu gosta ili po jelu i prikaz rezultata. Program treba da omogući i rukovanje greškama koje mogu nastati, na primer, prilikom pokušaja dodavanja više porudžbina od dozvoljenog u restoran (u ovom primeru je 10).

Ilustracija uz zadatak
Slika: Victoria, Pixabay

Dodatno pojašnjenje:
Zadatak je da se kreira program za upravljanje porudžbinama u restoranu koristeći C#. Program treba da obuhvati sledeće funkcionalnosti:

  1. Kreiranje Klase Porudzbina:
    • Definišite klasu Porudzbina koja treba da sadrži informacije o:
      • Ime gosta
      • Jelo koje je naručeno
      • Način plaćanja (gotovina ili kartica)
      • Cena jela
      • Način dostave (kurir ili u restoranu)
      • Broj porudžbine
  2. Implementacija Interfejsa:
    • Definišite interfejs IRestoran sa sledećim metodama:
      • DodajPorudzbinu(Porudzbina p): Metoda koja dodaje novu porudžbinu u restoran. Ako broj porudžbina prelazi 10, treba da baci izuzetak sa porukom "Ne primamo više od 10 porudžbina".
      • CenaJela(): Metoda koja prikazuje cenu svakog jela sa eventualnim popustom (npr. 10% popusta za gotovinske uplate i dodatak za dostavu kurir).
      • PrikaziPorudzbine(): Metoda koja ispisuje sve porudžbine u restoranu.
  3. Sortiranje Porudžbina:
    • Implementirajte metodu za sortiranje porudžbina po imenu gosta u rastućem redosledu.
    • Implementirajte metodu za sortiranje porudžbina po jelu u opadajućem redosledu. Pritom, porudžbine koje su plaćene karticom i čija cena prelazi 3000 dinara treba sortirati u opadajućem redosledu.
  4. Obrada Izuzetaka:
    • Program treba da rukuje izuzetkom koji se baca kada broj porudžbina prelazi dozvoljeni limit (10 porudžbina).
    • Treba obraditi sve druge potencijalne greške koje mogu nastati tokom dodavanja porudžbina ili obrade cena.
  5. Implementacija Klase Restoran:
    • Definišite klasu Restoran koja implementira interfejs IRestoran i sadrži:
      • Listu porudžbina
      • Metode za dodavanje porudžbina, prikaz cena jela, prikaz svih porudžbina, sortiranje porudžbina
      • Indekser za pristup porudžbinama po indeksu.
  6. Glavni Program:
    • U glavnom programu, kreirajte instancu klase Restoran, dodajte nekoliko porudžbina, i testirajte sve implementirane metode.
    • Demonstrirajte sortiranje porudžbina, ispisivanje cena jela, i rukovanje izuzecima prilikom dodavanja više od dozvoljenog broja porudžbina.

Proveri znanje

Otvori kviz

Mini kviz: klase i objekti

1. Šta je objekat?




2. Kojom naredbom se u Javi pravi novi objekat klase Ram?




3. Koliko objekata klase Auto treba za zadatak sa dva automobila?




Još zadataka iz objektnog programiranja

Proveri se

Kada rešiš zadatke iz ove zbirke, uradi kontrolni zadatak: