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)

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng