C# Döviz Hesaplama Programı

Mutlu
15 Mart 2016 Salı
2

C# Döviz Hesaplama Programı

Öncelikle Türkiye Cumhuriyeti Merkez Bankasından Xml formatlı verileri çekmek için class oluşturup içerisine şu kodları yazıyoruz.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Xml;



namespace DovizHesap

{

    public class DovizKurlari

    {

        XmlDocument xml = null;

        const string adres = "http://www.tcmb.gov.tr/kurlar/today.xml";

        public enum KurKodu : byte

        {

            USD, CAD, DKK, SEK, NOK, CHF, JPY, SAR, KWD, AUD, EUR, GBP, IRR, SYP, JOG, BGL, ROL, ILS,

        }

        public enum Tur : byte

        {

            ForexBuying, //Döviz alış

            ForexSelling, //Döviz satış

            BanknoteBuying, //Efektif alış

            BanknoteSelling, //Efektif satış

        }

        public DovizKurlari()

        {

            xml = new XmlDocument();

            xml.Load(new XmlTextReader(adres));

        }

        public string TlKarsiligi(KurKodu kodu, Tur turu)

        {

            string kod = kodu.ToString();

            string tur = turu.ToString();

            XmlNodeList MyNode = xml.SelectNodes("/Tarih_Date/Currency[@Kod ='" + kod + "']/" + tur);

            return MyNode.Item(0).InnerText;

        }

    }

}

Daha sonra tasarım kısmına geçiyoruz.

 

Global değişkenlerimizi tanımlayalım ve Form1 Load Olayında Yapılan işlemlere gelelim.

ArrayList araysatis = new ArrayList();

        ArrayList arayalis = new ArrayList();

        NumberFormatInfo nfi = new NumberFormatInfo();

        ArrayList araytopsatis = new ArrayList();

        ArrayList araytopalis = new ArrayList();

            try

            {

                DovizKurlari dk = new DovizKurlari();



                nfi.CurrencyDecimalDigits = 4;

                nfi.NumberDecimalSeparator = ".";

                nfi.NumberGroupSeparator = ".";

                nfi.NumberGroupSizes = new int[] { 3 };

                double usdAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.USD, DovizKurlari.Tur.ForexBuying), nfi);

                double usdSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.USD, DovizKurlari.Tur.ForexSelling), nfi);

                double eurAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.EUR, DovizKurlari.Tur.ForexBuying), nfi);

                double eurSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.EUR, DovizKurlari.Tur.ForexSelling), nfi);

                // double jpyAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.JPY, DovizKurlari.Tur.ForexBuying), nfi);

                // double jpySatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.JPY, DovizKurlari.Tur.ForexSelling), nfi);

                double audAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.AUD, DovizKurlari.Tur.ForexBuying), nfi);

                double audSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.AUD, DovizKurlari.Tur.ForexSelling), nfi);

                double chfAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.CHF, DovizKurlari.Tur.ForexBuying), nfi);

                double chfSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.CHF, DovizKurlari.Tur.ForexSelling), nfi);

                double kwdAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.KWD, DovizKurlari.Tur.ForexBuying), nfi);

                double kwdSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.KWD, DovizKurlari.Tur.ForexSelling), nfi);

                double gbpAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.GBP, DovizKurlari.Tur.ForexBuying), nfi);

                double gbpSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.GBP, DovizKurlari.Tur.ForexSelling), nfi);



                arayalis.Add("1,0000");

                arayalis.Add(usdAlis);

               // lblUSDAlis.Text = arayalis[1].ToString();

                arayalis.Add(audAlis);

                //lblAUDAlis.Text = arayalis[2].ToString();

                arayalis.Add(chfAlis);

                //lblCHFAlis.Text = arayalis[3].ToString();



                arayalis.Add(kwdAlis);

               // lblKWDAlis.Text = arayalis[4].ToString();

                arayalis.Add(eurAlis);

               // lblEURAlis.Text = arayalis[5].ToString();

                arayalis.Add(gbpAlis);

               // lblGBPAlis.Text = arayalis[6].ToString();



                araysatis.Add("1,0000");

                araysatis.Add(usdSatis);

               // lblUSDSatis.Text = araysatis[1].ToString();

                araysatis.Add(audSatis);

               // lblAUDSatis.Text = araysatis[2].ToString();

                araysatis.Add(chfSatis);

               // lblCHFSatis.Text = araysatis[3].ToString();



                araysatis.Add(kwdSatis);

               // lblKWDSatis.Text = araysatis[4].ToString();

                araysatis.Add(eurSatis);

               // lblEURSatis.Text = araysatis[5].ToString();

                araysatis.Add(gbpSatis);

               // lblGBPSatis.Text = araysatis[6].ToString();





            }

            catch (Exception)

            {

            }

