static void TeljesListaTorles(LancoltLista <Csomag> csomag) { foreach (var akt in csomag) { csomag.Torles(akt); } } // teszteléshez
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"); } }
private static LancoltLista <Csomag> ListaRendezErtek(LancoltLista <Csomag> Csomagok) // érték alapján rendezzük buborék rendezéssel { LancoltLista <Csomag> SegedCsomag = new LancoltLista <Csomag>(); foreach (Csomag akt in Csomagok) { SegedCsomag.PrioritasBerakCsokkeno(akt, akt.Ertek); } return(SegedCsomag); }
private static int OsszMeret(LancoltLista <Csomag> Csomagok) { int osszmeret = 0; foreach (Csomag akt in Csomagok) { osszmeret += akt.Meret; } return(osszmeret); }
public int Count(LancoltLista <Csomag> csomag) { int db = 0; foreach (var akt in csomag) { if (akt != null) { db++; } } return(db); }
static void Main(string[] args) { SikertelenKiszallitas v = new SikertelenKiszallitas(KiirTxtbe); SikertelenKiszallitas esemeny = new SikertelenKiszallitas(KiirTxtbe); esemeny += Kiir; LancoltLista <Csomag> Csomagok = new LancoltLista <Csomag>(); Csomag segedCsomag; Stopwatch sw = new Stopwatch();//stopper do { KiszallitandoCsomagKeszit.TxtTorles("Meghiúsultszállítások.txt"); // nehogy visszaolvasson régebbieket sw.Reset(); sw.Start(); int db = 1; while (sw.ElapsedMilliseconds < 24000 && db < 20)//24 mp egy nap { Eleje: KiszallitandoCsomagKeszit.KiszallitandoCsomag("BeolvasniValoTxt.txt", sw); Csomagok = RendezettenBeolvas("BeolvasniValoTxt.txt"); try { segedCsomag = Csomagok.VisszaElsoElem(); } catch (ElfogytakACsomagok e) { Console.WriteLine(e.Msg); goto Eleje; } try { Kiszallitas.Ksz(segedCsomag, sw); } catch (NemSikerultAKisszallítas nem) { Console.WriteLine(nem.Msg); esemeny(segedCsomag); } db++; } sw.Stop(); KiszallitandoCsomagKeszit.TxtTorles("BeolvasniValoTxt.txt"); NapVegeTxtbeIr(Csomagok); // a 24 mp leteltével a még listákban lévő maradék csomagokat kirakja a MeghhiúsúltSzállítások.txt-be Raktar.RaktarbaPakolasMoho(); // a MeghiúsúltSzállítások.txt-ből elhelyezi a raktárba onnan meg vissza a BeolvasniValoTxt.txt-be a csomagokat } while (!SzimulacioVege()); Console.WriteLine("Bezárta a céget."); Console.ReadLine(); }
public static LancoltLista <Csomag> CsakBeolvas(string honnan) { string [] sor; LancoltLista <Csomag> csomagok = new LancoltLista <Csomag>(); Csomag csomag; StreamReader sr = new StreamReader(honnan); while (!sr.EndOfStream) { sor = sr.ReadLine().Split(';'); csomag = new Csomag(sor[0], int.Parse(sor[1]), int.Parse(sor[2]), int.Parse(sor[3])); csomagok.PrioritasBerakNovekvo(csomag, csomag.Prioritas); } sr.Close(); return(csomagok); }
static void NapVegeTxtbeIr(LancoltLista <Csomag> Csomagok) { Csomagok.Bejaras(KiirTxtbe); }