Furkan Karagülle
80+ Platinum
- Katılım
- 6 Nisan 2020
- Mesajlar
- 17,441
- En İyi Cevap
- 4
- Reaksiyon skoru
- 18,217
C# yazılım dilinde kredi faizi ve taksidini hesaplayan bir program yazdım ancak "?" işaretinin neden çıktığını bir türlü bulamadım.
C#:
#region Class Project 10 - Kredi Faiz ve Taksit Hesaplama
// Kredi türleri için enum
public enum KrediTuru
{
IhtiyacKredisi = 1,
EvKredisi,
SaglikKredisi,
AracKredisi,
EgitimKredisi,
TicariKredi
}
// Kullanıcı bilgilerini tutan class
public class Kullanici
{
public string Ad { get; set; }
public string Soyad { get; set; }
public int Yas { get; set; }
public string Meslek { get; set; }
public decimal AylikGelir { get; set; }
public void BilgileriGoster()
{
Console.WriteLine("\n=== KULLANICI BİLGİLERİ ===");
Console.WriteLine($"Ad-Soyad: {Ad} {Soyad}");
Console.WriteLine($"Yaş: {Yas}");
Console.WriteLine($"Meslek: {Meslek}");
Console.WriteLine($"Aylık Gelir: {AylikGelir:C}");
}
}
// Kredi işlemlerini yapan class
public class KrediHesaplama
{
private Kullanici kullanici;
private KrediTuru krediTuru;
private decimal krediTutari;
private int taksitSayisi;
private decimal faizOrani;
// Constructor
public KrediHesaplama(Kullanici kullanici)
{
this.kullanici = kullanici;
}
// Faiz oranlarını belirleme
private void FaizOraniBelirle()
{
switch (krediTuru)
{
case KrediTuru.IhtiyacKredisi:
this.faizOrani = 0.0449m; // Aylık %4.49
break;
case KrediTuru.EvKredisi:
this.faizOrani = 0.0279m; // Aylık %2.79
break;
case KrediTuru.SaglikKredisi:
this.faizOrani = 0.0199m; // Aylık %1.99
break;
case KrediTuru.AracKredisi:
this.faizOrani = 0.0319m; // Aylık %3.19
break;
case KrediTuru.EgitimKredisi:
this.faizOrani = 0.0259m; // Aylık %2.59
break;
case KrediTuru.TicariKredi:
this.faizOrani = 0.0379m; // Aylık %3.79
break;
default:
this.faizOrani = 0.0349m;
break;
}
}
// Kredi detaylarını alma
public void KrediDetaylariniAl()
{
Console.WriteLine("\n=== KREDİ TÜRLERİ ===");
Console.WriteLine("1. İhtiyaç Kredisi");
Console.WriteLine("2. Ev Kredisi (Mortgage)");
Console.WriteLine("3. Sağlık Kredisi");
Console.WriteLine("4. Araç Kredisi");
Console.WriteLine("5. Eğitim Kredisi");
Console.WriteLine("6. Ticari Kredi");
Console.Write("\nKredi türünü seçin (1-6): ");
int secim = int.Parse(Console.ReadLine());
if (secim < 1 || secim > 6)
{
Console.WriteLine("Geçersiz seçim! Varsayılan olarak İhtiyaç Kredisi seçildi.");
secim = 1;
}
this.krediTuru = (KrediTuru)secim;
Console.Write("Kredi tutarını girin (TL): ");
this.krediTutari = decimal.Parse(Console.ReadLine());
Console.Write("Taksit sayısını girin (ay): ");
this.taksitSayisi = int.Parse(Console.ReadLine());
// Faiz oranını belirle
FaizOraniBelirle();
}
// Aylık taksit hesaplama
public decimal AylikTaksitHesapla()
{
// Formül: (AnaPara * Faiz * (1+Faiz)^Taksit) / ((1+Faiz)^Taksit - 1)
decimal aylikFaiz = this.faizOrani;
decimal pay = krediTutari * aylikFaiz * (decimal)Math.Pow((double)(1 + aylikFaiz), taksitSayisi);
decimal payda = (decimal)Math.Pow((double)(1 + aylikFaiz), taksitSayisi) - 1;
return pay / payda;
}
// Toplam geri ödeme tutarı
public decimal ToplamGeriOdeme()
{
return AylikTaksitHesapla() * taksitSayisi;
}
// Toplam faiz tutarı
public decimal ToplamFaiz()
{
return ToplamGeriOdeme() - krediTutari;
}
// Kredi uygunluk kontrolü
public bool KrediUygunlukKontrol()
{
// Yaş kontrolü
if (kullanici.Yas < 18 || kullanici.Yas > 65)
{
Console.WriteLine("Yaşınız kredi almak için uygun değil!");
return false;
}
// Taksit/Gelir oranı kontrolü
decimal aylikTaksit = AylikTaksitHesapla();
decimal taksitGelirOrani = (aylikTaksit / kullanici.AylikGelir) * 100;
if (taksitGelirOrani > 60)
{
Console.WriteLine($"Aylık taksit tutarı ({aylikTaksit:C}) gelirinizin %60'ını ({taksitGelirOrani:F2}%) aşıyor!");
return false;
}
// Minimum gelir kontrolü
if (kullanici.AylikGelir < 5000)
{
Console.WriteLine("Aylık geliriniz minimum 5.000 TL olmalıdır!");
return false;
}
return true;
}
// Kredi detaylarını gösterme
public void KrediDetaylariniGoster()
{
Console.WriteLine("\n=== KREDİ DETAYLARI ===");
Console.WriteLine($"Kredi Türü: {krediTuru}");
Console.WriteLine($"Kredi Tutarı: {krediTutari:C}");
Console.WriteLine($"Taksit Sayısı: {taksitSayisi} ay");
Console.WriteLine($"Aylık Faiz Oranı: {faizOrani * 100:F2}%");
Console.WriteLine($"Yıllık Faiz Oranı (APR): {faizOrani * 12 * 100:F2}%");
Console.WriteLine($"Aylık Taksit: {AylikTaksitHesapla():C}");
Console.WriteLine($"Toplam Geri Ödeme: {ToplamGeriOdeme():C}");
Console.WriteLine($"Toplam Faiz: {ToplamFaiz():C}");
}
// Kredi özet tablosu
public void KrediOzetTablosu()
{
if (!KrediUygunlukKontrol())
{
Console.WriteLine("\nKredi başvurunuz uygun görülmemiştir.");
return;
}
Console.WriteLine("\n=== KREDİ ÖZET TABLOSU ===");
kullanici.BilgileriGoster();
KrediDetaylariniGoster();
Console.WriteLine("\n=== TAKSİT TABLOSU ===");
decimal kalanAnaPara = krediTutari;
decimal aylikTaksit = AylikTaksitHesapla();
for (int ay = 1; ay <= taksitSayisi; ay++)
{
decimal aylikFaizTutari = kalanAnaPara * faizOrani;
decimal aylikAnaParaOdemesi = aylikTaksit - aylikFaizTutari;
kalanAnaPara -= aylikAnaParaOdemesi;
Console.WriteLine($"{ay}. Ay: Taksit: {aylikTaksit:C} | " +
$"Anapara: {aylikAnaParaOdemesi:C} | " +
$"Faiz: {aylikFaizTutari:C} | " +
$"Kalan: {kalanAnaPara:C}");
}
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("=== KREDİ HESAPLAMA PROGRAMI ===");
// Kullanıcı bilgilerini alma
Kullanici kullanici = new Kullanici();
Console.Write("Adınız: ");
kullanici.Ad = Console.ReadLine();
Console.Write("Soyadınız: ");
kullanici.Soyad = Console.ReadLine();
Console.Write("Yaşınız: ");
kullanici.Yas = int.Parse(Console.ReadLine());
Console.Write("Mesleğiniz: ");
kullanici.Meslek = Console.ReadLine();
Console.Write("Aylık Geliriniz (TL): ");
kullanici.AylikGelir = decimal.Parse(Console.ReadLine());
// Kredi hesaplama nesnesi oluşturma
KrediHesaplama krediHesaplama = new KrediHesaplama(kullanici);
// Kredi detaylarını alma
krediHesaplama.KrediDetaylariniAl();
// Sonuçları gösterme
krediHesaplama.KrediOzetTablosu();
Console.WriteLine("\nProgram sonlandı. Çıkmak için bir tuşa basın...");
Console.ReadKey();
}
}
#endregion