Daha sonra Hesapla butonuna tıkladığımızda yapılacak işlemlerimizi ekliyoruz.

try

            {

                //alış hesap

                string a = arayalis[cbParaBirimi.SelectedIndex].ToString();

                double myConverted = double.Parse(a);

                if (cbParaBirimi.SelectedIndex != 0)

                {

                    myConverted += Convert.ToDouble(araysatis[cbParaBirimi.SelectedIndex]) - Convert.ToDouble(arayalis[cbParaBirimi.SelectedIndex]);

                 }

                for (int i = 0; i < araysatis.Count; i++)

                {

                    string b = arayalis[i].ToString();

                    double myConverted2 = double.Parse(b);

                    if (i != 0)

                    {

                        myConverted2 += Convert.ToDouble(araysatis[i]) - Convert.ToDouble(arayalis[i]);

                    }

                    double t = double.Parse(txtDovizMiktari.Text);

                    double k = myConverted * t;

                    double p = k / myConverted2;

                    araytopalis.Add(p);

                }

                lblTATL.Text = Convert.ToDouble(araytopalis[0]).ToString("F2");

                lblTAUSD.Text = Convert.ToDouble(araytopalis[1]).ToString("F2");

                lblTAAUD.Text = Convert.ToDouble(araytopalis[2]).ToString("F2");

                lblTACHF.Text = Convert.ToDouble(araytopalis[3]).ToString("F2");

                lblTAKWD.Text = Convert.ToDouble(araytopalis[4]).ToString("F2");

                lblTAEUR.Text = Convert.ToDouble(araytopalis[5]).ToString("F2");

                lblTAGBP.Text = Convert.ToDouble(araytopalis[6]).ToString("F2");



                //satış hesap

                string x = araysatis[cbParaBirimi.SelectedIndex].ToString();

                double myConverted3 = double.Parse(x);

                if (cbParaBirimi.SelectedIndex != 0)

                {

                    myConverted3 -= Convert.ToDouble(araysatis[cbParaBirimi.SelectedIndex]) - Convert.ToDouble(arayalis[cbParaBirimi.SelectedIndex]);

                }

                for (int j = 0; j< arayalis.Count; j++)

                {

                    string b = araysatis[j].ToString();

                    double myConverted2 = double.Parse(b);

                    if (j != 0)

                    {

                        myConverted2 -= Convert.ToDouble(araysatis[j]) - Convert.ToDouble(arayalis[j]);

                    }

                    double t = double.Parse(txtDovizMiktari.Text);

                    double k = myConverted3 * t;

                    double p = k / myConverted2;

                    araytopsatis.Add(p);

                }

               

                lblTSTL.Text = Convert.ToDouble(araytopsatis[0]).ToString("F2");

                lblTSUSD.Text = Convert.ToDouble(araytopsatis[1]).ToString("F2");

                lblTSAUD.Text = Convert.ToDouble(araytopsatis[2]).ToString("F2");

                lblTSCHF.Text = Convert.ToDouble(araytopsatis[3]).ToString("F2");

                lblTSKWD.Text = Convert.ToDouble(araytopsatis[4]).ToString("F2");

                lblTSEUR.Text = Convert.ToDouble(araytopsatis[5]).ToString("F2");

                lblTSGBP.Text = Convert.ToDouble(araytopsatis[6]).ToString("F2");



                araytopalis.Clear();

                araytopsatis.Clear();

            }

            catch

            {

                MessageBox.Show("Bir Değer Girmelisiniz");

            }

Daha sonra 2. Formumuzun tasarımını oluşturuyoruz.

