İçeriğe geç

Tarife Aşımında Fatura Tutarını Hesaplama

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();
        }
    }
Kategori:AnasayfaC#

Bu yazı yorumlara kapalı.

× Nasıl yardımcı olabilirim?