Proje Finali: Ana Döngü
Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 27 / 61.
Görev
KolayTebrikler—eksiksiz bir Banka Hesabı kütüphanesi oluşturdunuz! Şimdi rolleri değiştirme zamanı. Kütüphane oluşturucusu olmak yerine, kütüphane kullanıcısı olacaksınız. Göreviniz, Account modülünüzü test edecek bir ana program yazmaktır.
Bunu, bir bankaya giren ve bir dizi işlem gerçekleştiren bir müşteri gibi düşünün. Bir hesap oluşturacak, para yatırma ve çekme işlemleri yapacak, yol boyunca bakiyeyi kontrol edecek ve işiniz bittiğinde hesabı kapatacaksınız.
Üç dosya ile çalışacaksınız:
account.h: OpakAccounttürünü ve tüm fonksiyon prototiplerini içeren eksiksiz başlık dosyanız:create_account,destroy_account,deposit,withdrawveget_balance.account.c:idvebalanceiçeren gizli struct yapısı ile bu proje boyunca oluşturduğunuz tüm fonksiyon uygulamalarını içeren eksiksiz uygulama dosyanız.main.c: İşte burada parlayacaksınız! Gerçekçi bir işlem dizisi aracılığıyla bir banka hesabının tüm yaşam döngüsünü gösteren bir program yazın.
Beş girdi alacaksınız: hesap ID'si (bir tam sayı), ilk para yatırma, bir para çekme, ikinci para yatırma ve bir yetersiz bakiye denemesi (yetersiz bakiye nedeniyle başarısız olması gereken bir para çekme işlemi).
Ana programınız bu hesabın öyküsünü anlatmalıdır:
- Hesabı oluşturun ve bunu duyurun
- Başlangıç bakiyesini gösterin
- İlk para yatırma işlemini yapın ve yeni bakiyeyi gösterin
- Bir miktar para çekin ve güncellenmiş bakiyeyi gösterin
- Başka bir para yatırma işlemi yapın ve bakiyeyi gösterin
- Bakiyeyi aşan bir para çekme işlemi deneyin—bu başarısız olmalıdır
- Son bakiyeyi gösterin (başarısız para çekme işleminden sonra değişmemiş olmalıdır)
- Hesabı kapatın
Çıktıyı şu formatta yazdırın:
Account 2001 created
Balance: 0.00
Deposited 1000.00
Balance: 1000.00
Withdrew 250.00
Balance: 750.00
Deposited 500.00
Balance: 1250.00
Withdrawal failed: insufficient funds
Balance: 1250.00
Account 2001 closedBurada 2001 hesap ID'sidir ve tutarlar girdilerinizi yansıtır. Tüm parasal değerleri %.2f kullanarak iki ondalık basamakla formatlayın. Başarısız para çekme mesajı, withdraw fonksiyonu 0 döndürdüğünde yazdırılmalıdır.
Bu final, kapsülleme (encapsulation) hakkında öğrendiğiniz her şeyi gösterir—ana programınız Account ile tamamen genel arayüzü üzerinden etkileşime girer, gizli dahili verilere asla doğrudan dokunmaz.
Kendin dene
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Girdiden account_id, deposit1, withdraw_amount, deposit2 ve overdraft değerlerini oku
// TODO: Hesabı oluştur ve "Account <id> created" yazdır
// TODO: Başlangıç bakiyesini yazdır
// TODO: İlk para yatırma işlemini yap, "Deposited <amount>" ve yeni bakiyeyi yazdır
// TODO: Para çek, "Withdrew <amount>" ve güncellenmiş bakiyeyi yazdır
// TODO: İkinci para yatırma işlemini yap, "Deposited <amount>" ve yeni bakiyeyi yazdır
// TODO: Overdraft para çekme işlemini dene; başarısız olursa "Withdrawal failed: insufficient funds" yazdır
// TODO: Son bakiyeyi yazdır
// TODO: "Account <id> closed" yazdır ve hesabı yok et
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