Ve Kurları Gör butonuna tıkladığımızdaki işlemleri gerçekleştiriyoruz.

Form2 frm = new Form2();

 frm.Show();

Şimdi ise Form2 deki işlemlerimize geçiyoruz.Global değişkenler ve Form2 nin load ın da yapılan işlemler şu şekildedir.

ArrayList araysatis = new ArrayList();

        ArrayList arayalis = new ArrayList();

        NumberFormatInfo nfi = new NumberFormatInfo();



try

            {

                DovizKurlari dk = new DovizKurlari();



                nfi.CurrencyDecimalDigits = 4;

                nfi.NumberDecimalSeparator = ".";

                nfi.NumberGroupSeparator = ".";

                nfi.NumberGroupSizes = new int[] { 3 };

                double usdAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.USD, DovizKurlari.Tur.ForexBuying), nfi);

                double usdSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.USD, DovizKurlari.Tur.ForexSelling), nfi);

                double eurAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.EUR, DovizKurlari.Tur.ForexBuying), nfi);

                double eurSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.EUR, DovizKurlari.Tur.ForexSelling), nfi);

                // double jpyAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.JPY, DovizKurlari.Tur.ForexBuying), nfi);

                // double jpySatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.JPY, DovizKurlari.Tur.ForexSelling), nfi);

                double audAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.AUD, DovizKurlari.Tur.ForexBuying), nfi);

                double audSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.AUD, DovizKurlari.Tur.ForexSelling), nfi);

                double chfAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.CHF, DovizKurlari.Tur.ForexBuying), nfi);

                double chfSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.CHF, DovizKurlari.Tur.ForexSelling), nfi);

                double kwdAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.KWD, DovizKurlari.Tur.ForexBuying), nfi);

                double kwdSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.KWD, DovizKurlari.Tur.ForexSelling), nfi);

                double gbpAlis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.GBP, DovizKurlari.Tur.ForexBuying), nfi);

                double gbpSatis = Convert.ToDouble(dk.TlKarsiligi(DovizKurlari.KurKodu.GBP, DovizKurlari.Tur.ForexSelling), nfi);



                arayalis.Add("1,0000");

                arayalis.Add(usdAlis);

                lblUSDAlis.Text = arayalis[1].ToString();

                arayalis.Add(audAlis);

                lblAUDAlis.Text = arayalis[2].ToString();

                arayalis.Add(chfAlis);

                lblCHFAlis.Text = arayalis[3].ToString();



                arayalis.Add(kwdAlis);

                lblKWDAlis.Text = arayalis[4].ToString();

                arayalis.Add(eurAlis);

                lblEURAlis.Text = arayalis[5].ToString();

                arayalis.Add(gbpAlis);

                lblGBPAlis.Text = arayalis[6].ToString();



                araysatis.Add("1,0000");

                araysatis.Add(usdSatis);

                lblUSDSatis.Text = araysatis[1].ToString();

                araysatis.Add(audSatis);

                lblAUDSatis.Text = araysatis[2].ToString();

                araysatis.Add(chfSatis);

                lblCHFSatis.Text = araysatis[3].ToString();



                araysatis.Add(kwdSatis);

                lblKWDSatis.Text = araysatis[4].ToString();

                araysatis.Add(eurSatis);

                lblEURSatis.Text = araysatis[5].ToString();

                araysatis.Add(gbpSatis);

                lblGBPSatis.Text = araysatis[6].ToString();





            }

            catch (Exception)

            {

            }

Evet Bütün Herşey bu kadar. Kolay gelsin. 



yorumlar
64x64

emre

25 Şubat 2019 Pazartesi

hocam hata alıyom( 'Dizin aralık dışındaydı. Negatif bir değer olmamalı ve koleksiyonun boyutundan daha küçük olmalıdır.
Parametre adı: index') bu hatayı veriyor

 

64x64

emre

25 Şubat 2019 Pazartesi

hocam hata alıyom( 'Dizin aralık dışındaydı. Negatif bir değer olmamalı ve koleksiyonun boyutundan daha küçük olmalıdır.
Parametre adı: index') bu hatayı veriyor

 

Yorum yaz