Advertisement
Guest User

Untitled

a guest
Jan 25th, 2020
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.72 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.                    
  5. public class Program
  6. {
  7.     public static void Main()
  8.     {
  9.         Trajekt trajekt = new Trajekt();
  10.         trajekt.setBrojMesta(5);       
  11.         trajekt.setCenaPoMestu(2);
  12.        
  13.         Vozilo v1 = new Vozilo();
  14.         v1.setBrojMesta(5);
  15.         v1.setTipVozila(TipVozila.auto);
  16.        
  17.         Vozilo v2 = new Vozilo();
  18.         v2.setBrojMesta(35);
  19.         v2.setTipVozila(TipVozila.autobus);
  20.        
  21.         trajekt.dodajVozilo(v1);
  22.         //trajekt.dodajVozilo(v2);
  23.        
  24.  
  25.         Console.WriteLine("Ukupna zarada: {0}",trajekt.zarada());
  26.         Console.WriteLine("ELement na poziciji 0 je: " + trajekt[0].getBrojMesta());
  27.        
  28.     }
  29. }
  30. public class Trajekt : ITrajekt{
  31.     private int brojMesta;
  32.     private double cenaPoMestu;
  33.     private Stack<Vozilo> vozila =  new Stack<Vozilo>();
  34.    
  35.     public Vozilo this[int i]
  36.     {
  37.         get {return vozila.ElementAt(i);}
  38.     }
  39.    
  40.     public int getBrojMesta(){
  41.         return this.brojMesta;
  42.     }
  43.    
  44.     public double getCenaPoMestu(){
  45.         return this.cenaPoMestu;
  46.     }
  47.    
  48.     public Stack<Vozilo> getVozila(){
  49.         return this.vozila;
  50.     }
  51.    
  52.     public void setBrojMesta(int brojMesta){
  53.         this.brojMesta = brojMesta;
  54.     }
  55.    
  56.     public void setCenaPoMestu(double cenaPoMestu){
  57.         this.cenaPoMestu = cenaPoMestu;
  58.     }
  59.    
  60.     public void setVozila(Stack<Vozilo> vozila){
  61.         this.vozila = vozila;
  62.     }
  63.    
  64.     public double zarada(){
  65.         double zarada = 0;
  66.         foreach(Vozilo v in vozila){
  67.             zarada += v.brojPotrebnihMesta() * this.cenaPoMestu + 5 * v.getBrojMesta();
  68.         }
  69.         return zarada;
  70.     }
  71.    
  72.     public void dodajVozilo(Vozilo v){
  73.         if(brojMesta > v.brojPotrebnihMesta())
  74.         {
  75.             brojMesta = brojMesta - v.brojPotrebnihMesta();
  76.             this.vozila.Push(v);
  77.         }else
  78.         {
  79.             throw new NotEnoughSpaceException(v.brojPotrebnihMesta(),brojMesta);
  80.         }
  81.     }
  82. }
  83.  
  84. public enum TipVozila{
  85.     motor,kamion,auto,autobus
  86. }
  87.  
  88. interface ITrajekt{
  89.     double zarada();
  90.     void dodajVozilo(Vozilo vozilo);
  91. }
  92.  
  93. interface IVozilo{
  94.     int brojPotrebnihMesta();
  95. }
  96.  
  97.  
  98. public class Vozilo : IVozilo{
  99.     private int brojMesta;
  100.     private TipVozila tipVozila;
  101.    
  102.     public int getBrojMesta(){
  103.         return this.brojMesta;
  104.     }
  105.     public void setBrojMesta(int brojMesta){
  106.         this.brojMesta = brojMesta;
  107.     }
  108.    
  109.     public TipVozila getTipVozila(){
  110.         return this.tipVozila;
  111.     }
  112.    
  113.     public void setTipVozila(TipVozila tip){
  114.         this.tipVozila = tip;
  115.     }
  116.    
  117.     public int brojPotrebnihMesta(){
  118.         if(tipVozila == TipVozila.motor)
  119.             return 1;
  120.         if(tipVozila == TipVozila.auto)
  121.             return 2;
  122.         if(tipVozila == TipVozila.kamion)
  123.             return 15;
  124.         return 10;
  125.     }
  126. }
  127.  
  128.  
  129. class NotEnoughSpaceException : Exception
  130. {
  131.     public NotEnoughSpaceException(int brojPotrebnih, int kapacitet)
  132.      :base(String.Format("Nema dovoljno mesta na trajektu({0}) a potrebno je {1}",kapacitet,brojPotrebnih ))
  133.     {
  134.  
  135.     }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement