예제 #1
0
파일: Beosztas.cs 프로젝트: cj19/beadand-
 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());
     }
 }
예제 #2
0
            public Kuldemeny kovetkezo()
            {
                Kuldemeny kovetkezoKuldemeny = lancoltLista.lancKerese(pozicio);

                pozicio++;
                return(kovetkezoKuldemeny);
            }
예제 #3
0
 private static bool vegsoEllenorzes(Futar maxFutar, Kuldemeny maxKuldemeny)
 {
     if (maxKuldemeny.Tomeg <= maxFutar.Jarmu.TeherBiras)
     {
         return(true);
     }
     return(false);
 }
예제 #4
0
파일: Beosztas.cs 프로젝트: cj19/beadand-
 public void kuldemenyGeneralasHozzaadas(int mennyiseg)
 {
     for (int i = 0; i < mennyiseg; i++)
     {
         Kuldemeny ujKuldemeny = eszkozok.kuldemenyKeszitese();
         kuldemenyPrioLista[0].beillesztes(ujKuldemeny);
     }
     kuldemenyekKiosztasa();
 }
예제 #5
0
파일: Beosztas.cs 프로젝트: cj19/beadand-
        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);
            }
        }
예제 #6
0
        private static Kuldemeny maxKuldemenyKivalasztasa(Kuldemeny[] napiKuldemenyek)
        {
            Kuldemeny max = napiKuldemenyek[0];

            for (int i = 1; i < napiKuldemenyek.Length; i++)
            {
                if (napiKuldemenyek[i].Prioritas >= max.Prioritas && napiKuldemenyek[i].Tomeg > max.Tomeg)
                {
                    max = napiKuldemenyek[i];
                }
            }
            return(max);
        }
예제 #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++;
            }
        }
예제 #8
0
        public void torles(Kuldemeny torlendo)
        {
            Lanc elozo    = null;
            Lanc aktualis = elso;

            while (aktualis != null && aktualis.Kuldemeny != torlendo)
            {
                elozo    = aktualis;
                aktualis = aktualis.kovetkezoLanc;
            }
            if (elozo == null)
            {
                elso = aktualis.kovetkezoLanc;
            }
            else
            {
                elozo.kovetkezoLanc = aktualis.kovetkezoLanc;
            }
            szam--;
        }
예제 #9
0
        public void beillesztes(Kuldemeny ujKuldemeny)
        {
            Lanc elozo    = null;
            Lanc aktualis = elso;

            while (aktualis != null && aktualis.Kuldemeny.Prioritas > ujKuldemeny.Prioritas)
            {
                elozo    = aktualis;
                aktualis = aktualis.kovetkezoLanc;
            }
            Lanc uj = new Lanc(ujKuldemeny);

            if (elozo == null)
            {
                uj.kovetkezoLanc = elso;
                elso             = uj;
            }
            else
            {
                elozo.kovetkezoLanc = uj;
                uj.kovetkezoLanc    = aktualis;
            }
            szam++;
        }
예제 #10
0
 public TulNehezKuldemenyException(Kuldemeny legnehezebbKuldemeny)
 {
     this.legnehezebbKuldemeny = legnehezebbKuldemeny;
 }
예제 #11
0
 public Par(Futar futar, Kuldemeny kuldemeny)
 {
     this.parositottFutar     = futar;
     this.parositottKuldemeny = kuldemeny;
 }
예제 #12
0
파일: Lanc.cs 프로젝트: cj19/beadand-
 public Lanc(Kuldemeny kuldemeny)
 {
     Kuldemeny = kuldemeny;
 }
예제 #13
0
 private static void hozzaadottakTorlese(Kuldemeny maxKuldemeny, Futar maxFutar)
 {
     kezeltFutar.Remove(maxFutar);
     kezeltKuldemeny.Remove(maxKuldemeny);
 }