Para Yatırma Mantığı
Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 24 / 61.
Görev
KolayHesap 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 birdoubletutar almalı, birintdöndürmelidir (başarı için 1, tutar geçersizse 0).create_accountvedestroy_accountiçin mevcut bildirimlerinizi koruyun.account.c: Mevcut kurucu (constructor) ve yıkıcı (destructor) fonksiyonlarınızın yanındadepositfonksiyonunu 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 destroyedBurada 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
1Modüler Programlama Temelleri
Başlık DosyalarıInclude Guard'larKaynak DosyalarıStatik FonksiyonlarÖzet: Modüler Hesap Makinesi4Kapsülleme
Opaque Pointer KavramıOpaque Struct TanımlamaGetter ve Setter MetotlarıSetter Metotlarında DoğrulamaÖzet: Gizli Kutu2Nesneler ve Metotlar
Nesne Olarak Struct'lar'Self' İşaretçisiConst Doğruluğuİşaretçi vs DeğerYardımcı MetotlarÖzet: Point Manager5Proje: Basit Banka Hesabı
Proje KurulumuHesabın Oluşturulması3Nesne Yaşam Döngüsü
Constructor DeseniDestructor DeseniStack İlklendirmeDerin KopyalamaÖzet: String Wrapper6Kompozisyon Yoluyla Kalıtım
Struct Gömmeİlk Üye KuralıÜst Üyelere ErişimUpcastingÖzet: Şekil Hiyerarşisi