Untitled
unknown
plain_text
2 years ago
4.9 kB
9
Indexable
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();
}
}Editor is loading...
Leave a Comment