[Java] Code chương trình quản lý thông tin xe và tính thuế

Viết chương trình quản lý xe java cho phép nhập thông tin và tính thuế cho từng loại xe bằng ngôn ngữ lập trình java.

Xem thêm:

1. Bài toán quản lý thông tin xe

Bài 14 (TH-LTHDT-02):

Yêu cầu quản lý:

– Thông tin từng loại xe.

– Tính tiền thuế cho từng chiếc xe dựa trên giá trị xe như sau:

+ Xe đẹp: Không đóng thuế. Xe máy: VAT=10% và thuế trước bạ 5%.

+ Xe ô tô khách: Thuế tiêu thụ đặc biệt 30% (số chỗ >=5); 50% (số chỗ 5), thuế VAT 10%, thuế trước bạ 2006.

+Xe ô tô tải: VAT=10%, thuế trước bạ 2%.

Yêu cầu sinh viên:

– Dùng kiến thức mô hình hóa dữ liệu trong lập trình hướng đối tượng để xây dựng các lớp.

– Thiết kế mô hãnh cây phân cấp các lớp. Mối quan hệ giữa các lớp và các interface.

– Chuyển từ mô hình trên sang ngôn ngữ lập trình Java (chuyển sang thiết kế các lớp và interface tương ứng bằng ngôn ngữ lập trình Java).

– Cài đặt test chương trình.

2. Code chương trình quản lý xe java

2.1 Interface Thue

package bai14;

public interface Thue {
    float thue();
}

2.1 Class Xe

package bai14;

import java.util.Scanner;

public class Xe {
    float giaXe;
    String hangXe;
    
    public Xe(){
        
    }
    
    public Xe(float giaXe, String hangXe){
        this.giaXe= giaXe;
        this.hangXe=hangXe;
    }

    public float getGiaXe() {
        return giaXe;
    }

    public void setGiaXe(float giaXe) {
        this.giaXe = giaXe;
    }

    public String getHangXe() {
        return hangXe;
    }

    public void setHangXe(String hangXe) {
        this.hangXe = hangXe;
    }
    
    public void nhap(){
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhap hang xe");
        hangXe= sc.nextLine();
        System.out.println("Nhap gia xe: ");
        giaXe= sc.nextFloat();
    }
    
    public void xuat(){
        System.out.println("Hang xe: "+getHangXe());
        System.out.println("Gia xe: "+ getGiaXe());
    }
    
    
}

2.2 Class XeDap

package bai14;

public class XeDap extends Xe implements Thue{

    @Override
    public float thue() {
        return 0;
    }
    
    public void nhapXD(){
        super.nhap();
    }
    
    public void xuat(){
        super.xuat();
        System.out.println("Thue: "+thue());
    }
    
}

2.3 Class XeMay

package bai14;


public class XeMay extends Xe implements Thue{

    @Override
    public float thue() {
        return (float) (giaXe*0.1*0.05);
    }
    
    public void nhapXM(){
        super.nhap();
    }
    
    public void xuat(){
        super.xuat();
        System.out.println("Thue: "+thue());
    }
    
}

2.4 Class Oto

package bai14;


public class Oto extends Xe implements Thue{

    @Override
    public float thue() {
        return (float) (giaXe*0.1*0.02);
    }
    
    public void nhapOto(){
        super.nhap();
    }
    
    public void xuat(){
        super.xuat();
        System.out.println("Thue: "+thue());
    }
    
}

2.5 Class OtoK

package bai14;

import java.util.Scanner;

public class OtoK extends Xe implements Thue{
    int sochongoi;

    public int getSochongoi() {
        return sochongoi;
    }

    public void setSochongoi(int sochongoi) {
        this.sochongoi = sochongoi;
    }
    public void nhapOtoK(){
        Scanner sc = new Scanner(System.in);
        super.nhap();
        System.out.println("Nhap so cho ngoi: ");
        sochongoi=sc.nextInt();
    }
       
    
    @Override
    public float thue() {
        if(sochongoi>=5){
            return (float) (giaXe*0.3*0.1*0.2);
        }
        else if(sochongoi<5){
            return (float) (giaXe*0.5*0.1*0.2);
        }    
        else return 0;
    }
    
    
    
    public void xuat(){
        super.xuat();
        System.out.println("So cho ngoi: "+getSochongoi());
        System.out.println("Thue: "+thue());
    
    }
}

2.6 Class DanhSachXe

package bai14;

import java.util.ArrayList;
import java.util.Scanner;

public class DanhSachXe {
    int chon;
    ArrayList<Xe> ds= new ArrayList<>();
    Scanner sc = new Scanner(System.in);
    
    public void menu(){
        System.out.println("1. Nhap Xe Dap");
        System.out.println("2. Nhap Xe May");
        System.out.println("3. Nhap Oto");
        System.out.println("4. Nhap Oto Khach");
        System.out.println("5. Hien Danh Sach");
        System.out.println("0.Thoat");
    }
    
    public void nhapDS(){
        do {            
            menu();
            System.out.println("Lua chon: ");
            chon = sc.nextInt();
            switch(chon){
                case 1: {
                    XeDap xd = new XeDap();
                    xd.nhapXD();
                    ds.add(xd);
                    break;
                }
                case 2: {
                    XeMay xm= new XeMay();
                    xm.nhapXM();
                    ds.add(xm);
                    break;
                }
                case 3: {
                    Oto o = new Oto();
                    o.nhapOto();
                    ds.add(o);
                    break;
                }
                case 4: {
                    OtoK k = new OtoK();
                    k.nhapOtoK();
                    ds.add(k);
                    break;
                }
                case 5: xuatDS(); break;
                case 0: System.exit(0); break;
                    
            }
        } while (chon!=0);
    }
    
    public void xuatDS(){
        for(int i=0;i<ds.size();i++){
            ds.get(i).xuat();
        }
    }
}

2.7 Class main

package bai14;

public class Bai14 {

    public static void main(String[] args) {
        DanhSachXe dsx = new DanhSachXe();
        dsx.nhapDS();
    }
    
}

Tải FULL code:

3. Kết quả quản lý thông tin xe và tính thuế

Trên đây là đoạn code tham khảo chương trình quản lý thông tin từng loại xe. Cảm ơn bạn đã tham khảo bài tập lập trình hướng đối tượng java trên ttnguyen.net.

Bài viết liên quan:

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em