Example #1
0
 public void kuldemenyekKiosztasa()
 {
     try
     {
         int nap = lefuttatottNapok;
         int k   = 0;
         List <Kuldemeny> kuldemenyek = kuldemenyListaFeltoltese();
         while (nap < 7 && kuldemenyek.Any())
         {
             Futar[]     napiFutarok     = new Futar[elerhetoFutarok[nap].Count];
             Kuldemeny[] napiKuldemenyek = new Kuldemeny[napiFutarok.Length];
             napiTombokFeltoltose(napiFutarok, napiKuldemenyek, kuldemenyek, nap, k);
             Parosito.parokOsszeallitasa(ref napokParjai, napiFutarok, napiKuldemenyek, nap);
             prioritasNovelese(kuldemenyek);
             nap++;
             k = 0;
             napiKiosztottKuldemenyek.Clear();
         }
     }
     catch (NincsenekFutarokException futarException)
     {
         Console.WriteLine("Nincsen szabad futár, kivételt dobott a rendszer --- " + futarException.ToString());
     }
     catch (TulNehezKuldemenyException tulNehezKuldemenyException)
     {
         Console.WriteLine(tulNehezKuldemenyException.ToString());
     }
 }
Example #2
0
 private static bool vegsoEllenorzes(Futar maxFutar, Kuldemeny maxKuldemeny)
 {
     if (maxKuldemeny.Tomeg <= maxFutar.Jarmu.TeherBiras)
     {
         return(true);
     }
     return(false);
 }
Example #3
0
        public Futar futarKeszitese()
        {
            Futar futar = new Futar();

            futar.Szabadnapok = szabadnapokBeallitasa();
            futar.Jarmu       = jarmuBeallitasa();
            return(futar);
        }
Example #4
0
        private void sulyEllenorzes(List <Futar> napiFutarok, List <Kuldemeny> napiKuldemenyek)
        {
            Futar     legTeherbirobbFutar  = maxTeherbiroFutar(napiFutarok);
            Kuldemeny legnehezebbKuldemeny = napiKuldemenyek[0];

            if (legnehezebbKuldemeny.Tomeg > legTeherbirobbFutar.Jarmu.TeherBiras)
            {
                throw new TulNehezKuldemenyException(legnehezebbKuldemeny);
            }
        }
Example #5
0
        private Futar maxTeherbiroFutar(List <Futar> napiFutarok)
        {
            Futar maxTeherbiroFutar = napiFutarok.First();

            for (int i = 0; i < napiFutarok.Count; i++)
            {
                if (maxTeherbiroFutar.Jarmu.TeherBiras < napiFutarok[i].Jarmu.TeherBiras)
                {
                    maxTeherbiroFutar = napiFutarok[i];
                }
            }
            return(maxTeherbiroFutar);
        }
Example #6
0
        private static Futar maxTeherBiroFutarKivalasztasa(Futar[] napiFutarok)
        {
            Futar max = napiFutarok[0];

            for (int i = 0; i < napiFutarok.Length; i++)
            {
                if (max.Jarmu.TeherBiras < napiFutarok[i].Jarmu.TeherBiras)
                {
                    max = napiFutarok[i];
                }
            }
            return(max);
        }
Example #7
0
        public static void parokOsszeallitasa(ref Par[,] napokParjai, Futar[] napiFutarok, Kuldemeny[] napiKuldemenyek, int nap)
        {
            kezeltFutarKuldemenyListakBeallitasa(napiFutarok, napiKuldemenyek);
            int i = 0;

            while (kezeltFutar.Any() && kezeltKuldemeny.Any())
            {
                Kuldemeny maxKuldemeny = maxKuldemenyKivalasztasa(kezeltKuldemeny.ToArray());
                Futar     maxFutar     = maxFutarKivalasztasa(kezeltFutar.ToArray(), maxKuldemeny.Tomeg);
                if (vegsoEllenorzes(maxFutar, maxKuldemeny))
                {
                    napokParjai[nap, i] = new Par(maxFutar, maxKuldemeny);
                }
                hozzaadottakTorlese(maxKuldemeny, maxFutar);
                i++;
            }
        }
Example #8
0
        private static Futar maxFutarKivalasztasa(Futar[] napiFutarok, double tomeg)
        {
            Futar  max     = maxTeherBiroFutarKivalasztasa(napiFutarok);
            double elteres = Math.Abs(tomeg - max.Jarmu.TeherBiras);

            for (int i = 1; i < napiFutarok.Length; i++)
            {
                if ((tomeg == napiFutarok[i].Jarmu.TeherBiras))
                {
                    max = napiFutarok[i];
                }
                if ((napiFutarok[i].Jarmu.TeherBiras > tomeg && elteres > (napiFutarok[i].Jarmu.TeherBiras - tomeg)) &&
                    napiFutarok[i].Jarmu.TeherBiras < max.Jarmu.TeherBiras)
                {
                    max = napiFutarok[i];
                }
            }
            return(max);
        }
Example #9
0
 public Par(Futar futar, Kuldemeny kuldemeny)
 {
     this.parositottFutar     = futar;
     this.parositottKuldemeny = kuldemeny;
 }
Example #10
0
 private static void hozzaadottakTorlese(Kuldemeny maxKuldemeny, Futar maxFutar)
 {
     kezeltFutar.Remove(maxFutar);
     kezeltKuldemeny.Remove(maxKuldemeny);
 }