Java - Viết chương trình quản lý thông tin các chuyến xe.
Công ty du lich V quản lý thông tin của 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.
Viết chương trình thực hiện các yêu cầu sau:
- Xây dựng các lớp có quan hệ thừa kế.
- Nhập, xuất danh sách các chuyến xe.
- Tính tổng doanh thu cho từng loại xe.
Bài giải
-------------------- ######## --------------------
Hướng dẫn:
Bước 1: Xây dựng lớp ChuyenXe
bao gồm các thuộc tính chung của 2 loại chuyến xe nội thành và ngoại thành đó là mã số chuyến, họ tên tài xế, số xe, doanh thu.
Bước 2: Xây dựng lớp ChuyenXeNoiThanh
kế thừa lớp ChuyenXe
và có các thuộc tính riêng là số tuyến, số km đi được.
Bước 3: Xây dựng lớp ChuyenXeNgoaiThanh
kế thừa lớp ChuyenXe
và có các thuộc tính riêng là nơi đến, số ngày đi được.
Bài viết này được đăng tại [free tuts .net]
Bước 4: Xây dựng lớp Main
nhập, hiển thị thông tin các chuyến xe và tính tổng doanh thu cho từng loại xe.
package baitapquanlychuyenxe; import java.util.Scanner; public class ChuyenXe { protected String maSoChuyen, hoTenTaiXe, soXe; protected double doanhThu; Scanner scanner = new Scanner(System.in); public ChuyenXe() { super(); this.maSoChuyen = ""; this.hoTenTaiXe = ""; this.soXe = ""; this.doanhThu = 0; } public ChuyenXe(String maSoChuyen, String hoTenTaiXe, String soXe, double doanhThu) { super(); this.maSoChuyen = maSoChuyen; this.hoTenTaiXe = hoTenTaiXe; this.soXe = soXe; this.doanhThu = doanhThu; } public String getMaSoChuyen() { return maSoChuyen; } public void setMaSoChuyen(String maSoChuyen) { this.maSoChuyen = maSoChuyen; } public String getHoTenTaiXe() { return hoTenTaiXe; } public void setHoTenTaiXe(String hoTenTaiXe) { this.hoTenTaiXe = hoTenTaiXe; } public String getSoXe() { return soXe; } public void setSoXe(String soXe) { this.soXe = soXe; } public double getDoanhThu() { return doanhThu; } public void setDoanhThu(double doanhThu) { this.doanhThu = doanhThu; } public void nhapThongTinChuyenXe() { System.out.print("Nhập mã số chuyến: "); maSoChuyen = scanner.nextLine(); System.out.print("Nhập họ tên tài xế: "); hoTenTaiXe = scanner.nextLine(); System.out.print("Nhập số xe: "); soXe = scanner.nextLine(); System.out.print("Nhập doanh thu: "); doanhThu = scanner.nextDouble(); } public String toString() { return "Mã số chuyến: " + this.maSoChuyen + ", họ tên tài xế: " + this.hoTenTaiXe + ", số xe: " + this.soXe + ", doanh thu: " + this.doanhThu; } }
package baitapquanlychuyenxe; public class ChuyenXeNoiThanh extends ChuyenXe { private String soTuyen; private double soKmDiDuoc; public ChuyenXeNoiThanh() { super(); } public ChuyenXeNoiThanh(String soTuyen, double soKmDiDuoc) { super(); this.soTuyen = soTuyen; this.soKmDiDuoc = soKmDiDuoc; } public double getSoKmDiDuoc() { return soKmDiDuoc; } public void setSoKmDiDuoc(double soKmDiDuoc) { this.soKmDiDuoc = soKmDiDuoc; } public Scanner getScanner() { return scanner; } public void setScanner(Scanner scanner) { this.scanner = scanner; } public void nhapThongTinChuyenXe() { super.nhapThongTinChuyenXe(); // gọi hàm nhapThongTinChuyenXe() của lớp ChuyenXe System.out.print("Nhập số tuyến: "); soTuyen = scanner.nextLine(); System.out.print("Nhập số km đi được: "); soKmDiDuoc = scanner.nextDouble(); } public String toString() { return super.toString() + ", số tuyến: " + this.soTuyen + ", số km đi được: " + this.soKmDiDuoc; } }
package baitapquanlychuyenxe; public class ChuyenXeNgoaiThanh extends ChuyenXe { private String noiDen; private int soNgayDiDuoc; public ChuyenXeNgoaiThanh() { super(); this.noiDen = ""; this.soNgayDiDuoc = 0; } public ChuyenXeNgoaiThanh(String noiDen, int soNgayDiDuoc) { super(); 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; } public void nhapThongTinChuyenXe() { super.nhapThongTinChuyenXe(); System.out.print("Nhập nơi đến: "); noiDen = scanner.nextLine(); System.out.print("Nhập số ngày đi được: "); soNgayDiDuoc = scanner.nextInt(); } public String toString() { return super.toString() + ", nơi đến: " + this.noiDen + ", số ngày đi được: " + this.soNgayDiDuoc; } }
package baitapquanlychuyenxe; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { ArrayList<ChuyenXeNoiThanh> arrChuyenXeNoiThanh = new ArrayList<>(); ArrayList<ChuyenXeNgoaiThanh> arrChuyenXeNgoaiThanh = new ArrayList<>(); int soChuyenNoiThanh, soChuyenNgoaiThanh; double doanhThuXeNoiThanh = 0, doanhThuXeNgoaiThanh = 0; Scanner scanner = new Scanner(System.in); System.out.print("Nhập số chuyến xe nội thành: "); soChuyenNoiThanh = scanner.nextInt(); System.out.print("Nhập số chuyến xe ngoại thành: "); soChuyenNgoaiThanh = scanner.nextInt(); System.out.println("Nhập thông tin chuyến xe nội thành:"); for (int i = 0; i < soChuyenNoiThanh; i++) { System.out.println("Nhập thông tin chuyến xe thứ " + (i + 1) + ":"); ChuyenXeNoiThanh chuyenXeNoiThanh = new ChuyenXeNoiThanh(); chuyenXeNoiThanh.nhapThongTinChuyenXe(); doanhThuXeNoiThanh += chuyenXeNoiThanh.getDoanhThu(); arrChuyenXeNoiThanh.add(chuyenXeNoiThanh); } System.out.println("Nhập thông tin chuyến xe ngoại thành:"); for (int i = 0; i < soChuyenNgoaiThanh; i++) { System.out.println("Nhập thông tin chuyến xe thứ " + (i + 1) + ":"); ChuyenXeNgoaiThanh chuyenXeNgoaiThanh = new ChuyenXeNgoaiThanh(); chuyenXeNgoaiThanh.nhapThongTinChuyenXe(); doanhThuXeNgoaiThanh += chuyenXeNgoaiThanh.getDoanhThu(); arrChuyenXeNgoaiThanh.add(chuyenXeNgoaiThanh); } System.out.println("-----Thông tin chuyến xe nội thành-----"); for (int i = 0; i < arrChuyenXeNoiThanh.size(); i++) { System.out.println(arrChuyenXeNoiThanh.get(i).toString()); } System.out.println("-----Thông tin chuyến xe ngoại thành-----"); for (int i = 0; i < arrChuyenXeNgoaiThanh.size(); i++) { System.out.println(arrChuyenXeNgoaiThanh.get(i).toString()); } System.out.println("Doanh thu từng chuyến xe: "); System.out.println("Doanh thu chuyến xe nội thành: " + doanhThuXeNoiThanh); System.out.println("Doanh thu chuyến xe ngoại thành: " + doanhThuXeNgoaiThanh); } }
Kết quả sau khi biên dịch chương trình:
Câu hỏi thường gặp liên quan:
- Java - Viết chương trình quản lý thông tin các chuyến xe.
- Java - Viết chương trình quản lý sách trong thư viện.
- Java - Viết chương trình quản lý giao dịch nhà đất.
- Java - Viết chương trình tính chu vi, diện tích hình vuông.
- Java - Xây dựng chương trình vẽ hình đơn giản (câu hỏi 1)