Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
4.9 kB
1
Indexable
Never
import java.util.Scanner;

// Lớp cha HangHoa
class HangHoa {
    protected String maHang;
    protected String tenHang;
    protected double gia;

    // Phương thức nhập thông tin
    public void nhapThongTin(Scanner sc) {
        System.out.print("Nhap ma hang: ");
        maHang = sc.nextLine();
        System.out.print("Nhap ten hang: ");
        tenHang = sc.nextLine();
        System.out.print("Nhap gia: ");
        gia = sc.nextDouble();
        sc.nextLine(); // Đọc bỏ dòng mới sau khi nhập số
    }

    // Phương thức xuất thông tin
    public void xuatThongTin() {
        System.out.println("Ma hang: " + maHang);
        System.out.println("Ten hang: " + tenHang);
        System.out.println("Gia: " + gia);
    }
}

// Lớp con HangDienMay
class HangDienMay extends HangHoa {
    private int thoiGianBaoHanh; // tháng
    private double dienAp; // Vôn
    private double congSuat; // Watt

    @Override
    public void nhapThongTin(Scanner sc) {
        super.nhapThongTin(sc);
        System.out.print("Nhap thoi gian bao hanh (thang): ");
        thoiGianBaoHanh = sc.nextInt();
        System.out.print("Nhap dien ap (V): ");
        dienAp = sc.nextDouble();
        System.out.print("Nhap cong suat (W): ");
        congSuat = sc.nextDouble();
        sc.nextLine(); // Đọc bỏ dòng mới sau khi nhập số
    }

    @Override
    public void xuatThongTin() {
        super.xuatThongTin();
        System.out.println("Thoi gian bao hanh: " + thoiGianBaoHanh + " thang");
        System.out.println("Dien ap: " + dienAp + " V");
        System.out.println("Cong suat: " + congSuat + " W");
    }
}

// Lớp con HangThucPham
class HangThucPham extends HangHoa {
    private String ngaySanXuat; // Định dạng yyyy-MM-dd
    private String ngayHetHan; // Định dạng yyyy-MM-dd

    @Override
    public void nhapThongTin(Scanner sc) {
        super.nhapThongTin(sc);
        System.out.print("Nhap ngay san xuat (yyyy-MM-dd): ");
        ngaySanXuat = sc.nextLine();
        System.out.print("Nhap ngay het han (yyyy-MM-dd): ");
        ngayHetHan = sc.nextLine();
    }

    @Override
    public void xuatThongTin() {
        super.xuatThongTin();
        System.out.println("Ngay san xuat: " + ngaySanXuat);
        System.out.println("Ngay het han: " + ngayHetHan);
    }
}

// Lớp DSHANGHOA
class DSHangHoa {
    private HangHoa[] danhSach;
    private int soLuong;

    // Khởi tạo danh sách ban đầu chưa có mặt hàng nào
    public DSHangHoa() {
        danhSach = new HangHoa[100];
        soLuong = 0;
    }

    // Thêm một mặt hàng vào danh sách
    public void chenHangHoa(HangHoa hh) {
        if (soLuong < danhSach.length) {
            danhSach[soLuong] = hh;
            soLuong++;
        } else {
            System.out.println("Danh sach da day!");
        }
    }

    // Xuất danh sách các mặt hàng theo loại
    public void xuatDSTheoLoai(byte loai) {
        for (int i = 0; i < soLuong; i++) {
            if ((loai == 1 && danhSach[i] instanceof HangDienMay) ||
                (loai == 2 && danhSach[i] instanceof HangThucPham)) {
                danhSach[i].xuatThongTin();
                System.out.println();
            }
        }
    }
}

// Lớp thử nghiệm
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        DSHangHoa dshh = new DSHangHoa();
        HangHoa hh;

        byte chon;
        do {
            System.out.println("1: Them mot mat hang vao danh sach");
            System.out.println("2: Xuat mat hang theo loai");
            System.out.println("0: Thoat");
            System.out.print("Chon chuc nang: ");
            chon = sc.nextByte();
            sc.nextLine(); // Đọc bỏ dòng mới sau khi nhập số

            switch (chon) {
                case 1:
                    System.out.println("1: Hang dien may, 2: Hang thuc pham. Hay chon loai mat hang:");
                    byte loai = sc.nextByte();
                    sc.nextLine(); // Đọc bỏ dòng mới sau khi nhập số

                    if (loai == 1) {
                        hh = new HangDienMay();
                    } else {
                        hh = new HangThucPham();
                    }

                    hh.nhapThongTin(sc);
                    dshh.chenHangHoa(hh);
                    break;

                case 2:
                    System.out.println("Xuat danh sach mat hang nao (1: DM / 2: TP): ");
                    byte loaiMH = sc.nextByte();
                    sc.nextLine(); // Đọc bỏ dòng mới sau khi nhập số

                    dshh.xuatDSTheoLoai(loaiMH);
                    break;

                default:
                    chon = 0;
                    break;
            }
        } while (chon != 0);

        sc.close();
    }
}
Leave a Comment