Beispiel #1
0
 public void DodajPunjacLosiParametri(PunjacAutomobila p)
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         pp.DodajPunjac(p);
     });
 }
Beispiel #2
0
 public void IskljuciLosiParametri(PunjacAutomobila p)
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         pp.Iskljuci(p);
     });
 }
 public void PunjacAutomobilaKonstruktorLosiParametri(string naziv, int snagaBaterije, int procenatBaterije, int maksSnagabaterijeAuta)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() =>
     {
         PunjacAutomobila punjac = new PunjacAutomobila(naziv, snagaBaterije, procenatBaterije, maksSnagabaterijeAuta);
     });
 }
        public void PunjacAutomobilaKonstruktorDobriParametri(string naziv, int snagaBaterije, int procenatBaterije, int maksSnagabaterijeAuta)
        {
            PunjacAutomobila punjac = new PunjacAutomobila(naziv, snagaBaterije, procenatBaterije, maksSnagabaterijeAuta);

            Assert.AreEqual(punjac.Naziv, naziv);
            Assert.AreEqual(punjac.SnagaBaterijePunjaca, snagaBaterije);
            Assert.AreEqual(punjac.MaksBaterijaAutomobila, maksSnagabaterijeAuta);
            Assert.AreEqual(punjac.TrenutnoBaterijaAutomobila, procenatBaterije);
        }
Beispiel #5
0
 public void Ukljuci(PunjacAutomobila pa)
 {
     if (pa == null)
     {
         throw new ArgumentNullException("Punjac je null");
     }
     else
     {
         pa.UtaknutAutomobil = true;
     }
 }
Beispiel #6
0
        public bool DodajPunjac(PunjacAutomobila punjac)
        {
            if (punjac == null)
            {
                throw new ArgumentNullException("Punjac automobila je null");
            }

            if (BazaPodataka.punjaci.Contains(punjac))
            {
                return(false);
            }
            else
            {
                BazaPodataka.punjaci.Add(punjac);
                return(true);
            }
        }
