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