Header Ads

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

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:

Powered by Blogger.