You are on page 1of 6

Cửa hàng bán lẻ cần tin học hóa việc bán hàng và quản lý khách hàng.

- Hàng hóa có các thông tin sau: mã sản phẩm, tên sản phẩm, xuất xứ, số lượng
tồn kho, dơn giá nhập, đơn giá bán.
- Khác hàng có các thông tin sau: mã khách hàng, tên khách hàng, sô điện thoại
- Đơn hàng có các thông tin sau: mã đơn hàng, khách hàng, ngày mua, danh
sách sản phẩm và số lượng mua.
Câu 1. Xây dựng class SanPham, KhacHang chứa các phương thức: get, set,
constructor, input, output.
Câu 2. Xây dựng class DonHang chứa các phương thức thêm đơn hàng
Câu 3. Tìm khách hàng mua sản phẩm với đơn hàng có giá cao nhất trong khoảng
thời gian từ beginDate đến endDate.
Câu 4. Tìm khách hàng mua nhiều sản phẩm nhất trong khoảng thời gian từ
beginDate đến endDate.
Câu 5. Tìm khách hàng mua nhiều sản phẩm với nhiều đơn hàng nhất trong năm.
Câu 6. Viết hàm tìm sản phẩm bán được với số lượng nhiều nhất trong năm.
Câu 7. Viết hàm tìm sản phẩm bán được với số lượng ít nhất trong năm.
Câu 8. Viết hàm tìm sản phẩm bán được với lợi nhuận cao nhất trong năm.
Câu 9. Viết hàm tìm sản phẩm bán được với lợi nhuận thấp nhất trong năm.

