public static void RaktarbaPakolasMoho() { LancoltLista <Csomag> Kimenet = new LancoltLista <Csomag>(); LancoltLista <Csomag> SegedCsomag = KiszallítasraVaroCsomagok.CsakBeolvas("Meghiúsultszállítások.txt"); if (OsszMeret(Kimenet) <= raktarmeret) // megnézzük h az összes csomag befér-e a raktárba { foreach (Csomag akt in SegedCsomag) { Kimenet.PrioritasBerakCsokkeno(akt, akt.Meret); } } else // ha nem, mohó algoritmussal bepakoljuk amit tudunk a többit pedig visszavisszük a küldőnek { Kimenet = ListaRendezErtek(SegedCsomag); SegedCsomag.EgeszListaTorles(); foreach (Csomag akt in SegedCsomag) { if (OsszMeret(Kimenet) < raktarmeret) { SegedCsomag.PrioritasBerakCsokkeno(akt, akt.Ertek); } } } Kimenet = SegedCsomag; foreach (Csomag akt in Kimenet) { KiszallitandoCsomagKeszit.Kiirat(akt, "BeolvasniValoTxt.txt"); } }
}//Szimulálja a futár úton tölött idejét public static void Ksz(Csomag Csomag, Stopwatch sw) // sw kell mert leellenőrzi egyáltalán van-e még ideje kiszállítani { FutarIdo(); if (sw.ElapsedMilliseconds / 1000 < Csomag.Prioritas && Csomag.Prioritas != 100 && Csomag.Prioritas != -1 && rnd.Next(0, 101) < 90) { KiszallitandoCsomagKeszit.Kiirat(Csomag, "Kivitt.txt"); Console.WriteLine("A csomag sikeresen kézbesítve lett: " + Csomag.Fajta); } else if (Csomag.Prioritas == -1 && rnd.Next(0, 101) < 90) { KiszallitandoCsomagKeszit.Kiirat(Csomag, "Kivitt.txt"); Console.WriteLine("A csomag sikeresen kézbesítve lett: " + Csomag.Fajta); } else if (Csomag.Prioritas == 100 && rnd.Next(0, 101) < 90) { KiszallitandoCsomagKeszit.Kiirat(Csomag, "Kivitt.txt"); Console.WriteLine("A csomag sikeresen kézbesítve lett: " + Csomag.Fajta); } else { throw new NemSikerultAKisszallítas(Csomag, "Nem sikerült a kiszállítás az alábbi csomagnál: " + Csomag.Fajta + " " + Csomag.Prioritas + " " + Csomag.Meret + " " + Csomag.Ertek); } }//Kiszállítást szimláló metódus
} // teszteléshez static void KiirTxtbe(Csomag csomag) { KiszallitandoCsomagKeszit.Kiirat(csomag, "Meghiúsultszállítások.txt"); }