public void DodajPunjacLosiParametri(PunjacAutomobila p) { Assert.Throws <ArgumentNullException>(() => { pp.DodajPunjac(p); }); }
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); }
public void Ukljuci(PunjacAutomobila pa) { if (pa == null) { throw new ArgumentNullException("Punjac je null"); } else { pa.UtaknutAutomobil = true; } }
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); } }
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); } }
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(); }
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); }