package hello;
import java.util.Scanner;
public class Initial {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("欢迎使用答答租车系统");
System.out.println("您是否需要租车:1是 2否");
Scanner input1 = new Scanner(System.in);
int decision = input1.nextInt();//创建并使用Scanner对象
if(decision==0){System.out.println("欢迎下次光临");}
else
{
System.out.println("您可租车的类型及其价目表");
System.out.println("序号 汽车名称 租金 容量");
dispaly();
}
}
//显示信息
public static void dispaly()
{
//定义了车辆信息数组car_information[],类型为Car
Car [] car_information={new normalcar("奥迪A6",500,4),new normalcar("马自达6",400,4),new pickup("皮卡雪6",450,2,4),new normalcar("金龙",800,20),new truck("松花江",400,4),new truck("依维柯",1000,20)};
for(int i=0;i<car_information.length;i++)//展示汽车信息
{
System.out.print(i+1+" ");
if(car_information[i] instanceof normalcar) ((normalcar)car_information[i]).print(); //判断选取哪一种方法,装换后执行处理,进行了类型转换
if(car_information[i] instanceof pickup) ((pickup)car_information[i]).print();
if(car_information[i] instanceof truck) ((truck)car_information[i]).print(); }//上面方法未掌握,很方便,使用instanceof语句来进行判断执行何种方法。
System.out.println("请输入您要租汽车的数量");
Scanner input2 =new Scanner(System.in);
int rent_num=input2.nextInt();//租车的数量
int sum_num=0;
int sum_weight=0;
int sum_price=0;
int rent[]=new int[100];//后面需要使用,所以不能创建在for循环中
for(int i=0;i<rent_num;i++)
{
System.out.println("请输入第"+(i+1)+"辆车的序号:");
Scanner input3 =new Scanner(System.in);
rent[i]=input3.nextInt();//通过创建数组的方式,进行Scanner输入(因为现在已经不是一个变量进行赋值,而是有多个值,构建数组)
//人数计算
}
System.out.println("请输入租车天数:");
Scanner input4 =new Scanner(System.in);
int day_num=input4.nextInt();//租车天数
//输出的是正常汽车和皮卡的载客量
System.out.println("您的账单:");
System.out.println("***可载人的车有:");
for(int i=0;i<rent_num;i++)
{
if(car_information[rent[i]-1] instanceof normalcar)//因为数组从0开始,所以需要执行[rent[i]-1]的操作
{
((normalcar)car_information[rent[i]-1]).print();//执行normalcar下的输出函数
sum_num=sum_num+((normalcar)car_information[rent[i]-1]).getPassenger_num();
}
if(car_information[rent[i]-1] instanceof pickup)//因为数组从0开始,所以需要执行[rent[i]-1]的操作
{
((pickup)car_information[rent[i]-1]).print();//执行normalcar下的输出函数
sum_num=sum_num+((pickup)car_information[rent[i]-1]).getPassenger_num();
}
}
System.out.println("共载人:"+sum_num+"人");
//输出货车和皮卡的载货量
System.out.println("***可载货的车有:");
for(int i=0;i<rent_num;i++)
{
if(car_information[rent[i]-1] instanceof truck)
{
((truck)car_information[rent[i]-1]).print();//将货车信息输出
sum_weight=sum_weight+((truck)car_information[rent[i]-1]).getWeight();
}
if(car_information[rent[i]-1] instanceof pickup)
{
((pickup)car_information[rent[i]-1]).print();//将货车信息输出
sum_weight=sum_weight+((pickup)car_information[rent[i]-1]).getWeight();
}
}
System.out.println("***共载货:"+sum_weight+"吨");
//最后输出的订单的总价格
for(int i=0;i<rent_num;i++)
{
if(car_information[rent[i]-1] instanceof normalcar)
{
sum_price=sum_price+((normalcar)car_information[rent[i]-1]).getPrice_per()*day_num;
}
if(car_information[rent[i]-1] instanceof truck)
{
sum_price=sum_price+((truck)car_information[rent[i]-1]).getPrice_per()*day_num;
}
if(car_information[rent[i]-1] instanceof pickup)
{
sum_price=sum_price+((pickup)car_information[rent[i]-1]).getPrice_per()*day_num;
}
}
System.out.println("***租车总价格:"+sum_price+"元");
}
}