public abstract class Vehicle {
private String name; //车名
private int id; // 车ID
private int price; //租金
public Vehicle( int id,String name, int price) {
this.name = name;
this.id = id;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
// 抽象方法 打印车辆基本信息
public abstract void print();
}
public class Car extends Vehicle {
private int peopleNum;
public Car(int id, String name, int price,int peopleNum) {
super(id, name, price);
this.peopleNum = peopleNum;
}
public int getPeopleNum() {
return peopleNum;
}
public void setPeopleNum(int peopleNum) {
this.peopleNum = peopleNum;
}
@Override
public void print() {
System.out.println(getId()+". "+getName()+" "+getPrice()+"元/天"+" 载人:"+peopleNum+"人");
}
}
public class PiKa extends Vehicle {
private int peopleNum;
private int goodsNum;
public PiKa(int id, String name, int price,int peopleNum,int goodsNum) {
super(id, name, price);
this.peopleNum = peopleNum;
this.goodsNum = goodsNum;
}
public int getPeopleNum() {
return peopleNum;
}
public void setPeopleNum(int peopleNum) {
this.peopleNum = peopleNum;
}
public int getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(int goodsNum) {
this.goodsNum = goodsNum;
}
@Override
public void print() {
System.out.println(getId()+". "+getName()+" "+getPrice()+"元/天"+" 载人:"+peopleNum+"人 载货:"+goodsNum+"吨");
}
}
public class Trunk extends Vehicle {
private int goodsNum;
public Trunk(int id, String name, int price,int goodsNum) {
super(id, name, price);
this.goodsNum= goodsNum;
}
public int getGoodsNum() {
return goodsNum;
}
public void setGoodsNum(int goodsNum) {
this.goodsNum = goodsNum;
}
@Override
public void print() {
System.out.println(getId()+". "+getName()+" "+getPrice()+"元/天"+" 载货:"+goodsNum+"吨");
}
}
public class Demo {
// 答答车行的所有车
static Vehicle[] carArr = {
new Car(1,"奥迪A4",500,4),new Car(2,"马自达6",400,4),
new PiKa(3,"皮卡雪6",450,4,2),new Car(4,"金龙",800,20),
new Trunk(5,"松花江",400,4),new Trunk(6,"依维柯",1000,20)
};
public static void main(String[] args) {
System.out.println("欢迎来到答答租车系统");
System.out.println("是否租车,是选择 1,否选择 0");
Scanner scanner = new Scanner(System.in);
int temp = scanner.nextInt();
int carNum =0;
if(temp==1) {
System.out.println("以下是我们车行的所有车辆类型和价目,请过目:");
showAllCar();
System.out.println("请输入您要租汽车的数量:");
carNum = scanner.nextInt();
int[] choiceId = new int[carNum];//存放租车的ID
for(int i= 1;i <= carNum;i++) {
System.out.println("请输入第"+i+"量车的ID:");
choiceId[i-1] = scanner.nextInt();
}
System.out.println("请输入租车天数:");
int zuDay = scanner.nextInt();
showOrder(choiceId,zuDay);
}else {
System.out.println("欢迎下次光临!");
}
}
private static void showOrder(int[] choiceId, int zuDay) {
// 第一步展示租车信息
/*for(Vehicle vehicle : carArr) {
int id = vehicle.getId();
Arrays.binarySearch(choiceId, id);
}*/
double priceSum = 0;
String ziRen = "";
String ziHuo = "";
int ziRenNum = 0;
int ziHuoNum = 0;
for(int carId : choiceId) {
Vehicle vehicle = getCarById(carId);
if(null!= vehicle) {
// 计算租车金额
priceSum += (vehicle.getPrice()*zuDay);
//字符串信息拼接
if(vehicle instanceof Car) {
ziRen += vehicle.getName()+" ";
ziRenNum += ((Car) vehicle).getPeopleNum();
}
if(vehicle instanceof Trunk) {
ziHuo += vehicle.getName()+" ";
ziHuoNum += ((Trunk) vehicle).getGoodsNum();
}
if(vehicle instanceof PiKa) {
ziRen += vehicle.getName()+" ";
ziHuo += vehicle.getName()+" ";
ziRenNum += ((PiKa) vehicle).getPeopleNum();
ziHuoNum += ((PiKa) vehicle).getGoodsNum();
}
}
}
System.out.println("您的账单是:");
if(!ziRen.equals("")) {// 判断这个是为了输出更人性化
System.out.println("载人的车辆有:");
System.out.println(ziRen+" 共载人:"+ziRenNum+"人");
}
if(!ziHuo.equals("")) {
System.out.println("载货的车辆有:");
System.out.println(ziHuo+" 共载货:"+ziHuoNum+"吨");
}
System.out.println("您本次租车的总金额为:"+priceSum+"元");
// 第二步计算账单价格
}
public static Vehicle getCarById(int id) {
for (Vehicle vehicle : carArr) {
if(vehicle.getId() == id) {
return vehicle;
}
}
return null;
}
public static void showAllCar() {
for (Vehicle vehicle : carArr) {
vehicle.print();
}
}
}
java 一个简单的答答租车系统
最新推荐文章于 2022-10-07 09:58:52 发布