package com.imooc.test7;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建车辆信息
Car[] car = {new PessagerCar("奥迪A4", 500, 4),new CargoCar("松花江", 400, 4),new PukiCar("皮卡雪6", 450, 4,2)};
System.out.println("欢迎来到租车地带!");
System.out.println("请问是否需要租车:1是 2否");
//显示租车信息
Scanner in = new Scanner(System.in);
int choice = in.nextInt();
while(choice != 2 || choice !=1){
//如果输入错误,非0/1,则重新输入
if(choice == 1){
System.out.println("你可租车的类型及价目表:");
System.out.println(""+"序号" + "\t" + "汽车名称" + "\t" + "租金" + "\t" + "容量");
int i =0;
for(Car curCar:car){ //定义一个curCar对象遍历car数组
i++;
if(curCar instanceof PessagerCar){
System.out.println("" + i + "\t" + curCar.getName() + "\t" + curCar.getRent() + "元/辆"+ "\t"+ ((PessagerCar) curCar).getManned() + "人");
//car[i].show(); //显示租车信息及序号
}
if(curCar instanceof CargoCar){
System.out.println("" + i + "\t" + curCar.getName() + "\t" + curCar.getRent() + "元/辆" +"\t"+ ((CargoCar) curCar).getCargo() + "吨");
}
if(curCar instanceof PukiCar){
System.out.println("" + i + "\t" + curCar.getName() + "\t" + curCar.getRent() + "元/辆" +"\t"+ ((PukiCar) curCar).getManned() + "人" + ((PukiCar) curCar).getCargo() + "吨");
}
}
break;
}else{
System.out.println("谢谢你的光临,再见!");
}
}
//租车数量
System.out.println("请输入你需要租车的数量:");
int carnum = in.nextInt();
Car[] choicecar = new Car[carnum]; //将选择的序号存入数组
for(int i = 0;i < carnum ;i++){
System.out.println("请输入第"+ (i+1) +"辆车的序号");
int num = in.nextInt();
choicecar[i] = car[num-1];
}
//租车天数
System.out.println("请输入租车天数");
int rentday = in.nextInt();
//计算并显示账单
System.out.println("*********************您的账单如下:**********************");
int allmoney = 0;//总的租金
System.out.println(">>>>>>>>>>>>>>您总共要租借"+rentday+"天");
//计算总载客数载货量
int allPesCar = 0; //总载人数
int allCargo = 0; //总载货量
for(int i=0; i<choicecar.length ; i++){
if(choicecar[i] instanceof PessagerCar){
allPesCar += ((PessagerCar) choicecar[i]).getManned();
allmoney += ((PessagerCar) choicecar[i]).getRent();
}
if(choicecar[i] instanceof CargoCar){
allCargo += ((CargoCar) choicecar[i]).getCargo();
allmoney += ((CargoCar) choicecar[i]).getRent();
}
if(choicecar[i] instanceof PukiCar){
allPesCar += ((PukiCar) choicecar[i]).getManned();
allCargo +=((PukiCar)choicecar[i]).getCargo();
allmoney += ((PessagerCar) choicecar[i]).getRent();
allmoney += ((CargoCar) choicecar[i]).getRent();
}
}
//输出清单
System.out.println(">>>>>>>您所要租借的总载客量为: " + allPesCar + "人\t" + "总载货量为:" + allCargo + "吨");
int allRent = allmoney*rentday; //总价
System.out.println(">>>>>>>您总共需要支付: " + allRent + " 元");
System.out.println("谢谢光临租车地带,欢迎下次光临!");
in.close();
}
}
package com.imooc.test7;
public class PukiCar extends Car{ //皮卡子类(既能载物又可以载人)
public String name;
public int rent;
private int Manned;
private double Cargo;
//构造方法
public PukiCar(String name, int rent,int Manned,double Cargo) {
this.name = name;
this.rent = rent;
this.Manned = Manned;
this.Cargo = Cargo;
}
public int getManned() {
return Manned;
}
public void setManned(int manned) {
Manned = manned;
}
public double getCargo() {
return Cargo;
}
public void setCargo(double cargo) {
Cargo = cargo;
}
// //显示选车列表
// @Override
// public void show() {
// // TODO Auto-generated method stub
// System.out.println(getName()+"\t"+getRent()+"元/天"+"\t"+"载货:"+getCargo()+"吨"+"载客"+getManned()+"人");
// }
}
package com.imooc.test7;
public class PessagerCar extends Car { //载客子类
public String name;
public int rent;
private int Manned; //载人数
//构造方法
public PessagerCar(String name, int rent, int manned) {
this.name = name;
this.rent = rent;
this.Manned = manned;
}
public int getManned() {
return Manned;
}
public void setManned(int manned) {
this.Manned = manned;
}
}
package
com.imooc.test7;
public class CargoCar extends Car { //载货子类
public String name;
public int rent;
private double Cargo; //载货量
//构造方法
public CargoCar(String name, int rent, double Cargo) {
this.name = name;
this.rent = rent;
this.Cargo = Cargo;
}
public double getCargo() {
return Cargo;
}
public void setCargo(double cargo) {
this.Cargo = cargo;
}
}
package com.imooc.test7;
public class Car { //父类
//定义共有的参数,名字和租金
public String name;
public int rent;
//public abstract void show(); //定义抽象方法,在子类继承中重写,显示选车列表中的参数
//返回参数值
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRent() {
return rent;
}
public void setRent(int rent) {
this.rent = rent;
}
}
程序不够完善,希望大家可以帮助改正,O(∩_∩)O谢谢