Lớp ThanhToan
class ThanhToan{
private:
float tongSoTien;
public:
ThanhToan(float soTien){
tongSoTien = soTien;
}
float getAmount(){return tongSoTien;}
};
Lớp MoTaMathang
#include <string.h>
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;
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 cả các lớp khác của hệ thống HBH.