Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
22 Aralık 2023
Mesajlar
307
Çözümler
2
Beğeniler
265
Yer
Amasya, Türkiye
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

Ekran görüntüsü 2025-12-19 105602.webp
 
Çözüm
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

Eki Görüntüle 211740

Senin kodda bir hatan yok. konsolun karakter kodlamasından (encoding) kaynaklanıyor.
Ekranda gördüğün ? işaretleri, Türk lirası sembolü (₺) doğru gösterilemediği için çıkıyor.
ASCII maalesef TL işaretini desteklemiyor.
Sadece TL kullanacaksan;

C#:
Console.WriteLine($"Aylık Gelir: {AylikGelir:N2} TL");

Ya da (nasıl yapıldığını bilmiyorum) utf-8'e alabilirsin Console encodingi. (Hatam olabilir kusura bakmayın)

Öğrenip geldim:
Kodundaki Program class'ının içindeki Main metodunu şu şekilde güncelleyebilirsin:
C#:
static void Main(string[] args)
{
    // eklenecek satır:
    Console.OutputEncoding = System.Text.Encoding.UTF8;

    Console.WriteLine("=== KREDİ HESAPLAMA PROGRAMI ===");

    // kodun geri kalanı aynı şekilde devam ediyor
    
    // Kullanıcı bilgilerini alma
    Kullanici kullanici = new Kullanici();
    
    // ...
}
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

Eki Görüntüle 211740

Senin kodda bir hatan yok. konsolun karakter kodlamasından (encoding) kaynaklanıyor.
Ekranda gördüğün ? işaretleri, Türk lirası sembolü (₺) doğru gösterilemediği için çıkıyor.
ASCII maalesef TL işaretini desteklemiyor.
Sadece TL kullanacaksan;

C#:
Console.WriteLine($"Aylık Gelir: {AylikGelir:N2} TL");

Ya da (nasıl yapıldığını bilmiyorum) utf-8'e alabilirsin Console encodingi. (Hatam olabilir kusura bakmayın)

Öğrenip geldim:
Kodundaki Program class'ının içindeki Main metodunu şu şekilde güncelleyebilirsin:
C#:
static void Main(string[] args)
{
    // eklenecek satır:
    Console.OutputEncoding = System.Text.Encoding.UTF8;

    Console.WriteLine("=== KREDİ HESAPLAMA PROGRAMI ===");

    // kodun geri kalanı aynı şekilde devam ediyor
    
    // Kullanıcı bilgilerini alma
    Kullanici kullanici = new Kullanici();
    
    // ...
}
 
Çözüm
Senin kodda bir hatan yok. konsolun karakter kodlamasından (encoding) kaynaklanıyor.
Ekranda gördüğün ? işaretleri, Türk lirası sembolü (₺) doğru gösterilemediği için çıkıyor.
ASCII maalesef TL işaretini desteklemiyor.
Sadece TL kullanacaksan;

C#:
Console.WriteLine($"Aylık Gelir: {AylikGelir:N2} TL");

Ya da (nasıl yapıldığını bilmiyorum) utf-8'e alabilirsin Console encodingi. (Hatam olabilir kusura bakmayın)

Öğrenip geldim:
Kodundaki Program class'ının içindeki Main metodunu şu şekilde güncelleyebilirsin:
C#:
static void Main(string[] args)
{
    // eklenecek satır:
    Console.OutputEncoding = System.Text.Encoding.UTF8;

    Console.WriteLine("=== KREDİ HESAPLAMA PROGRAMI ===");

    // kodun geri kalanı aynı şekilde devam ediyor
   
    // Kullanıcı bilgilerini alma
    Kullanici kullanici = new Kullanici();
   
    // ...
}

Teşekkür ederim.

Kodda hata yok gibi gözüküyor. Türkçe karakterlerden oluyor olabilirmi?

Evet dostum, bu yüzden kaynaklanıyormuş.

Varsayılan ayarların ₺ simgesini tanıyamıyor hocam.
Main metodun en başına şu satırı eklemen yeterli okacaktır.
Kod:
Console.OutputEncoding = System.Text.Encoding.UTF8;
]

Teşekkürler.