Bu örnekte bir telefon tarifemiz olsun. Bu tarife üzerine her fazla kullanımda oluşacak yeni tutarı oluştursun.
public partial class ftarife : Form { int paketfiyat; int[] miktarlar = { 0, 0, 0 }; double[] asimlar = { 0, 0, 0 }; public ftarife() { InitializeComponent(); tpaketfiyat.Text = "10"; tsmsmiktar.Text = "100"; tsmsucret.Text = "0,4"; tdkmiktar.Text = "100"; tdkucret.Text = "0,6"; tmbmiktar.Text = "100"; tmbucret.Text = "0,3"; rbsms.Checked = true; } private void bekle_Click(object sender, EventArgs e) { int miktar; bool kmiktar = Int32.TryParse(tmiktar.Text, out miktar); if (kmiktar && miktar > 0 && paramkontrol()) { if (rbsms.Checked) ltur.Items.Add(rbsms.Text); else if (rbdk.Checked) ltur.Items.Add(rbdk.Text); else ltur.Items.Add(rbmb.Text); lmiktar.Items.Add(miktar); rbsms.Checked = true; tmiktar.Clear(); hesapla(); } } private void bsil_Click(object sender, EventArgs e) { int secilen = ltur.SelectedIndex; if (secilen > -1 && paramkontrol()) { ltur.Items.RemoveAt(secilen); lmiktar.Items.RemoveAt(secilen); hesapla(); } } private void hesapla() { double tutar = paketfiyat * 1.0; string[] turler = { rbsms.Text, rbdk.Text, rbmb.Text }; lfiyat.Items.Clear(); for (int i = 0; i < ltur.Items.Count; i++) { int index = -1; string tur = ltur.Items[i].ToString(); // (string) ltur.Items[i] for (int k = 0; k < turler.Length; k++) if (turler[k] == tur) { index = k; break; } int miktar = (int)lmiktar.Items[i]; miktarlar[index] -= miktar; double asim = 0; if (miktarlar[index] < 0) { double p_asim = asimlar[index]; asim = p_asim * miktarlar[index] * -1; miktarlar[index] = 0; } tutar += asim; lfiyat.Items.Add(asim); } latutar.Text = tutar + " TL"; } private bool paramkontrol() { bool kpaket = Int32.TryParse(tpaketfiyat.Text, out paketfiyat); bool ksmsmiktar = Int32.TryParse(tsmsmiktar.Text, out miktarlar[0]); bool kdkmiktar = Int32.TryParse(tdkmiktar.Text, out miktarlar[1]); bool kmbmiktar = Int32.TryParse(tmbmiktar.Text, out miktarlar[2]); bool ksmsasim = Double.TryParse(tsmsucret.Text, out asimlar[0]); bool kdkasim = Double.TryParse(tdkucret.Text, out asimlar[1]); bool kmbasim = Double.TryParse(tmbucret.Text, out asimlar[2]); if (kpaket && ksmsmiktar && kdkmiktar && kmbmiktar && ksmsasim && kdkasim && kmbasim) return true; return false; } private void bduzenle_Click(object sender, EventArgs e) { if (paramkontrol()) hesapla(); } }
Bu yazı yorumlara kapalı.