Proje Finali: Ana Döngü
Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 27 / 61.
Görev
KolayTebrikler: eksiksiz bir Banka Hesabı kütüphanesi oluşturdun! Şimdi rolleri değiştirme zamanı. Kütüphaneyi oluşturan kişi olmak yerine, kütüphane kullanıcısı olacaksın. Görevin, Account modülünü kapsamlı biçimde test eden bir ana program yazmak.
Bunu, bir müşterinin bankaya girip bir dizi işlem gerçekleştirmesi gibi düşün. Bir hesap oluşturacak, para yatırıp çekecek, bu süreçte bakiyeyi kontrol edecek ve işin bittiğinde hesabı kapatacaksın.
Üç dosyayla çalışacaksın:
account.h: OpakAccounttürünü ve tüm işlev prototiplerini içeren eksiksiz başlık dosyan:create_account,destroy_account,deposit,withdrawveget_balance.account.c:idvebalanceiçeren gizli yapının yanı sıra bu proje boyunca oluşturduğun tüm işlev uygulamalarını içeren eksiksiz uygulama dosyan.main.c: İşte kendini göstereceğin yer! Gerçekçi bir işlem dizisiyle banka hesabının tüm yaşam döngüsünü gösteren bir program yaz.
Beş girdi alacaksın: hesap kimliği (bir tamsayı), ilk para yatırma, para çekme, ikinci para yatırma ve gerçekleştirilmeye çalışılan kredili çekim (yetersiz bakiye nedeniyle başarısız olması gereken bir para çekme işlemi).
Ana programın bu hesabın yaşam öyküsünü anlatmalı:
- Hesabı oluştur ve bunu duyur
- Başlangıç bakiyesini göster
- İlk para yatırma işlemini yap ve yeni bakiyeyi göster
- Bir miktar para çek ve güncellenmiş bakiyeyi göster
- Bir para yatırma işlemi daha yap ve bakiyeyi göster
- Bakiyeyi aşan bir para çekme işlemi gerçekleştirilmeye çalış. Bu işlem başarısız olmalı
- Son bakiyeyi göster (başarısız para çekme işleminden sonra değişmemiş olarak)
- Hesabı kapat
Çıktıyı şu biçimde yazdır:
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 kimliğidir ve tutarlar girdilerini yansıtır. Tüm parasal değerleri %.2f kullanarak iki ondalık basamakla biçimlendir. Başarısız para çekme mesajı, withdraw 0 döndürdüğünde yazdırılmalıdır.
Bu final, kapsülleme hakkında öğrendiğin her şeyi gösterir. Ana programın Account ile yalnızca genel arayüzü üzerinden etkileşime girer; gizli iç verilere doğrudan hiçbir zaman dokunmaz.
Kendin dene
#include <stdio.h>
#include "account.h"
int main() {
// TODO: account_id, deposit1, withdraw_amount, deposit2 ve overdraft değerlerini girdiden oku
// TODO: Hesabı oluştur ve "Account <id> created" yazdır
// TODO: Başlangıç bakiyesini yazdır
// TODO: İlk yatırımı yap, "Deposited <amount>" ve yeni bakiyeyi yazdır
// TODO: Para çek, "Withdrew <amount>" ve güncellenmiş bakiyeyi yazdır
// TODO: İkinci yatırımı yap, "Deposited <amount>" ve yeni bakiyeyi yazdır
// TODO: Attempt the overdraft withdrawal; if it fails, print "Withdrawal failed: insufficient funds"
// TODO: Son bakiyeyi yazdır
// TODO: "Account <id> closed" yazdır ve hesabı yok et
return 0;
}
Nesne Yönelimli Programlama 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şisiKendi başına pratik yap: Online C derleyicisi