package com.imooc;
import java.util.Scanner;
public class DaDaRent {
public static void main(String []args){
float sum=0f;//保存用户消费总额
Vehicle []vehicle={new Car(1,"奥迪A6",5,200f),new Car(2,"保时捷A6L",5,200),
new Truck(3,"马自达",13,500),new Truck(4,"依维柯",10,400),
new PickUp(5,"QQ",6,5,300),
new PickUp(6,"金龙",8f,3,400f)};
Scanner input=new Scanner(System.in);//创建Scanner对象
System.out.println("***************欢迎来到dada租车系统***************");
System.out.println("是否真的租车?是1否0 请输入:");
int userIn=input.nextInt();//获取用户输入的结果并保存到userIn变量中
//用户确认要租车
if(userIn==1){
System.out.println("租车信息列表如下:");
System.out.println("车牌号:"+"\t\t"+"车名字:"+"\t\t"+"车型:"+"\t\t"+"载货量(座位数):"+"\t\t\t"+"价钱:");
for(int i=0;i<vehicle.length;i++){
vehicle[i].infoShow();
}
System.out.println("请输入您要租车的数量:");
int carNum=input.nextInt();//租车数量保存到carNum变量中
int []carId=new int[100];//定义一个足够大的数组carId,用来接收存储用户选择的车牌号
System.out.println("请选择你需要租车的车牌号:");
for(int i=0;i<carNum;i++){
carId[i]=input.nextInt();
}
System.out.println("请输入你需要租车的天数:");
int day=input.nextInt();//租车天数保存到day变量中
System.out.println("**************您在dada租车系统的订单如下:*****************");
System.out.println("你选择的车辆信息如下:");
System.out.println("车牌号:"+"\t\t"+"车名字:"+"\t\t"+"车型:"+"\t\t"+"载货量(座位数):"+"\t\t\t"+"价钱:");
for(int i=0;i<carNum;i++){
for(int j=0;j<vehicle.length;j++){
if(vehicle[j].getId()==carId[i]){
vehicle[j].infoShow();
sum=sum+vehicle[j].getPrice();
}
}
}
System.out.println(sum);
System.out.println("您租车的数量为:"+carNum+"您租车的天数为:"+day);
System.out.println("您总共消费为:"+sum*day);
}
//用户确认不租车
else{
System.out.println("欢迎下次光临dada租车系统!");
}
}
}
package com.imooc;
public abstract class Vehicle {
int id;//车牌号
String name;//车名字
float price;//车的价钱
public Vehicle(int id,String name,float price){
super();//调用父类的构造方法,Vehicle类的父类默认为Object类。
this.id=id;
this.name=name;
this.price=price;
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public String getName(){
return name;
}
public void setName(){
this.name=name;
}
public float getPrice(){
return price;
}
public void setPrice(float price){
this.price=price;
}
public abstract void infoShow();//将车辆信息打印出来
}
package com.imooc;
public class Car extends Vehicle {
public final String cartype="载客车";
int seatNum;
public Car(int id,String name,int seatNum,float price){
super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
this.seatNum=seatNum;
}
public int getSeatNum(){
return(seatNum);
}
public void setSeatNum(){
this.seatNum=seatNum;
}
@Override
public void infoShow() {
// TODO Auto-generated method stub
// System.out.println("车牌号:"+id+"车名字:"+name+"车型:"+cartype+"座位数:"+seatNum+"价钱:"+price);
System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+seatNum+"人"+"\t\t\t\t"+price+"元/天");
}
}
package com.imooc;
public class Truck extends Vehicle {
public final String cartype="载货车";
float loadNum;
public Truck(int id,String name,float loadNum,float price){
super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
this.loadNum=loadNum;
}
public float getLoadNum(){
return(loadNum);
}
public void setLoadNum(){
this.loadNum=loadNum;
}
@Override
public void infoShow() {
// TODO Auto-generated method stub
System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+loadNum+"吨"+"\t\t\t\t"+price+"元/天");
}
}
package com.imooc;
public class PickUp extends Vehicle {
public final String cartype="兼容车型";
/*由于子类PickUp继承了父类Vehicle,父类中定义了id,name,price变量,
* 如果子类中重新定义这些变量的话,则创建一个指向子类的对象时候,首先执行构造方法,然后初始化成员变量,
* 在该类中,调用父类的构造方法进行id,name,price的初始化,然后再执行子类中成员变量的初始化,
* 则id,name,price又被默认赋值为默认值(0,NULL,0.0),所以这里子类不应该再重新定义这三个变量。
int id;
String name;
float price;*/
float loadNum;
int seatNum;
public PickUp(int id,String name,float loadNum,int seatNum,float price){
super(id,name,price);//调用父类的构造方法,进行车辆信息的初始化。
this.loadNum=loadNum;
this.seatNum=seatNum;
}
public float getLoadNum(){
return(loadNum);
}
public void setLoadNum(){
this.loadNum=loadNum;
}
public int getSeatNum(){
return(seatNum);
}
public void setSeatNum(){
this.seatNum=seatNum;
}
@Override
public void infoShow() {
// TODO Auto-generated method stub
System.out.println(id+"\t\t"+name+"\t\t"+cartype+"\t\t"+loadNum+"吨"+"\t\t"+seatNum+"人"+"\t\t"+price+"元/天");
}
}