/// <summary>
        /// Kuyruğa araba ekleme fonksiyonu
        /// </summary>
        /// <param name="yeniAraba">Kuyruğa eklenecek ilgili araba</param>
        public void Insert(Araba yeniAraba)
        {
            if (count == 0) // kuyrukta araba yoksa front değerine ilgili araba eklenir
            {
                Kuyruk[++front] = yeniAraba;
                count++;
            }

            else // kuyrukta araba varsa işlem süresine bakılarak ekleme yapılır - işlem süresi en az olan front değerine eklenir
            {
                int arabaIndexi; // Kuyruk[arabaIndexi] -> Kuyruk[2] vb

                for (arabaIndexi = count - 1; arabaIndexi >= 0; arabaIndexi--)
                {
                    if (yeniAraba.islemSuresi > Kuyruk[arabaIndexi].islemSuresi) // İşlem sürelerinin karşılaştırılması
                    {
                        Kuyruk[arabaIndexi + 1] = Kuyruk[arabaIndexi];
                    }

                    else
                    {
                        break;
                    }
                }
                Kuyruk[arabaIndexi + 1] = yeniAraba;
                front++;
                count++;
            }
        }
Exemplo n.º 2
0
        private void btnEkle_Click(object sender, EventArgs e)
        {
            ListeAktivasyon_Temizle();

            arabaSayisi = Convert.ToInt32(txtArabaSayisi.Text);
            arabaSayaci = 1;
            int    islemSuresi;
            Random randIslemsuresi = new Random();

            IlgiliNesneleriUret(arabaSayisi);

            while (arabaSayaci <= arabaSayisi)
            {
                islemSuresi = randIslemsuresi.Next(10, 300);
                string arabaAdi = "Araba" + arabaSayaci;
                araba = new Araba(arabaAdi, islemSuresi);
                IlgiliEklemeleriYap(araba);

                lstArabalar.Items.Add("Araba" + arabaSayaci + " - İşlem Süresi: " + islemSuresi + " sn");
                arabaSayaci++;
            }
            btnCikar.Show();
            btnEkle.Hide();
            txtArabaSayisi.Enabled = false;
        }
        /// <summary>
        /// Kuyruğa araba ekleme fonksiyonu
        /// </summary>
        /// <param name="yeniAraba">Kuyruğa eklenecek ilgili araba</param>
        public void Insert(Araba yeniAraba)
        {
            if (front == -1)
            {
                front = 0;
            }

            Kuyruk[++rear] = yeniAraba;
            count++;
        }
        /// <summary>
        /// Kuyruktan araba çıkarma fonksiyonu
        /// </summary>
        /// <returns>Kuyruktan çıkan ilgili araba</returns>
        public Araba Remove()
        {
            Araba cikanAraba = Kuyruk[front];

            Kuyruk[front] = null;

            cikisSuresi += cikanAraba.islemSuresi;
            cikanAraba.islemTamamlamasuresi += cikisSuresi; // çıkan arabaya ait çıkış süresinin hesaplanması

            front++;
            count--;

            return(cikanAraba);
        }