Câu 1
public class SanPham {
private String maSanPham;
private String tenSanPham;
private String xuatXu;
private int soLuongTonKho;
private double donGiaNhap;
private double donGiaBan;

public SanPham() {
this.maSanPham = "";
this.tenSanPham = "";
this.xuatXu = "";
this.soLuongTonKho = 0;
this.donGiaNhap = 0;
this.donGiaBan = 0;
}

public SanPham(String maSanPham, String tenSanPham, String xuatXu, int


soLuongTonKho, double donGiaNhap, double donGiaBan) {
this.maSanPham = maSanPham;
this.tenSanPham = tenSanPham;
this.xuatXu = xuatXu;
this.soLuongTonKho = soLuongTonKho;
this.donGiaNhap = donGiaNhap;
this.donGiaBan = donGiaBan;
}

public String getMaSanPham() {


return maSanPham;
}

public void setMaSanPham(String maSanPham) {


this.maSanPham = maSanPham;
}

public String getTenSanPham() {


return tenSanPham;
}
public void setTenSanPham(String tenSanPham) {
this.tenSanPham = tenSanPham;
}

public String getXuatXu() {


return xuatXu;
}

public void setXuatXu(String xuatXu) {


this.xuatXu = xuatXu;
}

public int getSoLuongTonKho() {


return soLuongTonKho;
}

public void setSoLuongTonKho(int soLuongTonKho) {


this.soLuongTonKho = soLuongTonKho;
}

public double getDonGiaNhap() {


return donGiaNhap;
}

public void setDonGiaNhap(double donGiaNhap) {


this.donGiaNhap = donGiaNhap;
}

public double getDonGiaBan() {


return donGiaBan;
}

public void setDonGiaBan(double donGiaBan) {


this.donGiaBan = donGiaBan;
}

public void input() {


Scanner scanner = new Scanner(System.in);
System.out.print("Nhập mã sản phẩm: ");
this.maSanPham = scanner.nextLine();
System.out.print("Nhập tên sản phẩm: ");
this.tenSanPham = scanner.nextLine();
System.out.print("Nhập xuất xứ: ");
this.xuatXu = scanner.nextLine();
System.out.print("Nhập số lượng tồn kho: ");
this.soLuongTonKho = scanner.nextInt();
System.out.print("Nhập đơn giá nhập: ");
this.donGiaNhap = scanner.nextDouble();
System.out.print("Nhập đơn giá bán: ");
this.donGiaBan = scanner.nextDouble();
}
Class KhachHang:

public class KhachHang {


private String maKhachHang;
private String tenKhachHang;
private String soDienThoai;

public KhachHang() {
this.maKhachHang = "";
this.tenKhachHang = "";
this.soDienThoai = "";
}

public KhachHang(String maKhachHang, String tenKhachHang, String soDienThoai) {


this.maKhachHang = maKhachHang;
this.tenKhachHang = tenKhachHang;
this.soDienThoai = soDienThoai;
}

public String getMaKhachHang() {


return maKhachHang;
}

public void setMaKhachHang(String maKhachHang) {


this.maKhachHang = maKhachHang;
}

public String getTenKhachHang() {


return tenKhachHang;
}

public void setTenKhachHang(String tenKhachHang) {


this.tenKhachHang = tenKhachHang;
}

public String getSoDienThoai() {


return soDienThoai;
}

public void setSoDienThoai(String soDienThoai) {


this.soDienThoai = soDienThoai;
}

public void input() {


Scanner scanner = new Scanner(System.in);
System.out.print("Nhập mã khách hàng: ");
this.maKhachHang = scanner.nextLine();
System.out.print("Nhập tên khách hàng: ");
this.tenKhachHang = scanner.nextLine();
System.out.print("Nhập số điện thoại: ");
this.soDienThoai = scanner.nextLine();
}

public void output() {


System.out.println("Mã khách hàng: " + this.maKhachHang);
System.out.println("Tên khách hàng: " + this.tenKhachHang);
System.out.println("Số điện thoại: " + this.soDienThoai);
}
}

Câu 2:
public class DonHang {
private String maDonHang;
private KhachHang khachHang;
private Date ngayMua;
private List<SanPham> danhSachSanPham;
public DonHang() {
this.maDonHang = "";
this.khachHang = new KhachHang();
this.ngayMua = new Date();
this.danhSachSanPham = new ArrayList<>();
}

public DonHang(String maDonHang, KhachHang khachHang, Date ngayMua,


List<SanPham> danhSachSanPham) {
this.maDonHang = maDonHang;
this.khachHang = khachHang;
this.ngayMua = ngayMua;
this.danhSachSanPham = danhSachSanPham;
}

public String getMaDonHang() {


return maDonHang;
}

public void setMaDonHang(String maDonHang) {


this.maDonHang = maDonHang;
}

public KhachHang getKhachHang() {


return khachHang;
}

public void setKhachHang(KhachHang khachHang) {


this.khachHang = khachHang;
}

public Date getNgayMua() {


return ngayMua;
}

public void setNgayMua(Date ngayMua) {


this.ngayMua = ngayMua;
}

public List<SanPham> getDanhSachSanPham() {


return danhSachSanPham;
}

public void setDanhSachSanPham(List<SanPham> danhSachSanPham) {


this.danhSachSanPham = danhSachSanPham;
}

public void themSanPham(SanPham sanPham, int soLuong) {


if (sanPham == null || soLuong <= 0) {
return;
}
for (SanPham sp : danhSachSanPham) {
if (sp.getMaSanPham().equals(sanPham.getMaSanPham())) {
sp.setSoLuongTonKho(sp.getSoLuongTonKho() - soLuong);
return;
}
}
SanPham spMoi = new SanPham(sanPham.getMaSanPham(),
sanPham.getTenSanPham(),
sanPham.getXuatXu(), sanPham.getSoLuongTonKho() - soLuong,
sanPham.getDonGiaNhap(), sanPham.getDonGiaBan());
danhSachSanPham.add(spMoi);
}

public void input() {


Scanner scanner = new Scanner(System.in);
System.out.print("Nhập mã đơn hàng: ");
this.maDonHang = scanner.nextLine();
System.out.println("Nhập thông tin khách hàng: ");
this.khachHang.input();
System.out.print("Nhập ngày mua: ");
this.ngayMua = new Date(scanner.nextLine());
System.out.println("Nhập danh sách sản phẩm: ");
while (true) {
System.out.print("Nhập mã sản phẩm (nhập 'q' để kết thúc): ");
String maSanPham = scanner.nextLine();
if (maSanPham.equals("q"))
break;
}
SanPham sanPham = null;
for (SanPham sp : CuaHang.danhSachSanPham) {
if (sp.getMaSanPham().equals(maSanPham)) {
sanPham = sp;
break;
}
}
if (sanPham == null) {
System.out.println("Không tìm thấy sản phẩm với mã sản phẩm là " +
maSanPham);
continue;
}
System.out.print("Nhập số lượng mua: ");
int soLuong = Integer.parseInt(scanner.nextLine());
this.themSanPham(sanPham, soLuong);
System.out.println("Thêm sản phẩm vào đơn hàng thành công!");
}
}

public void output() {


System.out.println("Mã đơn hàng: " + this.maDonHang);
System.out.println("Thông tin khách hàng:");
this.khachHang.output();
System.out.println("Ngày mua: " + this.ngayMua.toString());
System.out.println("Danh sách sản phẩm:");
for (SanPham sp : danhSachSanPham) {
System.out.println("Mã sản phẩm: " + sp.getMaSanPham());
System.out.println("Tên sản phẩm: " + sp.getTenSanPham());
System.out.println("Xuất xứ: " + sp.getXuatXu());
System.out.println("Số lượng mua: " + (sp.getSoLuongTonKho() +
danhSachSanPham.size()));
System.out.println("Đơn giá bán: " + sp.getDonGiaBan());
System.out.println("Thành tiền: " + (sp.getSoLuongTonKho() +
danhSachSanPham.size()) * sp.getDonGiaBan());
}
}

Câu 3
public static KhachHang timKhachHangMuaNhieuNhat(Date beginDate, Date
endDate) {
DonHang maxDonHang = null;
double maxValue = 0;
for (DonHang dh : CuaHang.danhSachDonHang) {
if (dh.getNgayMua().compareTo(beginDate) >= 0 &&
dh.getNgayMua().compareTo(endDate) <= 0) {
double sum = 0;
for (SanPham sp : dh.getDanhSachSanPham()) {
sum += sp.getDonGiaBan() * sp.getSoLuongTonKho();
}
if (sum > maxValue) {
maxValue = sum;
maxDonHang = dh;
}
}
}
if (maxDonHang == null) {
return null;
}
return maxDonHang.getKhachHang();
}

You might also like