/// <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++; } }
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); }
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(); }
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(); }
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); }