(+84) 236.3827111 ex. 402

Phân tích lớp


Xây dựng chương trình Quản lý giao dịch bất động sản. Thông tin bao gồm:

  • Giao dịch đất: mã giao dịch, ngày giao dịch (ngày, tháng, năm), đơn giá, diện tích, loại đất (A, B, C)
    • Nếu loại đất là A: Thành tiền = diện tích * đơn giá *1.5
    • Nếu loại đất là B, C: Thành tiền = diện tích * đơn giá.
  • Giao dịch nhà: mã giao dịch, ngày giao dịch (ngày, tháng, năm), đơn giá, diện tích, loại nhà (mặt phố, trong kiệt).
    • Nếu loại nhà mặt phố: Thành tiền = diện tích * đơn giá;
    • Nếu loại nhà trong kiệt: Thành tiền = diện tích * đơn giá * 90%.

Yêu cầu:Viết chương trình thực hiện các chức năng:

  1. Đọc dữ liệu từ file text (File text do SV tự thiết kế)
  2. Hiển thị danh sách ra Console

public abstract class GiaoDich {

private String maGD,ngayGD;

double donGia, dienTich;

public abstract double tinhThanhTien();

public GiaoDich() {

}

@Override

public String toString() {

return maGD + ", " + ngayGD + ", " + donGia + ", "

+ dienTich + " Tien="+tinhThanhTien();

}

//…

}

public class GiaoDichNha extends GiaoDich{

private boolean loaiNha; // true: pho, false: kiet

@Override

public double tinhThanhTien() {

if(loaiNha==true) return getDienTich()*getDonGia();

return getDienTich()*getDonGia()*0.9;

}

public String toString(){

return "GD Nha: "+(loaiNha?" Mat tien ":" trong kiet ")+super.toString();

}

//…

}

public class GiaoDichDat extends GiaoDich {

private char loaiDat;

@Override

public double tinhThanhTien() {

if(loaiDat=='A') return getDonGia()*getDienTich()*1.5;

return getDonGia()*getDienTich();

}

public String toString(){

return "GD Dat : "+ loaiDat +", "+super.toString();

}

//….

}

File ….

002 10/12/2020 150 130 true

003 11/10/2020 110 210 false

004 11/10/2020 500 300 C

005 25/11/2020 121 590 B

public class DanhSachGD {

private ArrayList a= new ArrayList();

public void docFile(String tenFile){

try {

File f= new File(tenFile);

if(f.exists()){

System.out.println("ok");

Scanner read= new Scanner(f);

while(read.hasNext()){

Scanner line= new Scanner(read.nextLine());

String ma, ngay;

double dg, dt;

ma= line.next();

ngay = line.next();

dt=line.nextDouble();

dg=line.nextDouble();

if(line.hasNextBoolean()){

boolean loai = line.nextBoolean();

a.add(new GiaoDichNha(loai, ma, ngay, dg, dt));

}else{

char c = line.next().charAt(0);

a.add(new GiaoDichDat(c,ma,ngay,dg,dt));

}

}

}else System.out.println("File ko co");

} catch (Exception e) {

}

}

//…

}