Example #1
0
        /// <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);
        }
Example #2
0
        /// <summary>
        /// Nasumično generira količine otpada po vrsti otpada i prema kategoriji korisnika.
        /// </summary>
        /// <param name="parametri"></param>
        /// <param name="generatorBrojeva"></param>
        /// <param name="kategorija"></param>
        /// <returns></returns>
        private static Dictionary<VrstaOtpada, float> OdrediOtpadKorisnikuPoVrsti(ParametriSingleton parametri, 
                                                                                GeneratorBrojevaSingleton generatorBrojeva, 
                                                                                Kategorija kategorija)
        {
            string korisnikKategorija = kategorija.ToString().ToLower();
            int minParametar = parametri.DohvatiParametarInt(korisnikKategorija + "Min");
            int brojDecimala = parametri.DohvatiParametarInt("brojDecimala");            

            Dictionary<VrstaOtpada, float> otpadiKorisnika = new Dictionary<VrstaOtpada, float>();
            foreach (VrstaOtpada vrsta in Enum.GetValues(typeof(VrstaOtpada)))
            {
                int gornjaVrijednost = parametri.DohvatiParametarInt(korisnikKategorija + vrsta.ToString());
                float minVrijednost = (float)minParametar / 100 * gornjaVrijednost;
                float maxVrijednost = gornjaVrijednost;

                otpadiKorisnika[vrsta] = generatorBrojeva.DajSlucajniBrojFloat(minVrijednost, maxVrijednost, brojDecimala);
            }

            return otpadiKorisnika;
        }        
Example #3
0
        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);
        }
Example #4
0
        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);
        }