Viết chương trình quản lý thông tin xe 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: Đọc/Lưu file danh sách học sinh java
- Bài thực hành 13: [Java] Xây dựng các lớp và interface quản lý thông tin cán bộ
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
2.1 Interface Thue
package bai14; public interface Thue { float thue(); }
2.1 Lớp 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 Lớp 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 Lớp 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 Lớp 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 Lớp 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 Lớp 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 Lớp main
package bai14; public class Bai14 { public static void main(String[] args) { DanhSachXe dsx = new DanhSachXe(); dsx.nhapDS(); } }
3. Kết quả
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 java. Cảm ơn bạn đã tham khảo trên ttnguyen.net.