Exemplo n.º 5
0
        private void btnCikar_Oncelikli_Click(object sender, EventArgs e)
        {
            arabaSayaci         = 1;
            ortIslTam_Oncelikli = new double[arabaSayisi];

            while (arabaSayaci <= arabaSayisi)
            {
                double ortIsl = ortIslTam_Oncelikli[arabaSayaci - 1];

                Araba cikanAraba = arabaKuyrugu_Oncelikli.Remove();
                ortIsl = (cikanAraba.islemTamamlamasuresi_Oncelikli / Convert.ToDouble(arabaSayaci));
                ortIsl = Math.Round(ortIsl, 2);
                cikanAraba.kuyrukSirasi_Oncelikli            = arabaSayaci;
                cikanAraba.ortIslemtamamlamaSuresi_Oncelikli = ortIsl;

                lstKuyruk_Oncelikli.Items.Add(cikanAraba.kuyrukSirasi_Oncelikli + " -> " + cikanAraba.ad + " - Süre: " + cikanAraba.islemTamamlamasuresi_Oncelikli + " sn");
                lstOrtIslemSuresi_Oncelikli.Items.Add(cikanAraba.kuyrukSirasi_Oncelikli + " araba için ort. süre: " + cikanAraba.ortIslemtamamlamaSuresi_Oncelikli + " sn");

                ortIslTam_Oncelikli[arabaSayaci - 1] = ortIsl;

                double fark_ortSure  = ortIslTam[arabaSayaci - 1] - ortIslTam_Oncelikli[arabaSayaci - 1];
                double yuzde_ortSure = (fark_ortSure / ortIslTam_Oncelikli[arabaSayaci - 1]) * 100;
                fark_ortSure  = Math.Round(fark_ortSure, 2);
                yuzde_ortSure = Math.Round(yuzde_ortSure, 2);

                lstOrtIslKazanc.Items.Add("Fark: " + fark_ortSure + " sn - Yüzde: %" + yuzde_ortSure);
                arabaSayaci++;

                otopark.OncelikliCikanArabayiEkle(cikanAraba);
            }

            foreach (Araba kazancliAraba in otopark.OncelikliCikanArabalar)
            {
                if (kazancliAraba.kuyrukSirasi_Oncelikli < kazancliAraba.kuyrukSirasi)
                {
                    double sureKazanci = kazancliAraba.islemTamamlamasuresi - kazancliAraba.islemTamamlamasuresi_Oncelikli;
                    lstArabalar_Kazancli.Items.Add(kazancliAraba.ad + " - Kazanç: " + sureKazanci + " sn" +
                                                   " (" + kazancliAraba.kuyrukSirasi + ". siradan -> " + kazancliAraba.kuyrukSirasi_Oncelikli + ". siraya)");
                }
            }

            txtArabaSayisi.Clear();
            txtArabaSayisi.Enabled = true;
            btnEkle.Show();
            btnEkle.Enabled = false;
            btnCikar_Oncelikli.Hide();
        }
Exemplo n.º 6
0
        private void btnCikar_Click(object sender, EventArgs e)
        {
            arabaSayaci = 1;
            ortIslTam   = new double[arabaSayisi];

            while (arabaSayaci <= arabaSayisi)
            {
                double ortIsl = ortIslTam[arabaSayaci - 1];

                Araba cikanAraba = arabaKuyrugu.Remove();
                ortIsl = (cikanAraba.islemTamamlamasuresi / Convert.ToDouble(arabaSayaci));
                ortIsl = Math.Round(ortIsl, 2);
                cikanAraba.kuyrukSirasi            = arabaSayaci;
                cikanAraba.ortIslemtamamlamaSuresi = ortIsl;

                lstKuyruk.Items.Add(cikanAraba.kuyrukSirasi + " -> " + cikanAraba.ad + " - Süre: " + cikanAraba.islemTamamlamasuresi + " sn");
                lstOrtIslemSuresi.Items.Add(cikanAraba.kuyrukSirasi + " araba için ort. süre: " + cikanAraba.ortIslemtamamlamaSuresi + " sn");

                ortIslTam[arabaSayaci - 1] = ortIsl;
                arabaSayaci++;
            }
            btnCikar_Oncelikli.Show();
            btnCikar.Hide();
        }
Exemplo n.º 7
0
 private void IlgiliEklemeleriYap(Araba yeniAraba)
 {
     otopark.OtoparkaArabaEkle(yeniAraba);
     arabaKuyrugu.Insert(yeniAraba);
     arabaKuyrugu_Oncelikli.Insert(yeniAraba);
 }
 public void OncelikliCikanArabayiEkle(Araba cikanAraba)
 {
     OncelikliCikanArabalar.Add(cikanAraba);
 }
 public void OtoparkaArabaEkle(Araba yeniAraba)
 {
     OtoparktakiArabalar.Add(yeniAraba);
 }