Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- public class Program
- {
- public static void Main()
- {
- Trajekt trajekt = new Trajekt();
- trajekt.setBrojMesta(5);
- trajekt.setCenaPoMestu(2);
- Vozilo v1 = new Vozilo();
- v1.setBrojMesta(5);
- v1.setTipVozila(TipVozila.auto);
- Vozilo v2 = new Vozilo();
- v2.setBrojMesta(35);
- v2.setTipVozila(TipVozila.autobus);
- trajekt.dodajVozilo(v1);
- //trajekt.dodajVozilo(v2);
- Console.WriteLine("Ukupna zarada: {0}",trajekt.zarada());
- Console.WriteLine("ELement na poziciji 0 je: " + trajekt[0].getBrojMesta());
- }
- }
- public class Trajekt : ITrajekt{
- private int brojMesta;
- private double cenaPoMestu;
- private Stack<Vozilo> vozila = new Stack<Vozilo>();
- public Vozilo this[int i]
- {
- get {return vozila.ElementAt(i);}
- }
- public int getBrojMesta(){
- return this.brojMesta;
- }
- public double getCenaPoMestu(){
- return this.cenaPoMestu;
- }
- public Stack<Vozilo> getVozila(){
- return this.vozila;
- }
- public void setBrojMesta(int brojMesta){
- this.brojMesta = brojMesta;
- }
- public void setCenaPoMestu(double cenaPoMestu){
- this.cenaPoMestu = cenaPoMestu;
- }
- public void setVozila(Stack<Vozilo> vozila){
- this.vozila = vozila;
- }
- public double zarada(){
- double zarada = 0;
- foreach(Vozilo v in vozila){
- zarada += v.brojPotrebnihMesta() * this.cenaPoMestu + 5 * v.getBrojMesta();
- }
- return zarada;
- }
- public void dodajVozilo(Vozilo v){
- if(brojMesta > v.brojPotrebnihMesta())
- {
- brojMesta = brojMesta - v.brojPotrebnihMesta();
- this.vozila.Push(v);
- }else
- {
- throw new NotEnoughSpaceException(v.brojPotrebnihMesta(),brojMesta);
- }
- }
- }
- public enum TipVozila{
- motor,kamion,auto,autobus
- }
- interface ITrajekt{
- double zarada();
- void dodajVozilo(Vozilo vozilo);
- }
- interface IVozilo{
- int brojPotrebnihMesta();
- }
- public class Vozilo : IVozilo{
- private int brojMesta;
- private TipVozila tipVozila;
- public int getBrojMesta(){
- return this.brojMesta;
- }
- public void setBrojMesta(int brojMesta){
- this.brojMesta = brojMesta;
- }
- public TipVozila getTipVozila(){
- return this.tipVozila;
- }
- public void setTipVozila(TipVozila tip){
- this.tipVozila = tip;
- }
- public int brojPotrebnihMesta(){
- if(tipVozila == TipVozila.motor)
- return 1;
- if(tipVozila == TipVozila.auto)
- return 2;
- if(tipVozila == TipVozila.kamion)
- return 15;
- return 10;
- }
- }
- class NotEnoughSpaceException : Exception
- {
- public NotEnoughSpaceException(int brojPotrebnih, int kapacitet)
- :base(String.Format("Nema dovoljno mesta na trajektu({0}) a potrebno je {1}",kapacitet,brojPotrebnih ))
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement