/**
* 汽车抽象类
*
* @author Administrator
*
*/
public abstract class Auto {
private String name;
private double price;
public Auto(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
@Override
public String toString() {
return name + "\t" + price + "\t";
}
}
/**载客汽车类
* @author Administrator
*
*/
public class PassengerCar extends Auto {
private int passengerCapacity;
public PassengerCar(String name, double price, int passengerCapacity) {
super(name, price);
this.passengerCapacity = passengerCapacity;
}
public int getPassengerCapacity() {
return passengerCapacity;
}
@Override
public String toString() {
return super.toString()+ "载客:"+passengerCapacity+"人" ;
}
public static void main(String[] args) {
Auto PassengerCar=new PassengerCar("路虎",100,5);
System.out.println(PassengerCar.getName());
//System.out.println(PassengerCar.getBusload());//Error,由动态绑定机制决定
PassengerCar bus2=new PassengerCar("路虎2",100,5);
System.out.println(bus2.getName());
System.out.println(bus2.getPassengerCapacity());
System.out.println(bus2.toString());
}
}
/**卡车类
* @author Administrator
*
*/
public class Truck extends Auto{
private double cargoCapacity;
public Truck(String name, double price, double cargoCapacity) {
super(name, price);
this.cargoCapacity = cargoCapacity;
}
public double getCargoCapacity() {
return cargoCapacity;
}
@Override
public String toString() {
return super.toString() + "载货:"+cargoCapacity + "吨";
}
}
/**
* 皮卡类(载货载客汽车)
*
* @author Administrator
*
*/
public class PickUp extends Auto {
private int passengerCapacity;
private double cargoCapacity;
public PickUp(String name, double price, int passengerCapacity, double cargoCapacity) {
super(name, price);
this.passengerCapacity = passengerCapacity;
this.cargoCapacity = cargoCapacity;
}
public int getPassengerCapacity() {
return passengerCapacity;
}
public double getCargoCapacity() {
return cargoCapacity;
}
@Override
public String toString() {
return super.toString() + "载客:" + passengerCapacity + "人 " + "载货:" + cargoCapacity + "人";
}
}
import java.util.ArrayList;
import java.util.Scanner;
/**
* 租车系统
*
* @author Administrator
*
*/
public class CarRentingSystem {
private ArrayList auto = new ArrayList();// 汽车数据
/**
* 初始化汽车数据
*/
public void initAuto() {
auto.add(new PassengerCar("奥迪A6", 500, 4));
auto.add(new PassengerCar("马自达6", 400, 4));
auto.add(new PickUp("皮卡雪6", 450, 4, 2));
auto.add(new PassengerCar("金龙", 800, 20));
auto.add(new Truck("松花江", 300, 3));
auto.add(new Truck("依维柯", 1000, 20));
}
/**
* 显示汽车信息
*/
public void displayAuto() {
System.out.println("您可租的汽车信息:");
System.out.println("序号\t车型\t租金\t容量");
// 遍历汽车数据
for (int i = 0; i < auto.size(); i++)
System.out.println(i + 1 + "\t" + auto.get(i).toString());
}
/**
* 选车的方法
*
* @param in
* 标准输入流
* @return 选中车辆的序号
*/
public int[] selectAuto(Scanner in) {
System.out.println("请输入您要租汽车的数量:");
int carRentNum = in.nextInt();// 租车数目
int[] carRenOrders = new int[carRentNum];// 租车序号
for (int i = 0; i < carRentNum; i++) {// 记录车辆序号
System.out.println("请输入第" + (i + 1) + "辆车的序号:");
carRenOrders[i] = in.nextInt();
}
return carRenOrders;
}
/**
* 租车信息统计
*
* @param carRenOrders
* 选中车辆的序号
* @param carRentDays
* 租车天数
*/
public void countUp(int[] carRenOrders, int carRentDays) {
int totalPrice = 0;
int totalPassengerCapacity = 0;
int totalCargoCapacity = 0;
String passengerCarList = "";
String cargoCarList = "";
for (int i = 0; i < carRenOrders.length; i++) {// 遍历每一辆选中的车
Auto a = auto.get(i);
if (a instanceof PassengerCar) {// 判断汽车类型
totalPassengerCapacity += ((PassengerCar) a).getPassengerCapacity();
passengerCarList += " " + a.getName();
}
if (a instanceof Truck) {
totalCargoCapacity += ((Truck) a).getCargoCapacity();
cargoCarList += " " + a.getName();
}
if (a instanceof PickUp) {
totalPassengerCapacity += ((PickUp) a).getPassengerCapacity();
totalCargoCapacity += ((PickUp) a).getCargoCapacity();
cargoCarList += " " + a.getName();
passengerCarList += " " + a.getName();
}
totalPrice += a.getPrice();
}
System.out.println("您的账单:");
System.out.println("***可载客的汽车有:");
System.out.println(passengerCarList + " 共载客:" + totalPassengerCapacity + "人");
System.out.println("***可载货的汽车有:");
System.out.println(cargoCarList + " 共载货:" + totalCargoCapacity + "吨");
System.out.println("***租车总价格:" + totalPrice * carRentDays + "元");
}
public static void main(String[] args) {
CarRentingSystem crs = new CarRentingSystem();
crs.initAuto();// 初始化汽车数据
while (true) {
System.out.println("欢迎使用哒哒租车系统!");
System.out.println("您是否要租车?1是 0否");
Scanner in = new Scanner(System.in);
if (in.nextInt() == 0)
continue;
else {// 需要租车
crs.displayAuto();// 显示待租汽车信息
int[] carRenOrders = crs.selectAuto(in);// 选车
System.out.println("请输入租车天数:");// 租车天数
int carRentDays = in.nextInt();
crs.countUp(carRenOrders, carRentDays);// 租车信息统计
}
}
}
}
欢迎使用哒哒租车系统!
您是否要租车?1是 0否
1
您可租的汽车信息:
序号 车型 租金 容量
1 奥迪A6 500.0 载客:4人
2 马自达6 400.0 载客:4人
3 皮卡雪6 450.0 载客:4人 载货:2.0人
4 金龙 800.0 载客:20人
5 松花江 300.0 载货:3.0吨
6 依维柯 1000.0 载货:20.0吨
请输入您要租汽车的数量:
3
请输入第1辆车的序号:
1
请输入第2辆车的序号:
3
请输入第3辆车的序号:
5
请输入租车天数:
1
您的账单:
可载客的汽车有:
奥迪A6 马自达6 皮卡雪6 共载客:12人可载货的汽车有:
皮卡雪6 共载货:2吨
***租车总价格:1350元
欢迎使用哒哒租车系统!
您是否要租车?1是 0否
0
欢迎使用哒哒租车系统!
您是否要租车?1是 0否
打开App,阅读手记