Beispiel #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);
        }
Beispiel #2
0
 private static void UcitajParametre()
 {
     if (!File.Exists(Program.DatotekaParametara))
     {
         Pomocno.ZavrsiProgram("Datoteka s parametrima ne postoji!", false);
     }
     Program.Parametri       = ParametriSingleton.DohvatiInstancu(Program.DatotekaParametara);
     Program.PutanjaDatoteka = Path.GetDirectoryName(Program.DatotekaParametara);
 }
Beispiel #3
0
        public override void ObaviIspis(string redakTeksta)
        {
            ParametriSingleton parametri = ParametriSingleton.DohvatiInstancu(Program.DatotekaParametara);

            datotekaIzlaza = Pomocno.DohvatiPutanjuDatoteke(parametri.DohvatiParametar("izlaz"));

            if (this.provjeriPostojanjeDatoteke())
            {
                ispisZaslon = new IspisZaslon();
                ispisZaslon.ObaviIspis(redakTeksta);

                this.ispisUDatoteku(redakTeksta);
            }
        }
Beispiel #4
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;
        }        
Beispiel #5
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);
        }