示例#1
0
 static void TeljesListaTorles(LancoltLista <Csomag> csomag)
 {
     foreach (var akt in csomag)
     {
         csomag.Torles(akt);
     }
 } // teszteléshez
示例#2
0
        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");
            }
        }
示例#3
0
        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);
        }
示例#4
0
        private static int OsszMeret(LancoltLista <Csomag> Csomagok)
        {
            int osszmeret = 0;

            foreach (Csomag akt in Csomagok)
            {
                osszmeret += akt.Meret;
            }
            return(osszmeret);
        }
示例#5
0
        public int Count(LancoltLista <Csomag> csomag)
        {
            int db = 0;

            foreach (var akt in csomag)
            {
                if (akt != null)
                {
                    db++;
                }
            }
            return(db);
        }
示例#6
0
        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();
        }
示例#7
0
        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);
        }
示例#8
0
 static void NapVegeTxtbeIr(LancoltLista <Csomag> Csomagok)
 {
     Csomagok.Bejaras(KiirTxtbe);
 }