You are on page 1of 4

public class KhachHang {

private String soCMND;


private String ten;
private String gaDen;
private double giaTien;

public KhachHang(String cmnd, String ten, String gaDen, double giaTien) {


this.soCMND = cmnd;
this.ten = ten;
this.gaDen = gaDen;
this.giaTien = giaTien;
}

// các getter và setter


}

public class DanhSachKhachHang {


private ArrayList<KhachHang> danhSachKhachHang;

public DanhSachKhachHang() {
danhSachKhachHang = new ArrayList<>();
}

public void themKhachHang(KhachHang khachHang) {


// kiểm tra xem khách hàng đã tồn tại trong danh sách hay chưa
for (KhachHang kh : danhSachKhachHang) {
if (kh.getSoCMND().equals(khachHang.getSoCMND())) {
System.out.println("Khách hàng đã tồn tại trong hệ thống.");
// nếu có thì chỉ cập nhật lại thông tin của khách hàng
kh.setGaDen(khachHang.getGaDen());
kh.setGiaTien(khachHang.getGiaTien());
return;
}
}

// nếu không có thì thêm vào danh sách


danhSachKhachHang.add(khachHang);
}

public void xoaKhachHang(KhachHang khachHang) {


danhSachKhachHang.remove(khachHang);
}

public int soKhachHangChoMuaVe() {


int dem = 0;
for (KhachHang kh : danhSachKhachHang) {
if (kh.getGaDen() != null) {
dem++;
}
}
return dem;
}
public int soKhachHangDaMuaVe() {
return danhSachKhachHang.size() - soKhachHangChoMuaVe();
}

public double tongTienDaThuVe() {


double tong = 0.0;
for (KhachHang kh : danhSachKhachHang) {
if (kh.getGaDen() == null) {
tong += kh.getGiaTien();
}
}
return tong;
}

// các phương thức khác


}

public class Vetau {


private String loai;
private double gia;
private int soLuong;

public Vetau(String loai, double gia, int soLuong) {


this.loai = loai;
this.gia = gia;
this.soLuong = soLuong;
}

// các getter và setter


}

public class GaDen {


private String ten;
private ArrayList<KhachHang> danhSachKhachHangChoMuaVe;

public GaDen(String ten) {


this.ten = ten;
this.danhSachKhachHangChoMuaVe = new ArrayList<>();
}

public String getTen() {


return ten;
}

public void themKhachHang(KhachHang kh) {


danhSachKhachHangChoMuaVe.add(kh);
}

public void xoaKhachHang(KhachHang kh) {


danhSachKhachHangChoMuaVe.remove(kh);
}
public int soLuongVeConLai(Vetau veTau) {
int dem = 0;
for (KhachHang kh : danhSachKhachHangChoMuaVe) {
if (kh.getGaDen().equals(ten)) {
dem++;
}
}
return veTau.getSoLuong() - dem;
}

// các phương thức khác


}

public class QuanLyGa {


private DanhSachKhachHang danhSachKhachHang;
private ArrayList<GaDen> danhSachGaDen;

public QuanLyGa() {
danhSachKhachHang = new DanhSachKhachHang();
danhSachGaDen = new ArrayList<>();
}

public void themKhachHangChoMuaVe(KhachHang kh) {


danhSachKhachHang.themKhachHang(kh);
if (kh.getGaDen() != null) {
themKhachHangChoMuaVeVaoGa(kh);
}
}

private void themKhachHangChoMuaVeVaoGa(KhachHang kh) {


for (GaDen ga : danhSachGaDen) {
if (ga.getTen().equals(kh.getGaDen())) {
ga.themKhachHang(kh);
break;
}
}
}

public void banVeChoKhachHang(KhachHang kh) {


danhSachKhachHang.xoaKhachHang(kh);
xoaKhachHangDaMuaVeKhoiGa(kh);
}

private void xoaKhachHangDaMuaVeKhoiGa(KhachHang kh) {


for (GaDen ga : danhSachGaDen) {
if (ga.getTen().equals(kh.getGaDen())) {
ga.xoaKhachHang(kh);
break;
}
}
}
public void huyKhachHangChoMuaVe(KhachHang kh) {
danhSachKhachHang.xoaKhachHang(kh);
xoaKhachHangRaKhoiGaDen(kh);
}

private void xoaKhachHangRaKhoiGaDen(KhachHang kh) {


for (GaDen ga : danhSachGaDen) {
if (ga.getTen().equals(kh.getGaDen())) {
ga.xoaKhachHang(kh);
break;
}
}
}

public void thongKeTinhHinhBanVe() {


int soKhachHangChoMuaVe = danhSachKhachHang.soKhachHangChoMuaVe();
int soKhachHangDaMuaVe = danhSachKhachHang.soKhachHangDaMuaVe();
double tongTienThuVe = danhSachKhachHang.tongTienDaThuVe();

System.out.println("Số khách hàng đang chờ mua vé: " +


soKhachHangChoMuaVe);
System.out.println("Số khách hàng đã mua vé: " + soKhachHangDaMuaVe);
System.out.println("Tổng số tiền thu về: " + tongTienThuVe);
}

public void luuDanhSachVaoFile() {


// lưu danh sách khách hàng chờ mua vé vào file
}

public void hienThiDanhSachCacGaDen() {


for (GaDen ga : danhSachGaDen) {
System.out.println(ga.getTen());
}
}

public void hienThiDanhSachCacGaDenVaSoVeTuongUng() {


for (GaDen ga : danhSachGaDen) {
System.out.println(ga.getTen() + ": " + ga.soLuongVeConLai());
}
}

// các phương thức khác


}

You might also like