Xử lý nạp tiền
Thuộc phần Lập trình hướng đối tượng trong hành trình C của Coddy. Bài học 24 trên 61.
Thử thách
DễĐã đến lúc thêm thao tác ngân hàng thực tế đầu tiên vào module Account của bạn: nạp tiền! Hàm nạp tiền cần hoạt động thông minh: chỉ chấp nhận số tiền dương, giúp bảo vệ tài khoản khỏi các giao dịch không hợp lệ.
Dựa trên dự án Bank Account hiện có, bạn sẽ mở rộng module bằng chức năng nạp tiền. Hàm nạp tiền phải xác thực đầu vào trước khi sửa đổi số dư bị ẩn. Đây là tính đóng gói đang bảo vệ tính toàn vẹn của dữ liệu.
Bạn sẽ làm việc với ba tệp:
account.h: Mở rộng tệp tiêu đề hiện có bằng cách thêm nguyên mẫu hàm mới:deposit. Hàm này nhận một con trỏ Account và một lượng tiền kiểudouble, rồi trả về mộtint(1 nếu thành công, 0 nếu số tiền không hợp lệ). Giữ lại các khai báo hiện có chocreate_accountvàdestroy_account.account.c: Triển khai hàmdepositbên cạnh hàm khởi tạo và hàm hủy hiện có. Chỉ nạp tiền thành công nếu số tiền dương (lớn hơn không). Nếu hợp lệ, hãy cộng số tiền đó vào số dư bị ẩn và trả về 1. Nếu số tiền bằng không hoặc âm, hãy từ chối bằng cách trả về 0 mà không thay đổi số dư.main.c: Minh họa chức năng nạp tiền bằng cách tạo tài khoản và thực hiện nhiều thao tác nạp tiền, một số hợp lệ, một số không hợp lệ, để cho thấy phần xác thực hoạt động chính xác.
Bạn sẽ nhận ba đầu vào: ID tài khoản (một số nguyên), số tiền nạp hợp lệ (một số dương) và số tiền nạp không hợp lệ (bằng không hoặc âm).
Trong tệp chính, hãy tạo tài khoản với ID đã cho và in thông báo xác nhận. Sau đó, thử nạp số tiền không hợp lệ trước: in kết quả thành công hay thất bại và lưu ý rằng số dư sẽ không thay đổi. Tiếp theo, nạp số tiền hợp lệ và in kết quả thành công. Cuối cùng, hủy tài khoản và xác nhận đã dọn dẹp.
In đầu ra theo định dạng này:
Account 1001 created
Deposit -50.00: 0
Deposit 200.00: 1
Account destroyedTrong đó, 1001 là ID tài khoản, -50.00 là số tiền không hợp lệ và 200.00 là số tiền hợp lệ. Định dạng tất cả số tiền với hai chữ số thập phân bằng %.2f.
Hàm nạp tiền của bạn đóng vai trò như người gác cổng. Hàm đảm bảo chỉ các giao dịch hợp lệ mới có thể sửa đổi số dư bị ẩn của tài khoản. Dù bạn chưa thể xem số dư (mình sẽ thêm hàm lấy giá trị trong bài học sau), bạn có thể tin rằng các khoản nạp không hợp lệ được từ chối đúng cách.
Tự làm thử
#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;
}
Tất cả bài học trong Lập trình hướng đối tượng
1Kiến thức cơ bản về lập trình mô-đun
Tệp tiêu đềInclude guardTệp mã nguồnHàm staticÔn tập: Máy tính mô-đun4Tính đóng gói
Khái niệm con trỏ mờĐịnh nghĩa struct mờHàm truy xuất và hàm gánKiểm tra tính hợp lệ trong hàm gánÔn tập: Hộp bí mật2Đối tượng và phương thức
Struct dưới dạng đối tượngCon trỏ 'Self'Tính đúng đắn của constCon trỏ và giá trịPhương thức hỗ trợÔn tập: trình quản lý Point5Dự án: Tài khoản ngân hàng đơn giản
Thiết lập dự ánTriển khai tài khoản3Vòng đời đối tượng
Mẫu hàm khởi tạoMẫu hàm hủyKhởi tạo trên ngăn xếpSao chép sâuÔn tập: lớp bao bọc chuỗi6Kế thừa bằng cách kết hợp
Nhúng structQuy tắc thành viên đầu tiênTruy cập thành viên lớp chaUpcastingÔn tập: hệ phân cấp hình dạngTự luyện tập: Trình biên dịch C online