java 一个简单的答答租车系统

    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();
		}
	}
	
	

}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值