Đến với C++ hướng đối tượng, bài hướng dẫn hôm nay là tính tiền khách hàng và in biên lai ra. Vậy nên, chúng ta sẽ có hai class. Một là khách hàng, hai là biên lai.
Nói đến tính tiền khách hàng và in biên lai thì quá rộng, để dễ hình dung hơn thì ở đây mình sẽ hướng đến tính tiền điện trong nhà nha.
Như hình dưới đây, mình đã tạo ra hai class với 4 file (.cpp, .h).
Bây giờ, chúng ta sẽ bắt tay vào viết cho class Khách hàng trước nha.
Ví dụ: trên giấy điện có Họ tên khách hàng, số nhà, mã công tơ, lượng điện năng tiêu thụ và đơn giá điện.
Mình đã khai báo biến lần lượt hết những gì có trong yêu cầu, đặt kiểu string cho tên, số nhà, mã công tơ và kiểu int cho điện tiêu thụ và đơn giá.
Sau khi tạo ra các biến và để chế độ private, điều chúng ta cần, là một hàm để nhập và xuất ra những gì đã nhập cùng tính tiền điện từ chỉ số đã nhập, vậy nên chúng ta sẽ có hàm nhập, hàm xuất, hàm tính tiền.
Hàm nhập cũng không có gì phức tạp nhưng cũng cần lưu ý vài điều. Vì bắt đầu với “Ho ten” rồi chúng ta sử dụng kiểu string nên nó sẽ bị trôi câu lệnh nhảy hẳn qua “So nha”, nên ở đây chúng ta buộc phải sử dụng cin.ignore(1) để xử lý hiện trạng này, để có thể nhập họ tên.
À, bạn có để ý dòng getline(cin,…) không? Với kiểu string thì để nhập chúng ta sẽ phải sử dụng getline, còn với kiểu int thì dùng cin như thường.
Và để sử dụng getline, chúng ta phải khai báo thêm thư viện này.
Xong hàm nhập thì tiếp tục với hàm xuất. Chỗ này mình để cho bạn dễ nhìn còn ai muốn xuất với kiểu trang trí khác thì hãy phát huy ngay sự sáng tạo của bản thân nhé!
Xuất cả số tiền phải trả, chính là hàm tính tiền. Lướt nhẹ xuống nhìn hình nha mọi người. ^^
Cách tính tiền điện: Tiền điện = Lượng điện năng tiêu thụ x đơn giá điện/kWh.
Vì liên quan đến tính toán nên mình dùng ngay kiểu double cho hàm, nếu sau này bạn gặp kiểu tính toán liên quan đến số thập phân thì nên dùng kiểu float cho phù hợp.
Đến đây thì xong phần cho khách hàng, phần còn lại là in biên lai.
Lưu ý nhớ khai báo thêm “KhachHang.h”, vì lát nữa chúng ta sẽ phải dùng đến hàm tính tiền bên class Khách hàng.
Chỗ này mình mặc định cho KH[5o] là một mảng với 50 phần tử, ai muốn thông thoáng hơn thì để 100 cũng được. Và sau này linh hoạt hơn thì không sử dụng ép mặc định như thế này.
Hàm nhập xuất ở xác định là sẽ in bao nhiêu biên lai cho bao nhiêu khách hàng nên ở phần private trên mình đã khai báo biến số lượng khách hàng luôn cho tiện.
Hàm .nhap ở đó là hàm nhập của bên khách hàng đó mọi người, dùng vòng for dựa vào số lượng bao nhiêu người sẽ xuất ra phần nhập thông tin cho bấy nhiêu người.
Tương đương với hàm nhập, ở hàm xuất mình cũng dùng vòng for để xuất ra đúng số người đã nhập.
Với hàm tính tiền cũng vậy, ở đây sẽ trả về số tiền điện đã tính cho từng khách hàng.
Sau khi đã xong khách hàng lẫn biên lai, mình đã tạo thêm một class để quản lý hai đối tượng này. Đó chính là hóa đơn tiền điện,
Sau đây hãy cùng test với mình để xem chương trình có hoạt động như dự định không nha!
Đầu tiên phải khai báo cả hai class “KhachHang.h” và “BienLai.h”
Mình sẽ viết void main bớt đi một dòng return, không trả giá trị về.
Với số lượng khách hàng ta đã nhập là 2, thì khung nhập dữ liệu cũng là 2, và xuất ra danh sách với 2 khách hàng đã nhập.
Hi vọng bài viết này sẽ giúp được chút ít cho mọi người, cảm ơn mọi người đã theo dõi đến đây. Chúc mọi người sẽ thực hiện được bài làm như mong muốn.
Huyền Nguyễn
PLT SOLUTIONS