Chương II-JAVA -CÁC KHÁI NIỆM CƠ SỞ -bai2
Bài Tập 2. Công ty du lịch V quản lý thông tin là các chuyến xe. Thông tin của 2 loại chuyến xe:
Chuyến xe nội thành: Mã số chuyến, Họ tên tài xế, số xe, số tuyến, số km đi được, doanh thu.
Chuyến xe ngoại thành: Mã số chuyến, Họ tên tài xế, số xe, nơi đến, số ngày đi được, doanh thu.
Thực hiện các yêu cầu sau:
Xây dựng các lớp với chức năng thừa kế (vẽ cây thừa kế).
Viết chương trình quản lý các chuyến xe theo dạng cây thừa kế với các phương thức sau:
- Nhập, xuất danh sách các chuyến xe (danh sách có thể dùng cấu trúc mảng).
- Tính tổng doanh thu cho từng loại xe.
CODE
//Sơ đồ class :
ChuyenXe.java
Chuyến xe nội thành: Mã số chuyến, Họ tên tài xế, số xe, số tuyến, số km đi được, doanh thu.
Chuyến xe ngoại thành: Mã số chuyến, Họ tên tài xế, số xe, nơi đến, số ngày đi được, doanh thu.
Thực hiện các yêu cầu sau:
Xây dựng các lớp với chức năng thừa kế (vẽ cây thừa kế).
Viết chương trình quản lý các chuyến xe theo dạng cây thừa kế với các phương thức sau:
- Nhập, xuất danh sách các chuyến xe (danh sách có thể dùng cấu trúc mảng).
- Tính tổng doanh thu cho từng loại xe.
CODE
ChuyenXe.java
package com.thanhcs.baitap2; public class ChuyenXe { private String maSo, tenTaiXe; private double doanhThu; public ChuyenXe(String maSo, String tenTaiXe, double doanhThu) { super(); this.maSo = maSo; this.tenTaiXe = tenTaiXe; this.doanhThu = doanhThu; } public String getMaSo() { return maSo; } public void setMaSo(String maSo) { this.maSo = maSo; } public String getTenTaiXe() { return tenTaiXe; } public void setTenTaiXe(String tenTaiXe) { this.tenTaiXe = tenTaiXe; } public double getDoanhThu() { return doanhThu; } public void setDoanhThu(double doanhThu) { this.doanhThu = doanhThu; } @Override public String toString() { return "ChuyenXe [maSo=" + maSo + ", tenTaiXe=" + tenTaiXe + ", doanhThu=" + doanhThu + "]"; } }
ChuyenXeNoiThanh.java
package com.thanhcs.baitap2; public class ChuyenNoiThanh extends ChuyenXe{ private int soTuyen, soKM; public ChuyenNoiThanh(String maSo, String tenTaiXe, double doanhThu, int soTuyen, int soKM) { super(maSo, tenTaiXe, doanhThu); this.soTuyen = soTuyen; this.soKM = soKM; } public int getSoTuyen() { return soTuyen; } public void setSoTuyen(int soTuyen) { this.soTuyen = soTuyen; } public int getSoKM() { return soKM; } public void setSoKM(int soKM) { this.soKM = soKM; } @Override public String toString() { return super.toString() + "ChuyenNoiThanh [soTuyen=" + soTuyen + ", soKM=" + soKM + "]"; } }
ChuyenXengoaithanh.java
package com.thanhcs.baitap2; public class ChuyenNgoaiThanh extends ChuyenXe { private String noiDen; private int soNgayDiDuoc; public ChuyenNgoaiThanh(String maSo, String tenTaiXe,double doanhThu,String noiDen, int soNgayDiDuoc) { super(maSo, tenTaiXe, doanhThu); this.noiDen = noiDen; this.soNgayDiDuoc = soNgayDiDuoc; } public String getNoiDen() { return noiDen; } public void setNoiDen(String noiDen) { this.noiDen = noiDen; } public int getSoNgayDiDuoc() { return soNgayDiDuoc; } public void setSoNgayDiDuoc(int soNgayDiDuoc) { this.soNgayDiDuoc = soNgayDiDuoc; } @Override public String toString() { return super.toString()+ "ChuyenNgoaiThanh [noiDen=" + noiDen + ", soNgayDiDuoc="+ soNgayDiDuoc + "]"; } }
QuanLychuyenXe.java
package com.thanhcs.baitap2; import java.util.ArrayList; import java.util.Scanner; public class QuanLyChuyenXe { ArrayList<ChuyenXe> listChuyenXe; Scanner sc ; ChuyenXe cx; int chon; public QuanLyChuyenXe() { super(); listChuyenXe = new ArrayList<ChuyenXe>(); sc = new Scanner(System.in); } public void nhap(int n) { for(int i = 0 ; i < n ; i++) { System.out.println("1: chuyen xe noi thanh"); System.out.println("2: chuyen xe ngoai thanh"); System.out.println("0: Thoat"); chon = sc.nextInt();sc.nextLine(); switch (chon) { case 1: { String maSo; String tenTaiXe; double doanhThu; int soTuyen; int soKM; System.out.println("Nhap ma so : "); maSo = sc.nextLine(); System.out.println("Ho ten lai xe : ");tenTaiXe = sc.nextLine(); System.out.println("So tuyen : ");soTuyen = sc.nextInt();sc.nextLine(); System.out.println("So Km : "); soKM = sc.nextInt();sc.nextLine(); System.out.println("Doanh thu : "); doanhThu = sc.nextDouble(); sc.nextLine(); cx = new ChuyenNoiThanh(maSo, tenTaiXe, doanhThu, soTuyen, soKM); listChuyenXe.add(cx); System.out.println("add thanh cong tuyen noi thanh"); } break; case 2: { String maSo; String tenTaiXe; double doanhThu; String noiDen; int soNgayDiDuoc; System.out.println("Nhap ma so : "); maSo = sc.nextLine(); System.out.println("Ho ten lai xe : ");tenTaiXe = sc.nextLine(); System.out.println("Noi den : ");noiDen = sc.nextLine(); System.out.println("So ngay di duoc : "); soNgayDiDuoc = sc.nextInt();sc.nextLine(); System.out.println("Doanh thu : "); doanhThu = sc.nextDouble(); sc.nextLine(); cx = new ChuyenNgoaiThanh(maSo, tenTaiXe, doanhThu, noiDen, soNgayDiDuoc); listChuyenXe.add(cx); System.out.println("add thanh cong tuyen ngoai thanh"); } break; default: break; } } } public void xuat() { for(ChuyenXe cx : listChuyenXe) { System.out.println(cx.toString()); } } public void TongDoanhthuTungLoai() { double doanhThuNoiThanh = 0, doanhThuNgoaiThanh = 0; for(ChuyenXe cx : listChuyenXe) { if(cx instanceof ChuyenNoiThanh) { doanhThuNoiThanh+=cx.getDoanhThu(); } if(cx instanceof ChuyenNgoaiThanh) { doanhThuNgoaiThanh+=cx.getDoanhThu(); } } System.out.println("\n\nTong Doanh thu tuyen noi thanh : " + doanhThuNoiThanh); System.out.println("\nTong Doanh thu tuyen ngoai thanh : " + doanhThuNgoaiThanh); } }
Test.java
package com.thanhcs.baitap2; public class Test { public static void main(String[] args) { QuanLyChuyenXe qlcx = new QuanLyChuyenXe(); qlcx.nhap(3); qlcx.xuat(); qlcx.TongDoanhthuTungLoai(); } }
No comments: