Menu
Coddy logo textTech

Para Yatırma Mantığı

Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 24 / 61.

challenge icon

Görev

Kolay

Hesap modülünüze ilk gerçek bankacılık işlemini ekleme zamanı geldi: para yatırma özelliği! Bir para yatırma fonksiyonunun akıllı olması gerekir: yalnızca pozitif tutarları kabul etmeli ve hesabınızı geçersiz işlemlerden korumalıdır.

Mevcut Banka Hesabı projeniz üzerine inşa ederek, modülü para yatırma işleviyle genişleteceksiniz. Para yatırma fonksiyonunuz, gizli bakiyeyi değiştirmeden önce girişi doğrulamalıdır; bu, verilerinizin bütünlüğünü korumak için çalışan kapsülleme (encapsulation) ilkesidir.

Üç dosya üzerinde çalışacaksınız:

  • account.h: Mevcut başlık dosyanızı yeni bir fonksiyon prototipi ekleyerek genişletin: deposit. Bu fonksiyon bir Account işaretçisi ve bir double tutar almalı, bir int döndürmelidir (başarı için 1, tutar geçersizse 0). create_account ve destroy_account için mevcut bildirimlerinizi koruyun.
  • account.c: Mevcut kurucu (constructor) ve yıkıcı (destructor) fonksiyonlarınızın yanında deposit fonksiyonunu uygulayın. Para yatırma işlemi yalnızca tutar pozitifse (sıfırdan büyükse) başarılı olmalıdır. Geçerliyse, tutarı gizli bakiyeye ekleyin ve 1 döndürün. Tutar sıfır veya negatifse, bakiyeyi değiştirmeden 0 döndürerek işlemi reddedin.
  • main.c: Bir hesap oluşturarak ve doğrulamanızın doğru çalıştığını göstermek için bazıları geçerli, bazıları geçersiz birden fazla para yatırma işlemi gerçekleştirerek para yatırma işlevinizi gösterin.

Üç girdi alacaksınız: hesap ID'si (bir tam sayı), geçerli bir para yatırma tutarı (pozitif bir sayı) ve geçersiz bir para yatırma tutarı (sıfır veya negatif).

Ana dosyanızda, verilen ID ile bir hesap oluşturun ve bir onay mesajı yazdırın. Ardından önce geçersiz tutarı yatırmayı deneyin; başarılı olup olmadığını yazdırın ve bakiyenin değişmeden kalması gerektiğini unutmayın. Sonra, geçerli tutarı yatırın; başarı sonucunu yazdırın. Son olarak, hesabı yok edin ve temizliği onaylayın.

Çıktıyı şu formatta yazdırın:

Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyed

Burada 1001 hesap ID'si, -50.00 geçersiz tutar ve 200.00 geçerli tutardır. Tüm tutarları %.2f kullanarak iki ondalık basamakla formatlayın.

Para yatırma fonksiyonunuz bir bekçi görevi görür; yalnızca geçerli işlemlerin hesabın gizli bakiyesini değiştirebilmesini sağlar. Bakiyeyi henüz göremeseniz bile (sonraki bir derste bir "getter" ekleyeceğiz), geçersiz para yatırma işlemlerinin düzgün bir şekilde reddedildiğine güvenebilirsiniz.

Kendin dene

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Object Oriented Programming bölümündeki tüm dersler