/// <summary> /// Za sve ulice i svakog pojedinog korisnika nasumično generira količinu otpada po pojedinoj vrsti otpada. /// </summary> /// <param name="ulice"></param> /// <param name="datotekaParametara"></param> /// <returns></returns> public static List <Ulica> OdrediOtpadKorisnicima(List <Ulica> ulice, string datotekaParametara) { ParametriSingleton parametri = ParametriSingleton.DohvatiInstancu(datotekaParametara); int sjemeGeneratora = int.Parse(parametri.DohvatiParametar("sjemeGeneratora")); GeneratorBrojevaSingleton generatorBrojeva = GeneratorBrojevaSingleton.DohvatiInstancu(sjemeGeneratora); foreach (Ulica ulica in ulice) { foreach (Korisnik korisnik in ulica.KorisniciMali) { korisnik.Otpad = OdrediOtpadKorisnikuPoVrsti(parametri, generatorBrojeva, Kategorija.Mali); } foreach (Korisnik korisnik in ulica.KorisniciSrednji) { korisnik.Otpad = OdrediOtpadKorisnikuPoVrsti(parametri, generatorBrojeva, Kategorija.Srednji); } foreach (Korisnik korisnik in ulica.KorisniciVeliki) { korisnik.Otpad = OdrediOtpadKorisnikuPoVrsti(parametri, generatorBrojeva, Kategorija.Veliki); } } return(ulice); }
private static List <int> StvoriNasumicniRedoslijedUlica() { int sjemeGeneratora = Program.Parametri.DohvatiParametarInt("sjemeGeneratora"); GeneratorBrojevaSingleton generatorBrojeva = GeneratorBrojevaSingleton.DohvatiInstancu(sjemeGeneratora); int brojUlica = Program.Ulice.Count; List <int> redoslijedUlica = new List <int>(); for (int i = 0; i < brojUlica; i++) { int slucajniBroj = generatorBrojeva.DajSlucajniBrojInt(0, brojUlica); while (redoslijedUlica.Contains(slucajniBroj)) { slucajniBroj = generatorBrojeva.DajSlucajniBrojInt(0, brojUlica); } redoslijedUlica.Add(slucajniBroj); } return(redoslijedUlica); }
public static List <Ulica> OdrediOtpadKorisnicima(List <Ulica> ulice, string datotekaParametara) { ParametriSingleton parametri = ParametriSingleton.DohvatiInstancu(datotekaParametara); int sjemeGeneratora = int.Parse(parametri.DohvatiParametar("sjemeGeneratora")); GeneratorBrojevaSingleton generatorBrojeva = GeneratorBrojevaSingleton.DohvatiInstancu(sjemeGeneratora); int brojDecimala = parametri.DohvatiParametarInt("brojDecimala"); foreach (Ulica ulica in ulice) { Dictionary <VrstaOtpada, float> sumaOtpada = new Dictionary <VrstaOtpada, float>(); foreach (Korisnik korisnik in ulica.KorisniciMali) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] = 0; sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } foreach (Korisnik korisnik in ulica.KorisniciSrednji) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } foreach (Korisnik korisnik in ulica.KorisniciVeliki) { foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { string korisnikKategorija = korisnik.Kategorija.ToString().ToLower(); int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min"); int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString()); float minVrijednost = (float)minParametar / 100 * gornjaVrijednost; float maxVrijednost = gornjaVrijednost; korisnik.Otpad[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala); sumaOtpada[vrsta] += korisnik.Otpad[vrsta]; } } Console.WriteLine(); Console.WriteLine(ulica.Naziv); foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada))) { Console.WriteLine("{0}: {1}kg", vrsta, sumaOtpada[vrsta]); } } return(ulice); }