Danh sách số lớp định nghĩa C++ Danh sách số lớp định nghĩa C++ Bởi: Đoàn Văn Ban Lớp ThanhToan class ThanhToan{ private: float tongSoTien; public: ThanhToan(float soTien){ tongSoTien = soTien; } float getAmount(){return tongSoTien;} }; Lớp MoTaMathang #include public class MoTaMatHang{ private: int upc = 0; float giaBan = 0.0; String moTa = ""; public: MoTaMatHang(int ma, float p, String mt){ upc = ma; giaBan = p; strcpy(moTa, mt); } MoTaMatHang(int ma, float p, String mt){ upc = 0; giaBan = 0; strcpy(moTa, ""); } int getUPC(){return upc;} float getPrice(){return giaBan;} String getDescrip(){return moTa;} }; Lớp DanhMucMatHang #define N 100 public class DanhMucMatHang{ private: MoTaMatHang danhSachMH[N]; public: DanhMucMatHang(){ for(inh k = 0; k < N; k++) danhSachMH[k] = new MoTaMatHang(); } MoTaMatHang find(int upc){ for(k = 0; k < N; k++) if (danhSachMH[k].getUPC() == upc) return danhSachMH[k]; } }; Lớp DongBanHang class DongBanHang{ private: int soLuong; MoTaMatHang moTa; public: DongBanHang(MoTaMatHang mt, int n){ moTa = mt; 1/2 Danh sách số lớp định nghĩa C++ soLuong = n; } float subtotal(){ return soLuong * moTa.getPrice(); } }; Lớp PhienBanHang #define M 20 class PhienBanHang{ private: DongBanHang danhSachBan[M]; Date ngayBan;// Kiểu ngày/tháng/năm Time gioBan;// Kiểu giờ/phút/giây int soDong = 0; int isComplete = 0;// false ThanhToan traTien; public: getBalance(){ return traTien.getAmount() - total(); } void becomeComplete(){isComplete = 1;} int isComplete() {return isComplete;} void makeLineItem(MoTaMatHang mt, int sl){ lineItem[soDong++]= new DongBanHang(mt, sl); } float total(){ float t = 0.; for (int k = 0; k < soDong; k++) t += lineItem[k].subtotal(); return t; } void makePayment(float soTien){ traTien = new ThanhToan(soTien); } }; Lớp HBH class HBH{ private: DanhMucMatHang catalog; PhienBanHang banHang; public: HBH(DanhMucMatHang danhMuc){ catalog = danhMuc;} void endSale(){ banHang.becomeComplete();} void enterItems(int upc, int soLuong){ if (isNewSale(){ banHang = new PhienBanHang(); } MoTaMatHang mt = catalog.find(upc); banHang.makeLineItem(mt, soLuong); } void makePayment(soTien){ banHang.makePayment(soTien)} int isNewSale(){ return (banHang == null) || (banHang.isComplete()); } }; Lớp CuaHang class CuaHang{ private: DanhMucMatHang dm = new DanhMucMatHang(); HBH post = new HBH(dm); public: HBH getPOST() {return post;} }; Tương tự, dễ dàng định nghĩa cho tất lớp khác hệ thống HBH 2/2