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ı.