Beispiel #7
0
        public bool ObrisiPunjac(string ime)
        {
            if (ime == null)
            {
                throw new ArgumentException("Naziv punjaca je null");
            }

            if (ime.Trim().Equals(""))
            {
                throw new ArgumentException("Naziv punjaca je prazan string");
            }

            PunjacAutomobila p = PronadjiPunjac(ime);

            if (p != null)
            {
                BazaPodataka.punjaci.Remove(p);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #8
0
        public void Simuliraj()
        {
            new Thread(() =>
            {
                bool puniBaterije   = false;
                bool prazniBaterije = false;
                while (true)
                {
                    double novac = 0;
                    for (int i = 1; i <= 1440; i++)
                    {
                        if (i == 1)
                        {
                            BazaPodataka.istorijaPotrosnje.Add(new PotrosnjaPoDanu());
                        }

                        if (i % 60 == 0)
                        {
                            satnica++;

                            if (satnica == 1)
                            {
                                BazaPodataka.distribucija[0].CenaPokWh = 1.5;

                                PunjacAutomobila temp = PunjacUpravljac.PronadjiPunjac("pa1");
                                PunjacUpravljac.Ukljuci(temp);
                            }
                            else if (satnica == 2)
                            {
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Bojler");
                                PotrosaciUpravljac.Ukljuci(temp);
                            }
                            else if (satnica == 3)
                            {
                                puniBaterije = true;
                            }
                            else if (satnica == 4)
                            {
                            }
                            else if (satnica == 5)
                            {
                                ProcenatSunca = 10;
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Bojler");
                                PotrosaciUpravljac.Iskljuci(temp);
                            }
                            else if (satnica == 6)
                            {
                                ProcenatSunca = 30;
                                puniBaterije  = false;
                            }
                            else if (satnica == 7)
                            {
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Bojler");
                                PotrosaciUpravljac.Iskljuci(temp);
                                ProcenatSunca = 40;
                            }
                            else if (satnica == 8)
                            {
                                BazaPodataka.distribucija[0].CenaPokWh = 6;
                                ProcenatSunca = 60;
                            }
                            else if (satnica == 9)
                            {
                                ProcenatSunca = 80;
                            }
                            else if (satnica == 10)
                            {
                                ProcenatSunca = 90;
                            }
                            else if (satnica == 11)
                            {
                                ProcenatSunca = 100;
                            }
                            else if (satnica == 12)
                            {
                            }
                            else if (satnica == 13)
                            {
                            }
                            else if (satnica == 14)
                            {
                                prazniBaterije = true;
                                Potrosac temp  = PotrosaciUpravljac.PronadjiPotrosaca("Klima");
                                PotrosaciUpravljac.Ukljuci(temp);
                            }
                            else if (satnica == 15)
                            {
                            }
                            else if (satnica == 16)
                            {
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Klima");
                                PotrosaciUpravljac.Iskljuci(temp);
                            }
                            else if (satnica == 17)
                            {
                                prazniBaterije = false;
                            }
                            else if (satnica == 18)
                            {
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Osvetljenje");
                                PotrosaciUpravljac.Ukljuci(temp);
                                ProcenatSunca = 80;
                            }
                            else if (satnica == 19)
                            {
                                ProcenatSunca = 60;
                            }
                            else if (satnica == 20)
                            {
                                ProcenatSunca = 40;
                            }
                            else if (satnica == 21)
                            {
                                ProcenatSunca = 10;
                            }
                            else if (satnica == 22)
                            {
                                ProcenatSunca = 0;
                            }
                            else if (satnica == 23)
                            {
                                Potrosac temp = PotrosaciUpravljac.PronadjiPotrosaca("Osvetljenje");
                                PotrosaciUpravljac.Iskljuci(temp);
                            }
                            else if (satnica == 24)
                            {
                            }
                        }

                        if (puniBaterije)
                        {
                            novac += PuniBaterije();
                        }
                        if (prazniBaterije)
                        {
                            novac += PrazniBaterije();
                        }

                        novac += Potroseno();

                        Thread.Sleep(Takt);


                        EnergijaBaterija = 0;
                        Kolicina         = 0;
                    }
                    Dani++;
                    DateTime danas     = DateTime.Now;
                    string DanasnjiDan = ((danas.Day + countDani).ToString() + '/' + danas.Month + '/' + danas.Year);
                    PotrosnjaPoDanima.Add(DanasnjiDan, novac);
                    countDani++;
                    BazaPodataka.UpisiPotrosnju();
                    satnica = 0;
                    if (novac >= 0)
                    {
                        Console.WriteLine("Zaradjeno : {0}", novac);
                    }
                    else
                    {
                        Console.WriteLine("Potroseno : {0}", novac);
                    }
                }
            }).Start();
        }
Beispiel #9
0
        public static void Meni(IPunjac ppunjac, IBaterija pbaterija, ISolarniPanel ppanel, IPotrosac ppotrosac, ISimulacija psimulacija, IGrafik pgrafik)
        {
            int komanda = 0;

            do
            {
                try
                {
                    Console.WriteLine("Izaberite opciju:");

                    Console.WriteLine("1 --> Dodajte novi element u sistem");
                    Console.WriteLine("2 --> Ukljucite potrosaca");
                    Console.WriteLine("3 --> Iskljucite potrosaca");
                    Console.WriteLine("4 --> Ukljucite automobil na punjac");
                    Console.WriteLine("5 --> Iskljucite automobil sa punjaca");
                    Console.WriteLine("6 --> Obrisite elemenat iz sistema");
                    Console.WriteLine("7 --> Menjajte brzinu prolaska vremena");
                    Console.WriteLine("8 --> Promenite osuncanost");
                    Console.WriteLine("9 --> Prikaz izvestaja");
                    Console.WriteLine("10 --> Izlaz iz sistema");

                    Console.WriteLine("Vas odgovor: ");
                    komanda = int.Parse(Console.ReadLine());

                    switch (komanda)
                    {
                    case 1:
                        int dodajNovi;
                        do
                        {
                            Console.WriteLine("Odaberite sta zelite da dodate");
                            Console.WriteLine("1 --> Potrosac");
                            Console.WriteLine("2 --> Solarni Panel");
                            Console.WriteLine("3 --> Baterija");
                            Console.WriteLine("4 --> Punjac za automobil");
                            Console.WriteLine("5 --> Nazad");
                            Console.WriteLine("Vas odgovor: ");
                            dodajNovi = int.Parse(Console.ReadLine());

                            switch (dodajNovi)
                            {
                            case 1:
                            {
                                Console.WriteLine("Ime potrosaca: ");
                                string ime = Console.ReadLine();
                                Console.WriteLine("Potrosnja potrosaca: ");
                                try
                                {
                                    double   potrosnja = double.Parse(Console.ReadLine());
                                    Potrosac po        = new Potrosac(ime, potrosnja);
                                    if (ppotrosac.DodajPotrosaca(po))
                                    {
                                        Console.WriteLine("Uspesno dodat novi potrosac");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Potrosac sa ovakvim imenom vec postoji");
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Napravili ste gresku prilikom unosa. Potrosnja potrosaca mora biti broj.");
                                }

                                break;
                            }

                            case 2:
                            {
                                Console.WriteLine("Ime solarnog panela: ");
                                string ime = Console.ReadLine();
                                Console.WriteLine("Maksimalna snaga panela: ");
                                try
                                {
                                    int snaga = int.Parse(Console.ReadLine());
                                    if (ppanel.DodajPanel(new SolarniPanel(ime, snaga)))
                                    {
                                        Console.WriteLine("Uspesno dodat novi solarni panel");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Solarni panel sa ovakvim imenom vec postoji");
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Napravili ste gresku prilikom unosa. Snaga panela mora biti broj.");
                                }
                                break;
                            }

                            case 3:
                            {
                                Console.WriteLine("Ime baterije: ");
                                string ime = Console.ReadLine();
                                Console.WriteLine("Maksimalna snaga baterije: ");
                                try
                                {
                                    double snaga = double.Parse(Console.ReadLine());
                                    Console.WriteLine("Kapacitet baterije: ");
                                    double   kapacitet = double.Parse(Console.ReadLine());
                                    Baterija b         = new Baterija(ime, snaga, kapacitet);
                                    if (pbaterija.DodajBateriju(b))
                                    {
                                        Console.WriteLine("Baterija je uspesno dodata");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Greska prilikom dodavanja baterije");
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Napravili ste gresku prilikom unosa. Maksimalna snaga i kapacitet baterije moraju biti broj.");
                                }

                                break;
                            }

                            case 4:
                            {
                                Console.WriteLine("Naziv punjaca za automobil: ");
                                string ime = Console.ReadLine();
                                Console.WriteLine("Snaga punjaca: ");
                                try
                                {
                                    double snaga = double.Parse(Console.ReadLine());
                                    Console.WriteLine("Unesite koliko vas automobil ima trenutno procenata baterije: ");
                                    double kolicinaBaterije = double.Parse(Console.ReadLine());
                                    Console.WriteLine("Unesite koliko je kapacitet baterije vaseg automobila: ");
                                    double           maksKoliicinabaterije = double.Parse(Console.ReadLine());
                                    PunjacAutomobila pauto = new PunjacAutomobila(ime, snaga, kolicinaBaterije, maksKoliicinabaterije);
                                    if (ppunjac.DodajPunjac(pauto))
                                    {
                                        Console.WriteLine("Punjac automobila je uspesno dodat");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Greska prilikom dodavanja punjaca automobila");
                                    }
                                }
                                catch (Exception)
                                {
                                    Console.WriteLine("Napravili ste gresku prilikom unosa. Snaga punjaca, procenat i kapacitet baterije automobila moraju biti broj.");
                                }

                                break;
                            }

                            default:
                                Console.WriteLine("Molimo vas da unesete neki od ponudjenih odgovora");
                                break;
                            }
                        } while (dodajNovi != 5);

                        break;

                    case 2:
                        Console.WriteLine("Unesite ime potrosaca: ");
                        string   potrosac1 = Console.ReadLine();
                        Potrosac p1        = ppotrosac.PronadjiPotrosaca(potrosac1);
                        if (p1 == null)
                        {
                            Console.WriteLine("Ne postoji potrosac sa imenom {0}", potrosac1);
                            break;
                        }
                        else
                        {
                            if (p1.Aktivan)
                            {
                                Console.WriteLine("Potrosac je vec pokrenut");
                                break;
                            }
                            ppotrosac.Ukljuci(p1);
                            Console.WriteLine("Potrosac {0} ukljucen", potrosac1);
                        }


                        break;

                    case 3:
                        Console.WriteLine("Unesite ime potrosaca: ");
                        string   potrosac2 = Console.ReadLine();
                        Potrosac p2        = ppotrosac.PronadjiPotrosaca(potrosac2);
                        if (p2 == null)
                        {
                            Console.WriteLine("Ne postoji potrosac sa imenom {0}", potrosac2);
                            break;
                        }
                        else
                        {
                            if (!p2.Aktivan)
                            {
                                Console.WriteLine("Potrosac nije bio aktivan");
                                break;
                            }
                            ppotrosac.Iskljuci(p2);
                            Console.WriteLine("Potrosac {0} iskljucen", potrosac2);
                        }
                        break;

                    case 4:
                        Console.WriteLine("Unesite naziv punjaca: ");
                        string           naziv = Console.ReadLine();
                        PunjacAutomobila pa    = ppunjac.PronadjiPunjac(naziv);
                        if (pa == null)
                        {
                            Console.WriteLine("Ne postoji punjac {0}", naziv);
                        }
                        else if (pa.UtaknutAutomobil == true)
                        {
                            Console.WriteLine("Vec je utaknut drugi automobil");
                        }
                        else
                        {
                            if (pa.MaksBaterijaAutomobila > pa.TrenutnoBaterijaAutomobila)
                            {
                                ppunjac.Ukljuci(pa);
                                Console.WriteLine("Automobil je ukljucen na punjac {0}", naziv);
                            }
                            else
                            {
                                ppunjac.Ukljuci(pa);
                                Console.WriteLine("Vas auto je vec pun");
                                break;
                            }
                        }
                        break;

                    case 5:
                        Console.WriteLine("Unesite naziv punjaca: ");
                        string           nazivZaBrisanje = Console.ReadLine();
                        PunjacAutomobila pa2             = ppunjac.PronadjiPunjac(nazivZaBrisanje);
                        if (pa2 == null)
                        {
                            Console.WriteLine("Ne postoji punjac {0}", nazivZaBrisanje);
                            break;
                        }
                        else
                        {
                            if (!pa2.UtaknutAutomobil)
                            {
                                Console.WriteLine("Nema utaknutog automobila na punjac");
                                break;
                            }
                            else
                            {
                                ppunjac.Iskljuci(pa2);
                                Console.WriteLine("Automobil je istaknut sa punjaca {0}", pa2.Naziv);
                            }
                        }
                        break;

                    case 6:
                        int obrisi;
                        do
                        {
                            Console.WriteLine("Odaberite sta zelite da obrisete");
                            Console.WriteLine("1 --> Potrosac");
                            Console.WriteLine("2 --> Solarni Panel");
                            Console.WriteLine("3 --> Baterija");
                            Console.WriteLine("4 --> Punjac za automobil");
                            Console.WriteLine("5 --> Nazad");
                            Console.WriteLine("Vas odgovor: ");
                            obrisi = int.Parse(Console.ReadLine());

                            switch (obrisi)
                            {
                            case 1:
                                Console.WriteLine("Unestie ime potrosaca: ");
                                string imep = Console.ReadLine();
                                if (ppotrosac.ObrisiPotrosaca(imep))
                                {
                                    Console.WriteLine("Uspesno obrisan potrosac {0}", imep);
                                }
                                Console.WriteLine("Ne postoji potrosac sa imenom {0}", imep);
                                break;

                            case 2:
                                Console.WriteLine("Unesite ime Solarnog panela: ");
                                string imes = Console.ReadLine();
                                if (ppanel.ObrisiPanel(imes))
                                {
                                    Console.WriteLine("Uspesno obrisan panel {0}", imes);
                                }
                                Console.WriteLine("Ne postoji panel sa imenom {0}", imes);
                                break;

                            case 3:
                                Console.WriteLine("Unesite ime baterije: ");
                                string imeb = Console.ReadLine();
                                if (pbaterija.ObrisiBateriju(imeb))
                                {
                                    Console.WriteLine("Uspesno obrisana baterija {0}", imeb);
                                }
                                Console.WriteLine("Ne postoji baterija sa imenom {0}", imeb);
                                break;

                            case 4:
                                Console.WriteLine("Unesite ime punjaca: ");
                                string imepa = Console.ReadLine();
                                if (ppunjac.ObrisiPunjac(imepa))
                                {
                                    Console.WriteLine("Uspeno obrisan punjac {0}", imepa);
                                }
                                Console.WriteLine("Ne postoji punjac sa imenom {0}", imepa);
                                break;

                            default:
                                Console.WriteLine("Unesite neki od ponudjenih brojeva");
                                break;
                            }
                        }while (obrisi != 5);
                        break;

                    case 7:
                        Console.WriteLine("Unesite broj za koliko puta zelite da ubrzate prolazak vremena: ");
                        try
                        {
                            int broj = int.Parse(Console.ReadLine());
                            if (broj <= 0)
                            {
                                Console.WriteLine("Morate uneti ceo broj veci od 0!");
                            }
                            else
                            {
                                psimulacija.UbrzajVreme(broj);
                            }
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Morate uneti ceo broj!");
                        }
                        break;

                    case 8:
                        Console.WriteLine("Unesite procenat osuncanosti(0-100): ");
                        try
                        {
                            int procenat = int.Parse(Console.ReadLine());

                            if (procenat < 0 || procenat > 100)
                            {
                                Console.WriteLine("Procenat osuncanosti mora biti broj izmedju 0 i 100.");
                            }
                            else
                            {
                                psimulacija.PromeniOsuncanost(procenat);
                            }
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Procenat osuncanosti mora biti broj.");
                        }
                        break;

                    case 9:
                        Console.WriteLine("Unesite datum za prikaz izvestaja u formatu dd/mm/yyyy");
                        string datum = Console.ReadLine();
                        try
                        {
                            DateTime d = DateTime.Parse(datum);

                            double potroseno = psimulacija.VratiNovac(datum);
                            pgrafik.ProslediDatum(datum);
                            if (potroseno > 0)
                            {
                                Console.WriteLine("Zaradjeno : {0}", potroseno);
                            }
                            else if (potroseno < 0)
                            {
                                Console.WriteLine("Potroseno : {0}", potroseno);
                            }
                            else
                            {
                                Console.WriteLine("Uneli ste datum koji ne postoji u simulaciji");
                            }
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Datum nije unet u odgovarajucem formatu.");
                        }

                        break;
                    }
                }
                catch (FormatException ex)
                {
                    Console.WriteLine("Molimo vas da unesete neki od ponudjenih brojeva, dodatne informacije : " + ex.Message);
                }
            }while (komanda != 10);
        }