Exemplo n.º 1
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");
            }
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
        }//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
Exemplo n.º 4
0
        } // teszteléshez

        static void KiirTxtbe(Csomag csomag)
        {
            KiszallitandoCsomagKeszit.Kiirat(csomag, "Meghiúsultszállítások.txt");
        }