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()); } }
public Kuldemeny kovetkezo() { Kuldemeny kovetkezoKuldemeny = lancoltLista.lancKerese(pozicio); pozicio++; return(kovetkezoKuldemeny); }
private static bool vegsoEllenorzes(Futar maxFutar, Kuldemeny maxKuldemeny) { if (maxKuldemeny.Tomeg <= maxFutar.Jarmu.TeherBiras) { return(true); } return(false); }
public void kuldemenyGeneralasHozzaadas(int mennyiseg) { for (int i = 0; i < mennyiseg; i++) { Kuldemeny ujKuldemeny = eszkozok.kuldemenyKeszitese(); kuldemenyPrioLista[0].beillesztes(ujKuldemeny); } kuldemenyekKiosztasa(); }
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); } }
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); }
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++; } }
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--; }
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++; }
public TulNehezKuldemenyException(Kuldemeny legnehezebbKuldemeny) { this.legnehezebbKuldemeny = legnehezebbKuldemeny; }
public Par(Futar futar, Kuldemeny kuldemeny) { this.parositottFutar = futar; this.parositottKuldemeny = kuldemeny; }
public Lanc(Kuldemeny kuldemeny) { Kuldemeny = kuldemeny; }
private static void hozzaadottakTorlese(Kuldemeny maxKuldemeny, Futar maxFutar) { kezeltFutar.Remove(maxFutar); kezeltKuldemeny.Remove(maxKuldemeny); }