Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
498
Tıklama
0
Öne Çıkarma
C Programlama Dili İle ATM Örneği
S
2 yıl
Teğmen

#include <stdio.h>
int main()
{
 int bakiye = 1000;
 int islem=1,tutar;


 printf("Bakiyeniz: %d", bakiye);
 printf("\n\n**** ISLEMLER ****\n");
 printf("1. Para Cekme\n");
 printf("2. Para Yatirma\n");
 printf("3. Para Bakiye Sorgulama\n");
 printf("4. Kart Iade\n");

 while(islem != 4) {

  printf("\n\nIsleminizi giriniz: ");
  scanf("%d", &islem);

  switch (islem) {

  case 1:

   printf("Bakiyeniz : %d\n", bakiye);
   printf("Cekmek istediginiz tutari giriniz : ");
   scanf("%d", &tutar);
   if (bakiye-tutar<0) {

    printf("Yetersiz bakiye yeni islem giriniz !!: ");
    break;
   }
    bakiye -= tutar;
    printf("Yeni Bakiyeniz : %d", bakiye);
   break;

  case 2:

   printf("Bakiyeniz : %d\n", bakiye);
   printf("Yatirmak istediginiz tutari giriniz : ");
   scanf("%d", &tutar);
   bakiye += tutar;
   printf("Yeni Bakiyeniz : %d", bakiye);
   break;

  case 3:

   printf("Bakiyeniz : %d\n", bakiye);
   break;
  }

 }
 printf("Iyi gunler...");
 return 0;

}

düzelttim, bir bakın para çekmeye bidaha

düzenleme: çekmek istediğin para hesabında yoksa o case'den çıkmalısın. yeni bir işlem talebi alınmalı. o yüzden de -'ye düşme durumunu gördüğünde case'den çıkıyorsun.





< Bu mesaj bu kişi tarafından değiştirildi scapegoat111 -- 11 Haziran 2023; 13:23:3 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @MasterYodaTR
M
2 yıl
Er
Konu Sahibi

Arkadaşlar aşağıda ATM örneği adı altında C programlama dili ile yazmış olduğum kodu paylaşıyorum. Case 2,3 ve 4 'de sorun yok.

Fakat Case 1'in program çıktısında :

Mevcut Bakiyem=1000TL yazıyor.
Çekmek istediğim tutar kısmına 1000TL yazıyorum.
Yeni Bakiyemi 0 TL olarak gösteriyor.

İlk Çıktımı Doğru veriyor. Fakat tekrardan param olmamasına rağmen,
tutar çekmek istediğim zaman - (eksi) bakiyeye iniyor.

Programın Çıktısını Resim Olarak Da paylaşıyorum. Yardımcı olur musunuz?




#include <stdio.h>
int main()
{
  int bakiye = 1000;
  int islem=1,tutar;


  printf("Bakiyeniz: %d", bakiye);
  printf("\n\n**** ISLEMLER ****\n");
  printf("1. Para Cekme\n");
  printf("2. Para Yatirma\n");
  printf("3. Para Bakiye Sorgulama\n");
  printf("4. Kart Iade\n");

  while(islem != 4) {

    printf("\n\nIsleminizi giriniz: ");
    scanf("%d", &islem);

    switch (islem) {

    case 1:

      printf("Bakiyeniz : %d\n", bakiye);
      printf("Cekmek istediginiz tutari giriniz : ");
      scanf("%d", &tutar);
      if (tutar > 1000) {

        printf("Yetersiz bakiye tekrar giriniz !!: ");
        scanf("%d", &tutar);
      }
        bakiye -= tutar;
        printf("Yeni Bakiyeniz : %d", bakiye);
      break;

    case 2:

      printf("Bakiyeniz : %d\n", bakiye);
      printf("Yatirmak istediginiz tutari giriniz : ");
      scanf("%d", &tutar);
      bakiye += tutar;
      printf("Yeni Bakiyeniz : %d", bakiye);
      break;

    case 3:

      printf("Bakiyeniz : %d\n", bakiye);
      break;
    }

  }
  printf("Iyi gunler...");
  return 0;

}



DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi MasterYodaTR -- 11 Haziran 2023; 12:6:27 >

M
2 yıl
Er
Konu Sahibi

S
2 yıl
Teğmen

if (tutar > 1000) {

        printf("Yetersiz bakiye tekrar giriniz !!: ");
        scanf("%d", &tutar);
      }

tutar değil bakiyeyi kontrol et.
adamdan tutarı al, sonra çıkarma işlemini yap. adamın bakiyesi eksiye düşüyorsa işleme izin verme.


kolay gelsin.


Bu mesaja 1 cevap geldi.
M
2 yıl
Er
Konu Sahibi

Sizin dediğiniz şekilde yapıyorum fakat olmuyor.
Ayrıca tutar yazmamda ki amaç, olmayan bir parayı çekmek istememem.
örneğin:
1000 TL'm var iken 5000TL çekimine izin vermiyorum.Kod Çalışıyor fakat,

2.Kez döngüye girdiğim zaman, 5000TL 'yi çekiyor ve eksi bakiyeye düşüyorum.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @scapegoat111
T
2 yıl
Yarbay

Ben C bilmiyorum ama Pascal ve Visual Basic biliyorum. Sizin case 1 eksik yazılmış. Diğerlerine bakmadım.

Case 1'e kontrol koşulu koymanız lazım
Para çekildikten sonra;
if bakiye = 0 then X: true veya 1 (boolean) kodunu yazıp en başa da İF NOT X THEN...
....
ELSE
PRİNTF YETERSİZ BAKİYE VS bloğuna lazım.

Case 2 ye de bakiye + ise x: 0 veya false yazmanız lazım.



M
2 yıl
Er
Konu Sahibi

Çok teşekkür ederim. Çalıştı sayenizde.




Bu mesajda bahsedilenler: @scapegoat111
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.