Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////ISPIT RI 2014 GODINE RPR/////////////////////////////////////////////////////////////////////
- ---------------------------------------------APSTRAKTNA STAN---------------------------------------------------------------------------
- public abstract class Stan
- {
- public int povrsina { get; set; }
- public string lokacija { get; set; } // samo gradsko i predgradsko podrucje
- public bool internetKonekcija { get; set; }
- public Stan ()
- {
- }
- public Stan (int povrsina, string lokacija, bool internetKonekcija)
- {
- if (lokacija == "Gradsko" || lokacija == "Predgradsko")
- {
- this.lokacija = lokacija;
- this.povrsina = povrsina;
- this.internetKonekcija = internetKonekcija;
- }
- else
- throw new Exception("Lokacija može obuhvatati samo gradsko i predgradsko područje!");
- }
- public abstract double iznajmiStan ();
- }
- ----------------------------------------------NENAMJESTEN STAN-------------------------------------------------------------------------
- public class NenamjestenStan : Stan // Klasa je implementirana jer se u zadatku traži korištenje apstraktne klase,
- { // u suprotnom ova klasa se ne bi pravila jer je jednaka klasi Stan
- public NenamjestenStan () : base()
- { }
- public NenamjestenStan (int povrsina, string lokacija, bool internetKonekcija) : base(povrsina, lokacija, internetKonekcija)
- { }
- public override double iznajmiStan ()
- {
- double cijenaStana = povrsina;
- if (lokacija == "Gradsko") cijenaStana += 200;
- else if (lokacija == "Predgradsko") cijenaStana += 150;
- if (internetKonekcija) cijenaStana += cijenaStana * 0.02;
- return cijenaStana;
- }
- public override string ToString ()
- {
- if (internetKonekcija)
- return "Stan je nenamješten i stan ima internet konekciju.";
- return "Stan je nenamješten i stan nema internet konekciju.";
- }
- }
- -----------------------------------------------------NAMJESTEN STAN-------------------------------------------------------------------
- public class NamjestenStan : Stan
- {
- public double ukupnaVrijednostNamjestaja { get; set; }
- public int brojKucanskihAparata { get; set; }
- public NamjestenStan () : base()
- {
- }
- public NamjestenStan (int povrsina, string lokacija, bool internetKonekcija, double ukupnaVrijednostNamjestaja, int brojKucanskihAparata)
- : base(povrsina, lokacija, internetKonekcija)
- {
- this.ukupnaVrijednostNamjestaja = ukupnaVrijednostNamjestaja;
- this.brojKucanskihAparata = brojKucanskihAparata;
- }
- public override double iznajmiStan ()
- {
- double cijenaStana = povrsina;
- if (lokacija == "Gradsko") cijenaStana += 200;
- else if (lokacija == "Predgradsko") cijenaStana += 150;
- if (internetKonekcija) cijenaStana += cijenaStana * 0.01;
- if (brojKucanskihAparata < 3) cijenaStana += ukupnaVrijednostNamjestaja * 0.01;
- else if (brojKucanskihAparata >= 3) cijenaStana += ukupnaVrijednostNamjestaja * 0.02;
- return cijenaStana;
- }
- public override string ToString ()
- {
- if (internetKonekcija)
- return "Stan je namješten i stan ima internet konekciju.";
- return "Stan je namješten i stan nema internet konekciju.";
- }
- }
- ---------------------------------------------------------AGENCIJA--------------------------------------------------------------------
- public class Agencija
- {
- public List<Stan> stanovi { get; set; }
- public Agencija ()
- {
- stanovi = new List<Stan>();
- }
- public void dodajStan(NenamjestenStan a)
- {
- stanovi.Add(a);
- }
- public List<Stan> pretraga (int povrsinaMin, int povrsinaMax, string lokacija)
- {
- List<Stan> rezultat = new List<Stan>();
- for (int i = 0; i < stanovi.Count; i++)
- {
- if (stanovi[i].povrsina > povrsinaMin && stanovi[i].povrsina < povrsinaMax && stanovi[i].lokacija == lokacija)
- rezultat.Add(stanovi[i]);
- }
- return rezultat;
- }
- }
- --------------------------------------------------------MAIN--------------------------------------------------------------------------
- namespace _1parcijalniRI2014
- {
- class Program
- {
- static void Main (string[] args)
- {
- //Testiranje exception-a
- //try { NenamjestenStan t = new NenamjestenStan(50, "Test", false); }
- //catch (Exception ex) { Console.WriteLine(ex.Message); }
- Agencija a = new Agencija();
- NenamjestenStan s1 = new NenamjestenStan(45, "Gradsko", true);
- NenamjestenStan s2 = new NenamjestenStan(70, "Gradsko", true);
- NenamjestenStan s3 = new NenamjestenStan(105, "Predgradsko", true);
- NamjestenStan s4 = new NamjestenStan(75, "Gradsko", true, 15750, 12);
- NamjestenStan s5 = new NamjestenStan(120, "Gradsko", false, 20152, 10);
- NamjestenStan s6 = new NamjestenStan(80, "Gradsko", true, 17200, 11);
- a.stanovi.Add(s1);
- a.stanovi.Add(s2);
- a.stanovi.Add(s3);
- a.stanovi.Add(s4);
- a.stanovi.Add(s5);
- a.stanovi.Add(s6);
- Console.WriteLine("DODAJ STAN. KLIKNI D");
- if(Console.ReadLine() == "D")
- {
- Console.Write("Unesite podatke odvojene zarezom: npr. 72, Gradsko, false ");
- string[] niz = Console.ReadLine().Split(',');
- NenamjestenStan k = new NenamjestenStan(Convert.ToInt16(niz[0]), niz[1], Convert.ToBoolean(niz[2]));
- }
- // Moj test
- int minPov, maxPov, odabir;
- double cijena;
- string lok;
- Console.WriteLine("Izaberite stan.");
- Console.WriteLine("Unesite minimalnu površinu stana: ");
- minPov = Convert.ToInt16(Console.ReadLine());
- Console.WriteLine("Unesite maksimalnu površinu stana: ");
- maxPov = Convert.ToInt16(Console.ReadLine());
- Console.WriteLine("Unesite lokaciju stana(Gradsko ili Predgradsko) područje: ");
- lok = Console.ReadLine();
- List<Stan> tmp = a.pretraga(minPov, maxPov, lok);
- Console.WriteLine("Unesite redni broj stana!");
- for (int i = 0; i < tmp.Count; i++)
- {
- Console.WriteLine(i.ToString() + " " + tmp[i].ToString());
- }
- odabir = Convert.ToInt16(Console.ReadLine());
- for (int i = 0; i < tmp.Count; i++)
- {
- if (odabir == i)
- Console.WriteLine("Cijena stana je: " + tmp[i].iznajmiStan().ToString());
- }
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement