Logika Setoran
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 24 dari 61.
Tantangan
MudahSaatnya menambahkan operasi perbankan nyata pertama ke module Account-mu: kemampuan untuk menyetorkan dana! Fungsi deposit harus cerdas: fungsi ini hanya boleh menerima jumlah positif, sehingga akunmu terlindungi dari transaksi yang tidak valid.
Dengan melanjutkan proyek Bank Account yang sudah kamu buat, kamu akan menambahkan fungsionalitas deposit ke module tersebut. Fungsi deposit-mu harus memvalidasi input sebelum mengubah saldo tersembunyi. Inilah enkapsulasi yang melindungi integritas datamu.
Kamu akan bekerja dengan tiga file:
account.h: Perluas header yang sudah ada dengan menambahkan prototype fungsi baru:deposit. Fungsi ini harus menerima pointer Account dan jumlahdouble, lalu mengembalikanint(1 jika berhasil, 0 jika jumlahnya tidak valid). Pertahankan deklarasi yang sudah ada untukcreate_accountdandestroy_account.account.c: Implementasikan fungsidepositbersama constructor dan destructor yang sudah ada. Deposit hanya boleh berhasil jika jumlahnya positif (lebih besar dari nol). Jika valid, tambahkan jumlah tersebut ke saldo tersembunyi dan kembalikan 1. Jika jumlahnya nol atau negatif, tolak dengan mengembalikan 0 tanpa mengubah saldo.main.c: Tunjukkan fungsionalitas deposit dengan membuat akun dan melakukan beberapa operasi deposit, sebagian valid dan sebagian tidak valid, untuk menunjukkan bahwa validasimu bekerja dengan benar.
Kamu akan menerima tiga input: ID akun (bilangan bulat), jumlah deposit valid (bilangan positif), dan jumlah deposit tidak valid (nol atau negatif).
Di file utamamu, buat akun dengan ID yang diberikan dan cetak konfirmasi. Lalu coba setorkan jumlah yang tidak valid terlebih dahulu: cetak apakah operasi berhasil dan catat bahwa saldo seharusnya tidak berubah. Berikutnya, setorkan jumlah yang valid: cetak hasil keberhasilannya. Terakhir, hancurkan akun dan konfirmasikan pembersihannya.
Cetak output dengan format ini:
Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyedDi sini, 1001 adalah ID akun, -50.00 adalah jumlah yang tidak valid, dan 200.00 adalah jumlah yang valid. Format semua jumlah dengan dua angka desimal menggunakan %.2f.
Fungsi deposit-mu bertindak sebagai penjaga gerbang. Fungsi ini memastikan hanya transaksi yang valid yang dapat mengubah saldo tersembunyi akun. Meskipun kamu belum bisa melihat saldo tersebut (kita akan menambahkan getter di pelajaran berikutnya), kamu bisa yakin bahwa deposit yang tidak valid ditolak dengan benar.
Coba sendiri
#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;
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar Pemrograman Modular
file headerProteksi includefile sumberFungsi StatisRingkasan: Kalkulator Modular4Enkapsulasi
Konsep Opaque PointerMendefinisikan Opaque StructGetter dan SetterValidasi pada SetterUlasan: Kotak Rahasia2Object dan method
Struct sebagai objectPointer 'self'Konsistensi constPointer vs nilaiMethod pembantuRangkuman: Pengelola Point5Proyek: Akun Bank Sederhana
Penyiapan ProyekImplementasi Akun3Siklus Hidup object
Pola KonstruktorPola DestruktorInisialisasi StackSalinan MendalamRangkuman: Pembungkus string6Pewarisan melalui Komposisi
Penyematan StructAturan Anggota PertamaMengakses Anggota ParentUpcastingRekap: Hierarki Bentuk9Proyek: Penggambar Bentuk
Ringkasan ProyekImplementasi LingkaranImplementasi Persegi PanjangPenggunaan PolimorfismeWadah BentukLatihan sendiri: Compiler C online