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()); } }
private static bool vegsoEllenorzes(Futar maxFutar, Kuldemeny maxKuldemeny) { if (maxKuldemeny.Tomeg <= maxFutar.Jarmu.TeherBiras) { return(true); } return(false); }
public Futar futarKeszitese() { Futar futar = new Futar(); futar.Szabadnapok = szabadnapokBeallitasa(); futar.Jarmu = jarmuBeallitasa(); return(futar); }
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 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); }
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); }
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++; } }
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); }
public Par(Futar futar, Kuldemeny kuldemeny) { this.parositottFutar = futar; this.parositottKuldemeny = kuldemeny; }
private static void hozzaadottakTorlese(Kuldemeny maxKuldemeny, Futar maxFutar) { kezeltFutar.Remove(maxFutar); kezeltKuldemeny.Remove(maxKuldemeny); }