Banka sisteminde döngünün çözümü nedir?

371129

Hectopat
Katılım
28 Eylül 2020
Mesajlar
3.799
Makaleler
9
Çözümler
12
Kodun uzun olduğuna bakmayın. Olay sadece şifreden ibaret. Öncelikle sorun şu, normalde yazdığıma göre 3 haktan sonra çıkış mesajı vererek döngüyü sönlendireceğim. Fakat, 3 haktan sonra tekrar döngüye giriyor. Kullanıcı adı ve şifrenizi giriniz kısmını While döngüsünün dışına alınca da hak olayı yalan oluyor. Hak kısmı en aşağıda. Ne yapmalıyım?





[CODE lang="csharp" title="Kısa"] int hak = 3;

while (true)
{
Console.Write("Lütfen kullanıcı adınızı giriniz : ");
string kadı = Console.ReadLine();
Console.Write("Lütfen şifrenizi giriniz : ");
string gşifre = Console.ReadLine();


if (kadı == "selim" && gşifre == "1234")
{
Console.Clear();
int bakiye = 1000;
int vergi = 3;
Console.WriteLine("ATM'ye hoş geldin...");
Console.WriteLine("Lütfen yapmak istediğiniz işlemi seçiniz");
Console.WriteLine("1 - Bakiye sorgula ");
Console.WriteLine("2 - Para çekme ");
Console.WriteLine("3 - Para yatırma ");
Console.WriteLine("4 - IBAN'a para yatırma");
Console.WriteLine("5 - Fatura yatırma");
Console.WriteLine("6- Şifre değiştirme");
Console.WriteLine("7 - Çıkış yapma");
string seçim = Console.ReadLine();

switch (seçim)
{
case "1":
Console.WriteLine("Bakiyeniz : " + bakiye);

break;
case "2":

Console.WriteLine("Lütfen çekmek istediğiniz giriniz ");
int çpara = int.Parse(Console.ReadLine());
int kalan1 = (bakiye - çpara) - vergi;
if (çpara > (bakiye - vergi) && çpara < bakiye)
{
Console.WriteLine("Lütfen " + vergi + " TL değerindeki vergiyi hesaba katınız");
}
else if (çpara < 1000 && çpara > 5)
{
Console.WriteLine("Çekilen vergi ücreti " + vergi + " TL");
Console.WriteLine("Kalan para : " + kalan1);
}

else if (çpara >= 1000)
{
Console.WriteLine("Mevcut bakiyeden fazla tutar çekemezsiniz");
}
else if (çpara < 5)
{

Console.WriteLine("Lütfen sadece kağıt para ile işlem yapınız.");

}
else
{
Console.WriteLine("Çekilen vergi ücreti " + vergi + " TL");
Console.WriteLine("Kalan para : " + kalan1);
}



break;
case "3":

Console.WriteLine("Lütfen yatırmak istediğiniz tutarı giriniz ");
int ypara = int.Parse(Console.ReadLine());
int toplam = bakiye + ypara;

if (ypara >= 5)
{
Console.WriteLine("Toplam tutar : " + (toplam - vergi));
Console.WriteLine("Çekilen vergi tutarı " + vergi + "TL");
}
else if (ypara < 5)
{
Console.WriteLine("Lütfen kayğıt para ile işlem yapınız.");
}
else
{
Console.WriteLine("Lütfen geçerli bir tutar giriniz");
}

break;

case "4":
Console.WriteLine("Lütfen para yatırmak istediğiniz hesabın IBAN numarasını yazınız.");
string iban = Console.ReadLine();
Console.WriteLine(iban + " Numaralı karta para yatırıyorsunuz. Emin misiniz?");
Console.WriteLine("Evet ise : 7 Hayır ise : 8");
string emin = Console.ReadLine();

switch (emin)
{
case "7":
{
Console.WriteLine(" Yatırmak istediğiniz tutarı seçiniz ");
int ytutar = int.Parse(Console.ReadLine());
int vergili = (bakiye - ytutar) - vergi;
if (ytutar > 1000)
{
Console.WriteLine("Lütfen hesabınızdaki mevcut bakiyeyi aşmayacak şekilde tutar giriniz");
}
else
{
Console.Write("Hesabınızda kalan para : " + vergili);
}
}
break;
case "8":
{
Console.WriteLine("Çıkış yapılıyor...");
}
break;

}
break;
case "5":
int yfatura = 80;
Console.WriteLine("Faturanız : " + yfatura);
Console.WriteLine("Lütfen madeni para kullanmayınız.");
Console.WriteLine("Parayı hazneye yerleştiriniz");

int yatırma = int.Parse(Console.ReadLine());
int bozukluk = yatırma - yfatura;
if (yatırma <= 80)
{
Console.WriteLine("Yatırdığınız miktar faturayı ödemeye yetmiyor");

}
else
{
Console.WriteLine("İşlem tamamlanmıştır. Lütfen para üstünü almayı unutmayınız." + bozukluk);
}
break;
case "6":
int şifre = 1111;

Console.WriteLine("Lütfen değiştirmek istediğiniz şifreyi yazınız");
int yşifre = int.Parse(Console.ReadLine());
if (yşifre < 1000)
{
Console.WriteLine("Lütfen 4 haneli bir şifre giriniz.");
}

else if (yşifre > 9999)
{
Console.WriteLine("Lütfen 4 haneli bir şifre giriniz.");
}
else
{

Console.WriteLine("Yeni şifreniz " + şifre + "'den " + yşifre + "'a değiştirilmiştir.");
}
break;
case "7":

Console.WriteLine("Çıkış yapılıyor. ATLAS Bank iyi günler diler...");

break;
default:

Console.WriteLine("Lütfen geçerli bir sayı giriniz.");
Console.WriteLine("Bu 1, 2 ,3 veya 4 sayısı olabilir.");

break;
}
}
else
{
if (hak > 0)
{
hak -= 1;
}
if (hak == 2)
{
Console.Clear();
Console.WriteLine("Kullanıcı adı veya şifreyi yanlış girdiniz.");

}
if (hak == 1)
{
Console.Clear();
Console.WriteLine("Kullanıcı adı veya şifreyi yanlış girdiniz.");
}
if (hak == 0)
{
Console.Clear();
Console.WriteLine("Hesabınız 1 saat sonra erişime açılacaktır.");
}

Console.WriteLine(hak + " hakkınız kaldı ");



}
Console.ReadLine();

}
[/CODE]
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı