java达达租车接口_Java第一个项目——达达租车系统v1
父類Vehicle
package com.dada;
public class Vehicle {
protected String name;//車輛名稱
protected int price;//單天租車價格
protected int passengers;//載客數
protected int goods;//載貨量
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getPassengers() {
return passengers;
}
public void setPassengers(int passengers) {
this.passengers = passengers;
}
public int getGoods() {
return goods;
}
public void setGoods(int goods) {
this.goods = goods;
}
//顯示車輛信息
public void showInfo() {
System.out.println("顯示車輛信息");
}
}
子類-載人汽車 PassengerVehicle
package com.dada;
//客運汽車
public class PassengerVehicle extends Vehicle {
public PassengerVehicle(String name, int passengers, int price) {
// TODO Auto-generated constructor stub
this.name = name;
this.passengers = passengers;
this.price = price;
this.goods = 0;
}
@Override
//顯示車輛信息
public void showInfo() {
System.out.println(name + "\t" + price + "元/天\t載人:" + passengers + "人");
}
}
子類-載貨汽車 GoodsVehicle
package com.dada;
//貨運汽車
public class GoodsVehicle extends Vehicle {
public GoodsVehicle(String name, int goods, int price) {
this.name = name;
this.goods = goods;
this.price = price;
this.passengers = 0;
}
@Override
//顯示車輛信息
public void showInfo() {
System.out.println(name + "\t" + price + "元/天\t載貨:" + goods + "噸");
}
}
子類-皮卡車 PickupTruck
package com.dada;
//皮卡車,客貨兩用
public class PickupTruck extends Vehicle {
public PickupTruck(String name, int passengers, int goods, int price) {
super();
this.name = name;
this.passengers = passengers;
this.goods = goods;
this.price = price;
}
@Override
//顯示車輛信息
public void showInfo() {
System.out.println(name + "\t" + price + "元/天\t載人:" + passengers + "人 載貨:" + goods + "噸");
}
}
租車類(主程序) HireVehicle
package com.dada;
import java.util.Scanner;
public class HireVehicle {
private static Vehicle v[];// 保存所有車輛信息
private static int vehicleNums; // 記錄客戶要租的車輛數
private static int days; // 記錄租車天數
private static int hiredVehicleNo[]; // 記錄客戶選擇的車輛編號,數組長度即所租車輛數
// 初始化所有車輛信息
public static void initialVechicles(){
// 初始化車輛信息
Vehicle localV[] = {
new PassengerVehicle("奧迪A4", 4, 500),
new PassengerVehicle("馬自達6", 4, 400),
new PickupTruck("皮卡雪6", 4, 2, 450),
new PassengerVehicle("金龍", 20, 800),
new GoodsVehicle("松花江", 4, 400),
new GoodsVehicle("依維柯", 20, 1000)
};
v = localV;
}
// 顯示所有車輛信息
public static void listVehicles(Vehicle v[]) {
if (v != null) {
System.out.println("您可租車的類型及其價目表:");
System.out.println("序號\t汽車名稱\t租金\t容量");
for (int i = 0; i < v.length; i++) {
System.out.print((i + 1) + ".\t");
v[i].showInfo();
}
}
}
// 填寫租車訂單
public static void order() {
Scanner input = new Scanner(System.in);
System.out.println("請輸入您要租汽車的數量:");
vehicleNums = input.nextInt();// 記錄客戶要租的車輛數
int localHiredVehicleNo[] = new int[vehicleNums];// 記錄客戶選擇的車輛編號
for (int i = 0; i < vehicleNums; i++) {
System.out.println("請輸入第" + (i + 1) + "輛車的序號:"); // 使用i+1以符合用戶的使用習慣,從1開始數
localHiredVehicleNo[i] = input.nextInt();
}
hiredVehicleNo = localHiredVehicleNo; // 引用傳遞給成員變量,以便供其它方法使用
System.out.println("請輸入租車天數:");
days = input.nextInt();// 記錄租車天數
input.close();
}
// 輸出賬單
public static void showOrder() {
int tPassenger = 0;// 總載客人數
float tGoods = 0;// 總載重量
double tPrice = 0;// 1天的租車總價
//租車數大于0,才輸出賬單,否則說明沒有租車,輸出提示沒有訂單信息。
if (hiredVehicleNo.length > 0) {
System.out.println("您的賬單:");
System.out.println("***可載人的車有:");
//先遍歷所有租用的車輛,尋找能載客的車輛信息,輸出車輛名稱,并統計出總載客人數和單日租金總額
for (int i = 0; i < hiredVehicleNo.length; i++) {
int j = hiredVehicleNo[i] - 1;//讀取所租車輛編號
if ((v[j] instanceof PassengerVehicle) || (v[j] instanceof PickupTruck)) { //如果是載客汽車或皮卡車
tPassenger += v[j].getPassengers();//累加總載客人數
System.out.print(" " + v[j].getName());//輸出車輛名稱
tPrice += v[j].getPrice();//累加單日租金
}
}
System.out.println(" 共載人:" + tPassenger + "人");//輸出總載客人數
System.out.println("***載貨的車有:");
//再次遍歷所有租用的車輛,尋找能載貨的車輛信息,輸出車輛名稱,并統計出總載貨量和單日租金總額
for (int i = 0; i < hiredVehicleNo.length; i++) {
int j = hiredVehicleNo[i] - 1;//讀取所租車輛編號
if (v[j] instanceof GoodsVehicle) { //如果是載貨車輛
tGoods += v[j].getGoods();//累加總載貨量
System.out.print(" " + v[j].getName());//累加總載貨量
tPrice += v[j].getPrice();//累加單日租金
} else if (v[j] instanceof PickupTruck) {//如果是皮卡車
tGoods += v[j].getGoods();//累加總載貨量
System.out.print(" " + v[j].getName());//累加總載貨量。因為之前統計載客車輛時已累加皮卡車的租金,所以此次不應再累加租金。
}
}
System.out.println(" 共載貨:" + tGoods + "噸");//輸出總載貨量
System.out.println("***租車總價格:" + (tPrice * days) + "元");//輸出租金總額(單日租金總額*天數)
} else {
System.out.println("沒有訂單信息。");
}
}
// 租車
public static void hire(){
// 顯示歡迎信息,并詢問是否租車
System.out.println("歡迎使用達達租車系統:\n您是否要租車:1是 0否");
int flagHire = 0;// 是否要租車標記,1租車,0不租
Scanner input = new Scanner(System.in);
flagHire = input.nextInt();
if (flagHire == 0) {
System.out.println("歡迎下次光臨"); // 不租
} else { // 租車
// 顯示所有車輛信息
HireVehicle.listVehicles(v);
// 下訂單
HireVehicle.order();
// 顯示賬單
HireVehicle.showOrder();
}
input.close();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化車輛信息
HireVehicle.initialVechicles();
//租車
HireVehicle.hire();
}
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java达达租车接口_Java第一个项目——达达租车系统v1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用WinDbg分析蓝屏dump原因
- 下一篇: c语言最佳适应算法实验报告,操作系统实验