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:
- Bài thực hành 15: FileInputStream trong java – Đọc/Lưu file danh sách học sinh
- Bài thực hành 13: Xây dựng các lớp và interface của chương trình quản lý thông tin cán bộ java
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: