为了账号安全,请及时绑定邮箱和手机立即绑定

交作业le。。。。

package com.ppcc.carData;

/**
 * 车库类
 * @author ppcc
 *
 */
public class CarHold {
	/**
	 * 存放所有车的车库
	 */
	private CarBase allCar[];
	
	/**
	 * 获取车库中的车
	 * @return 车库
	 */
	public CarBase[] getAllCar() {
		return allCar;
	}
	/**
	 *构造函数 
	 */
	public CarHold() {
		//给数组赋值
		allCar=new CarBase[]{
				new SaloonCar(1,"奥迪A4 ",500,4),
				new SaloonCar(2,"马自达6",400,4),
                new PickupCar(3,"皮卡雪6",450,4,2),
                new SaloonCar(4,"金龙           ",800,20),
                new WagonCar(5,"松花江     ",400,4),
                new WagonCar(6,"依维柯     ",1000,20)
		};
	}
	
	/**
	 * 显示车库所有的车
	 */
	public void showAllCar(){
		//for循环遍历所有车
		for(CarBase currCar : allCar){
			//显示车的信息
			currCar.showCarInfor();
		}
	}
}

package com.ppcc.carData;
 
/**
 * 车的基本信息(父类)
 * @author ppcc
 *
 */
public abstract class CarBase {
     
    /**
     * 车的序号
     */
    protected int carNum;
     
    /**
     * 车的名称
     */
    protected String carName; 
     
    /**
     * 车出租的单价
     */
    protected int carRentMoney;
     
    /**
     * 获取车的序号
     * @return 车的序号
     */
    public int getCarNum() {
        return carNum;
    }
     
    /**
     * 车的名称
     * @return 车的名称
     */
    public String getCarName() {
        return carName;
    }
     
    /**
     * 车出租的单价
     * @return 车出租的单价
     */
    public int getCarRentMoney() {
        return carRentMoney;
    }
     
    /**
     * 构造函数
     * @param carNum 车的序号
     * @param carName 车的名称
     * @param carRentMoney 车出租的单价
     */
    public CarBase(int carNum, String carName, int carRentMoney) {
        this.carNum = carNum;
        this.carName = carName;
        this.carRentMoney = carRentMoney;
    }
     
    /**
     * 显示车的信息
     */
    public abstract void showCarInfor();
}

package com.ppcc.carData;

/**
 * 皮卡类
 * @author ppcc
 *
 */
public class PickupCar extends CarBase {
	
	/**
	 * 车的载客量
	 */
	private int carCapacity;
	
	/**
	 * 车的载货量
	 */
	private int carCarryCargo;
	
	/**
	 * 获取车的载客量
	 * @return 车的载客量
	 */
	public int getCarCapacity() {
		return carCapacity;
	}
	
	/**
	 * 获取车的载货量
	 * @return 车的载货量
	 */
	public int getCarCarryCargo() {
		return carCarryCargo;
	}

	/**
	 * 构造函数
	 * @param carNum 车的序号
	 * @param carName 车的名称
	 * @param carRentMoney 车出租的单价
	 * @param carCapacity 车的载客量
	 * @param carCarryCargo 车的载货量
	 */
	public PickupCar(int carNum, String carName, int carRentMoney, int carCapacity, int carCarryCargo) {
		super(carNum, carName, carRentMoney);
		this.carCapacity=carCapacity;
		this.carCarryCargo=carCarryCargo;
	}

	@Override
	public void showCarInfor() {
		//显示车的基本信息
		System.out.println("序号:"+this.carNum+"  汽车名称:"+this.carName+"  租金:"+this.carRentMoney+"元/天"+"  载客量"+this.carCapacity+"人/车"+"  载货量"+this.carCarryCargo+"吨/车");
	}

}

package com.ppcc.carData;

/**
 * 客车类
 * @author ppcc
 *
 */
public class SaloonCar extends CarBase {
	
	/**
	 * 车的载客量
	 */
	private int carCapacity;
	
	/**
	 * 构造函数
	 * @param carNum 车的序号
	 * @param carName 车的名称
	 * @param carRentMoney 车出租的单价
	 * @param carCapacity 车的载客量
	 */
	public SaloonCar(int carNum, String carName, int carRentMoney, int carCapacity) {
		super(carNum, carName, carRentMoney);
		this.carCapacity=carCapacity;
	}

	@Override
	public void showCarInfor() {
		//显示车的基本信息
		System.out.println("序号:"+this.carNum+"  汽车名称:"+this.carName+"  租金:"+this.carRentMoney+"元/天"+"  载客量"+this.carCapacity+"人/车");
	}

}

package com.ppcc.carData;

/**
 * 货车
 * @author ppcc
 *
 */
public class WagonCar extends CarBase {
	/**
	 * 车的载货量
	 */
	private int carCarryCargo;
	
	/**
	 * 构造函数
	 * @param carNum 车的序号
	 * @param carName 车的名称
	 * @param carRentMoney 车出租的单价
	 * @param carCarryCargo 车的载货量
	 */
	public WagonCar(int carNum, String carName, int carRentMoney, int carCarryCargo) {
		super(carNum, carName, carRentMoney);
		this.carCarryCargo=carCarryCargo;
		
	}

	@Override
	public void showCarInfor() {
		//显示车的基本信息
		System.out.println("序号:"+this.carNum+"  汽车名称:"+this.carName+"   租金:"+this.carRentMoney+"元/天"+"  载货量"+this.carCarryCargo+"吨/车");
	}

}

package com.ppcc.service;

import java.util.ArrayList;

import com.ppcc.carData.CarBase;

/**
 * 账单类
 * @author ppcc
 *
 */
public class Bill {
	
	/**
	 * 租车总数
	 */
	private int carNum;
	
	/**
	 * 皮卡数目
	 */
	private int pickupNum;
	
	/**
	 * 客车数目
	 */
	private int saloonNum;
	
	/**
	 * 货车数目
	 */
	private int wagonNum;
	
	/**
	 * 租车天数
	 */
	private int day;
	
	/**
	 * 租车总花费
	 */
	private int money;
	
	/**
	 * 构造函数
	 * @param carArr 用户租的所有车
	 * @param dayNum 用户租车的天数
	 */
	public Bill(ArrayList<CarBase> rentArr,int dayNum){
		//首次初始化数目
		this.pickupNum=0;
		this.saloonNum=0;
		this.wagonNum=0;
		this.money=0;
		//获取车的总数目
		this.carNum=rentArr.size();
		//获取租车的总天数
		this.day=dayNum;
		this.detailedBill(rentArr);
	}
	
	/**
	 * 获取各类车的数目/总租金
	 * @param carArr 用户租的所有车
	 */
	private void detailedBill(ArrayList<CarBase> rentArr){
		for(CarBase currCar : rentArr){
			this.money+=currCar.getCarRentMoney();
			String str=(currCar.getClass()).toString();
			if(str.equals("class com.ppcc.carData.SaloonCar"))
				this.pickupNum++;
			else if(str.equals("class com.ppcc.carData.PickupCar"))
				this.saloonNum++;
			else
				this.wagonNum++;
		}
	}
	
	/**
	 * 打印账单信息
	 */
	public void showBill(){
		System.out.println("\n***********************你的账单**************************");
		//输出租车总数目和总天数
		System.out.println("租车的总数:"+ this.carNum+ "\t租车的天数:"+this.day);
		//输出皮卡的数目
	 	if(pickupNum!=0)
		  System.out.println("既能载客又能载货的车有:"+ this.pickupNum);
	 	//输出客车的数目
  	    if(saloonNum!=0)
	   	  System.out.println("只能载客的车有:"+ this.saloonNum);
  	    //输出货车的数目
		if(wagonNum!=0)
		  System.out.println("只能载货的车有:"+ this.wagonNum);
		//输出租车总价格
		System.out.println("总价格:"+ this.money);
	}

}

package com.ppcc.service;


import java.util.ArrayList;
import java.util.Scanner;

import com.ppcc.carData.CarBase;
import com.ppcc.carData.CarHold;

/**
 * 租车系统类
 * @author ppcc
 *
 */
public class Service {
	
	/**
	 * 车库
	 */
	CarHold carsHold;
	
	/**
	 * 接收输入
	 */
	Scanner sc=new Scanner(System.in);
	
	public Service() {
		this.carsHold = new CarHold();
	}

	/**
	 * 主界面
	 */
	public void mainMenu() {
		//提示语句
		System.out.println("欢迎使用嗒嗒租车系统!");
		
		//输入是否正确的标志
		boolean flag=false;
		//用户选择界面
		do{
			System.out.print("是否租车(Y.是/ N.否):");
			String sel=sc.next();
			//进入租车系统
			if(sel.equalsIgnoreCase("y")){
				System.out.println("===============================你可以租以下车===============================\n");
				carsHold=new CarHold();
				carsHold.showAllCar();
				flag=false;
			}
			//退出租车系统
			else if(sel.equalsIgnoreCase("n")){
				System.out.println("正在为你退出答答租车...");
				System.exit(0);
				flag=false;
			}
			else{
				System.out.println("请输入有效操作!");
				System.out.println("*****************************************");
				flag=true;
			}
		}while(flag);
	}
	
	/**
	 * 租车数目/具体车型
	 * @return 租的所有车
	 */
	public ArrayList<CarBase> rentCar(){
		System.out.println("\n============================================================================");
		int num=0,i=0,count=0;
		ArrayList<CarBase> rentArr=new ArrayList<CarBase>();
		System.out.print("请输入你租车的总数目:");
		count=sc.nextInt();
		if(count<0||count>20){
			System.out.println("你出租的车数量应在在0-20之间,请重新输入");
		    return rentCar();
		}
		System.out.println("");
		for(;i<count;){
			System.out.print("请输入第"+(i+1)+"辆车的序号:");
			num=sc.nextInt();
			if(num>0&&num<7){
				CarBase[] allCars=carsHold.getAllCar();
				rentArr.add(allCars[num-1]);
				i++;
			}else{
				System.out.println("输入无效序号,重新输入!");
			}
		}
		return rentArr;
	}

	/**
	 * 输入租车天数
	 * @return 租车天数
	 */
	 public int rentDay(){
		System.out.print("\n请输入你租车的总天数:");
		int day=sc.nextInt();
		if(day>0)
			return day;
		else{
			System.out.println("天数应大于0");
			return rentDay();
		}
	}
	
}

package com.ppcc.main;

import com.ppcc.service.Bill;
import com.ppcc.service.Service;

/**
 * 测试类
 * @author ppcc
 *
 */
public class Test {
	
	public static void main(String[] args) {
		Service user=new Service();
		user.mainMenu();
	    (new Bill(user.rentCar(),user.rentDay())).showBill();
	}

}



正在回答

1 回答

package com.ppcc.carData;

/**
 * 车的基本信息(父类)
 * @author ppcc
 *
 */
public abstract class CarBase {
	
	/**
	 * 车的序号
	 */
	protected int carNum;
	
	/**
	 * 车的名称
	 */
	protected String carName; 
    
    /**
     * 车出租的单价
     */
	protected int carRentMoney;
    
    /**
     * 获取车的序号
     * @return 车的序号
     */
	public int getCarNum() {
		return carNum;
	}
	
	/**
	 * 车的名称
	 * @return 车的名称
	 */
	public String getCarName() {
		return carName;
	}
	
	/**
	 * 车出租的单价
	 * @return 车出租的单价
	 */
	public int getCarRentMoney() {
		return carRentMoney;
	}
	
	/**
	 * 构造函数
	 * @param carNum 车的序号
	 * @param carName 车的名称
	 * @param carRentMoney 车出租的单价
	 */
	public CarBase(int carNum, String carName, int carRentMoney) {
		this.carNum = carNum;
		this.carName = carName;
		this.carRentMoney = carRentMoney;
	}
	
	/**
	 * 显示车的信息
	 */
	public abstract void showCarInfor();
}



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530801    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

交作业le。。。。

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号