DODATNI PRIMERI ZA VEŽBU IZ OBLASTI "KLASE I OBJEKTI"


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.
Zadaci su obojeni različitim bojama u zavisnosti od težine:

Zadatak 1-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
Ramovi za slike-zadatak

Zadatak 2-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.

Grupa radnika-zadatak

Zadatak 3-Kretanje automobila:

Automobil počne da se kreće iz mirovanja stalnim ubrzanjem od a(m/s2).
Kolika je njegova brzina posle vremena t(s) 5s>t>30s
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 1 u [m/s^2]?
3.5
Vreme kretanja auta 2 u [m/s]?
10.25

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

Zadatak 4-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.

Razmena cifara - zadatak

Zadatak 5-Zapremina Lopti

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

Zadatak 6-Kockice:

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

Zadatak 7-Trouglovi:

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


​
Rastojanje tačaka - zadatak

Zadatak 8-Porudžbine u Restoranu:

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).
PictureImage by Victoria from 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.
Rešenje