Advertisement
mali_cox

RPR_2014RI

Feb 7th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.43 KB | None | 0 0
  1. /////////////////////////////////////////ISPIT RI 2014 GODINE RPR/////////////////////////////////////////////////////////////////////
  2.  
  3. ---------------------------------------------APSTRAKTNA STAN---------------------------------------------------------------------------
  4. public abstract class Stan
  5.         {
  6.         public int povrsina { get; set; }
  7.         public string lokacija { get; set; } // samo gradsko i predgradsko podrucje
  8.         public bool internetKonekcija { get; set; }
  9.  
  10.         public Stan ()
  11.             {
  12.  
  13.             }
  14.         public Stan (int povrsina, string lokacija, bool internetKonekcija)
  15.             {
  16.             if (lokacija == "Gradsko" || lokacija == "Predgradsko")
  17.                 {
  18.                 this.lokacija = lokacija;
  19.                 this.povrsina = povrsina;
  20.                 this.internetKonekcija = internetKonekcija;
  21.                 }
  22.             else
  23.                 throw new Exception("Lokacija može obuhvatati samo gradsko i predgradsko područje!");
  24.  
  25.             }
  26.  
  27.         public abstract double iznajmiStan ();
  28.         }
  29.  
  30.  
  31. ----------------------------------------------NENAMJESTEN STAN-------------------------------------------------------------------------
  32.  
  33. public class NenamjestenStan : Stan // Klasa je implementirana jer se u zadatku traži korištenje apstraktne klase,
  34.         {                               // u suprotnom ova klasa se ne bi pravila jer je jednaka klasi Stan
  35.         public NenamjestenStan () : base()
  36.             { }
  37.         public NenamjestenStan (int povrsina, string lokacija, bool internetKonekcija) : base(povrsina, lokacija, internetKonekcija)
  38.             { }
  39.         public override double iznajmiStan ()
  40.             {
  41.             double cijenaStana = povrsina;
  42.             if (lokacija == "Gradsko") cijenaStana += 200;
  43.             else if (lokacija == "Predgradsko") cijenaStana += 150;
  44.             if (internetKonekcija) cijenaStana += cijenaStana * 0.02;
  45.             return cijenaStana;
  46.             }
  47.         public override string ToString ()
  48.             {
  49.             if (internetKonekcija)
  50.                 return "Stan je nenamješten i stan ima internet konekciju.";
  51.             return "Stan je nenamješten i stan nema internet konekciju.";
  52.             }
  53.         }
  54.  
  55. -----------------------------------------------------NAMJESTEN STAN-------------------------------------------------------------------
  56. public class NamjestenStan : Stan
  57.         {
  58.         public double ukupnaVrijednostNamjestaja { get; set; }
  59.         public int brojKucanskihAparata { get; set; }
  60.         public NamjestenStan () : base()
  61.             {
  62.  
  63.             }
  64.         public NamjestenStan (int povrsina, string lokacija, bool internetKonekcija, double ukupnaVrijednostNamjestaja, int brojKucanskihAparata)
  65.             : base(povrsina, lokacija, internetKonekcija)
  66.             {
  67.             this.ukupnaVrijednostNamjestaja = ukupnaVrijednostNamjestaja;
  68.             this.brojKucanskihAparata = brojKucanskihAparata;
  69.             }
  70.  
  71.         public override double iznajmiStan ()
  72.             {
  73.             double cijenaStana = povrsina;
  74.             if (lokacija == "Gradsko") cijenaStana += 200;
  75.             else if (lokacija == "Predgradsko") cijenaStana += 150;
  76.             if (internetKonekcija) cijenaStana += cijenaStana * 0.01;
  77.             if (brojKucanskihAparata < 3) cijenaStana += ukupnaVrijednostNamjestaja * 0.01;
  78.             else if (brojKucanskihAparata >= 3) cijenaStana += ukupnaVrijednostNamjestaja * 0.02;
  79.             return cijenaStana;
  80.             }
  81.  
  82.         public override string ToString ()
  83.             {
  84.             if (internetKonekcija)
  85.                 return "Stan je namješten i stan ima internet konekciju.";
  86.             return "Stan je namješten i stan nema internet konekciju.";
  87.             }
  88.         }
  89.  
  90. ---------------------------------------------------------AGENCIJA--------------------------------------------------------------------
  91. public class Agencija
  92.         {
  93.         public List<Stan> stanovi { get; set; }
  94.         public Agencija ()
  95.             {
  96.             stanovi = new List<Stan>();
  97.             }
  98.  
  99.         public void dodajStan(NenamjestenStan a)
  100.             {
  101.             stanovi.Add(a);
  102.             }
  103.  
  104.         public List<Stan> pretraga (int povrsinaMin, int povrsinaMax, string lokacija)
  105.             {
  106.             List<Stan> rezultat = new List<Stan>();
  107.             for (int i = 0; i < stanovi.Count; i++)
  108.                 {
  109.                 if (stanovi[i].povrsina > povrsinaMin && stanovi[i].povrsina < povrsinaMax && stanovi[i].lokacija == lokacija)
  110.                     rezultat.Add(stanovi[i]);
  111.                 }
  112.             return rezultat;
  113.             }
  114.         }
  115.  
  116.  
  117. --------------------------------------------------------MAIN--------------------------------------------------------------------------
  118. namespace _1parcijalniRI2014
  119.     {
  120.     class Program
  121.         {
  122.         static void Main (string[] args)
  123.             {
  124.  
  125.             //Testiranje exception-a
  126.             //try { NenamjestenStan t = new NenamjestenStan(50, "Test", false); }
  127.             //catch (Exception ex) { Console.WriteLine(ex.Message); }
  128.  
  129.  
  130.             Agencija a = new Agencija();
  131.             NenamjestenStan s1 = new NenamjestenStan(45, "Gradsko", true);
  132.             NenamjestenStan s2 = new NenamjestenStan(70, "Gradsko", true);
  133.             NenamjestenStan s3 = new NenamjestenStan(105, "Predgradsko", true);
  134.             NamjestenStan s4 = new NamjestenStan(75, "Gradsko", true, 15750, 12);
  135.             NamjestenStan s5 = new NamjestenStan(120, "Gradsko", false, 20152, 10);
  136.             NamjestenStan s6 = new NamjestenStan(80, "Gradsko", true, 17200, 11);
  137.  
  138.             a.stanovi.Add(s1);
  139.             a.stanovi.Add(s2);
  140.             a.stanovi.Add(s3);
  141.             a.stanovi.Add(s4);
  142.             a.stanovi.Add(s5);
  143.             a.stanovi.Add(s6);
  144.  
  145.             Console.WriteLine("DODAJ STAN. KLIKNI D");
  146.             if(Console.ReadLine() == "D")
  147.                 {
  148.                 Console.Write("Unesite podatke odvojene zarezom: npr. 72, Gradsko, false ");
  149.                 string[] niz = Console.ReadLine().Split(',');
  150.                 NenamjestenStan k = new NenamjestenStan(Convert.ToInt16(niz[0]), niz[1], Convert.ToBoolean(niz[2]));
  151.                 }
  152.  
  153.            
  154.  
  155.  
  156.             // Moj test
  157.             int minPov, maxPov, odabir;
  158.             double cijena;
  159.             string lok;
  160.             Console.WriteLine("Izaberite stan.");
  161.             Console.WriteLine("Unesite minimalnu površinu stana: ");
  162.             minPov = Convert.ToInt16(Console.ReadLine());
  163.             Console.WriteLine("Unesite maksimalnu površinu stana: ");
  164.             maxPov = Convert.ToInt16(Console.ReadLine());
  165.             Console.WriteLine("Unesite lokaciju stana(Gradsko ili Predgradsko) područje: ");
  166.             lok = Console.ReadLine();
  167.             List<Stan> tmp = a.pretraga(minPov, maxPov, lok);
  168.             Console.WriteLine("Unesite redni broj stana!");
  169.             for (int i = 0; i < tmp.Count; i++)
  170.                 {
  171.                 Console.WriteLine(i.ToString() + " " + tmp[i].ToString());
  172.                 }
  173.             odabir = Convert.ToInt16(Console.ReadLine());
  174.             for (int i = 0; i < tmp.Count; i++)
  175.                 {
  176.                 if (odabir == i)
  177.                     Console.WriteLine("Cijena stana je: " + tmp[i].iznajmiStan().ToString());
  178.  
  179.                 }
  180.  
  181.  
  182.             Console.ReadLine();
  183.             }
  184.         }
  185.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement