bài tập lớn môn lập trình hướng đối tượng đề quản lí cửa hàng bán máy tinh (lthdt btl)...........................................................................................................................................................
PHÁT BIỂU BÀI TOÁN
Xây dựng 1 chương trình Java hỗ trợ quản lí thông tin máy tính của một cửa hàng máy tính
MÁY TÍNH có những thông tin như sau: Mã máy tính, tên hãng máy tính, nơi sản xuất, ngày sản xuất, thời gian bảo hành máy tính theo tháng, đơn giá Ngày sản xuất bao gồm: ngày, tháng, năm mà máy tính được lắp ráp
Cửa hàng gồm nhiều NHÂN VIÊN khác nhau, mỗi nhân viên gồm có: mã nhân viên, họ tên, số điện thoại, chức vụ
KHÁCH HÀNG đến mua cần lưu lại thông tin gồm: mã khách hàng, địa chỉ.
Mỗi khách hàng khi mua hàng sẽ có HÓA ĐƠN tương ứng, hóa đơn được lập vào ngày cụ thể và phải xác định nhân viên lập hóa đơn, trong mỗi hóa đơn chứa danh sách thông tin máy tính được mua bởi khách hàng, mỗi máy tính có thể có số lượng mua khác nhau và tiền hàng Mỗi hóa đơn được xác định bởi số hóa đơn Mỗi khác hàng có thể mua nhiều máy tính cho một lần Trong đó tiền hàng = số lượng * đơn giá.
- Nhập và in danh sách hóa đơn được lập.
- Tìm kiếm hóa đơn theo ngày.
- Sắp xếp danh sách hóa đơn theo tiền hàng giảm dần sau đó lưu danh sách trên vào file “SxHoaDon.dat” và in danh sách đó từ file trên.
- Đếm số hóa đơn được lập trong một ngày bất kì.
- Thêm thông tin khách hàng.
- Xóa bỏ danh sách hóa đơn.
XÁC ĐỊNH SƠ ĐỒ LỚP CỦA BÀI TOÁN
CÁC LỚP ĐƯỢC CÀI ĐẶT
QUAN HỆ GIỮA CÁC LỚP
- NhanVien extends NhanSu implements QuanLyThongTin
- KhachHang extends NhanSu implements QuanLyThongTin
- HoaDon extends SanPham implements QuanLyThongTin
MÔ TẢ THUẬT TOÁN – THAO TÁC
7 package BaiTapLon_BTL; import java.io.Serializable; import java.util.Scanner; public class NhanSu implements IQuanLy, Serializable { private String hoTen, gioiTinh, sdt; public NhanSu() { this.hoTen = null;
8 package BaiTapLon_BTL; import java.io.Serializable; import java.util.Scanner
@SuppressWarnings("serial") public class NhanVien extends BaiTapLon_BTL.NhanSu implements IQuanLy, Serializable { private String chucVu, maNV;
9 package BaiTapLon_BTL; import BaiTapLon_BTL.NhanVien; import java.io.*; import java.util.ArrayList; import java.util.Scanner; public class DSNV {
ArrayListlstNV; int sl;
10 public void luuDS() throws FileNotFoundException, IOException {
File f = new File("nhanVien.dat");
FileOutputStream fout = new FileOutputStream(f); ObjectOutputStream ojbout = new ObjectOutputStream(fout); ojbout.writeObject(lstNV); ojbout.close(); fout.close();
11 package BaiTapLon_BTL; import java.io.Serializable; import java.util.Scanner; public class KhachHang extends BaiTapLon_BTL.NhanSu implements IQuanLy, Serializable { private String diaChi, maKH; public KhachHang() { super(); this.diaChi = "No where";
12 package BaiTapLon_BTL; import java.io.*; import java.util.ArrayList; import java.util.Scanner; public class DSKH {
ArrayList lKH; public void xuat() {
System.out.print("\nDanh sach khach hang: ");
13 package BaiTapLon_BTL; import java.io.*; import java.util.ArrayList; import java.util.Scanner; public class DSKH {
ArrayList lKH; public void xuat() {
System.out.print("\nDanh sach khach hang: "); for (KhachHang kh : lKH) { kh.xuat();
14 package BaiTapLon_BTL; import java.io.*; import java.util.ArrayList; import java.util.Scanner; import BaiTapLon_BTL.*; public class HoaDon extends MayTinh implements IQuanLy, Serializable { private String thoiGian, maHD, maNVien; private int slg;
System.out.print("\n - "); System.out.printf("\nMa hoa don: %-10s ", maHD);
System.out.printf("\nNgayxuathoadon:%-10s ", thoiGian); System.out.printf("\nTenkhachhang:%-25s",kh.getHoTen()); System.out.printf("\nManhanvien:%-10s ", maNVien);
System.out.printf("\nTensanpham Dongia Soluong Thanh tien");
System.out.printf("\n - "); for (MayTinh p : lstMT) { p.xuat();
16 package BaiTapLon_BTL; import BaiTapLon_BTL.*; import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class DSHD {
ArrayList lstKH; public DSHD() { lstHD = new ArrayList(); } public void themHD(HoaDon hd) { hd.nhap(); lstHD.add(hd);
17 public void docDS() throws IOException, ClassNotFoundException {
File f = new File("hoaDon.dat");
FileInputStream fin = new FileInputStream(f); ObjectInputStream objin = new ObjectInputStream(fin); lstHD = new ArrayList(); lstHD = (ArrayList) objin.readObject(); objin.close(); fin.close();
} public int tongSoHD() { return lstHD.size();
} public void timKiemHD(String s) { for (HoaDon hd : lstHD) {
18 public void themTTKH() { lstKH = new ArrayList(); for (HoaDon hd : lstHD) { lstKH.add(hd.kh);
} public void luuDSKH() throws FileNotFoundException, IOException {
File f = new File("khachHang.dat");
FileOutputStream fout = new FileOutputStream(f); ObjectOutputStream ojbout = new ObjectOutputStream(fout); ojbout.writeObject(lstKH); ojbout.close(); fout.close();
19 package BaiTapLon_BTL; import java.io.IOException; import java.util.Scanner; public class QuanLy { public static void main(String[] args) throws IOException, ClassNotFoundException, ClassCastException { DSHD dsHD = new DSHD();
Scanner sc = new Scanner(System.in); int luaChon1 = 0, luaChon2 = 0; do {
System.out.println(" -"); System.out.println("MENU");
System.out.println("1.Quan ly hoa don");
System.out.println("2.Quan ly nhan su");
20 case 2: dsHD.docDS(); dsHD.xuatDSHD(); break; case 3: String s;
System.out.print("Nhap ma hoa don can tim: "); sc = new Scanner(System.in); s = sc.nextLine(); dsHD.timKiemHD(s); break; case 4: dsHD.sapXepGTHD(); dsHD.luuDS(); dsHD.luuDSKH();
System.out.print("Da sap xep danh sach hoa don"); break; case 5:
System.out.print("Tong hoa don: " + dsHD.tongSoHD()); break;
21 case 2: //hien thong tin nhan vien dsNV.docDS(); dsNV.xuat(); break; default: break;
} while (luaChon2 > 0 && luaChon2 < 3); break; case 3: // quan ly khach hang dsKH.menu(); do {
System.out.print("\nMoi nhap lua chon: "); luaChon2 = sc.nextInt(); switch (luaChon2) case 1: //hien thong tin khach hang
22 package BaiTapLon_BTL; public interface IQuanLy { public void nhap(); public void xuat();