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.