java简单租车系统 慕课手记_Java第二季租车系统参考

首先创建一个汽车的抽象类CarStore,里面包含汽车的编号ID,车名Name以及价格Price,并且创建set和get方法。

package cw.lojako.carrent;

public abstract class CarStore {

private int id;

private String name;

private double price;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}

之后我们可以创建两个接口,载客量(CarryingPeople),载货量(CarryingGoods)。

这里引出一个问题:什么时候用接口呢?就是一个功能并不是所有对象都拥有时,可以把这个功能写进接口中,如若该对象需要此功能则实现该接口即可。就拿我们这个例子而言,货车的载货功能客车并不具备,所以需要用接口来实现。

接口(CarryingPeople)

package cw.lojako.carrent;

public interface CarryingPeople {

public void setPeople(int n);

public int getPeople();

}

接口(CarryingGoods)

package cw.lojako.carrent;

public interface CarryingGoods {

public void setGoods(int n);

public int getGoods();

}

第三步就是创建客车类,货车类,皮卡类并继承抽象类CarStore,实现相对应的接口。代码如下:

客车类(Car.java)

package cw.lojako.carrent;

public class Car extends CarStore implements CarryingPeople{

private int people;

//初始化值

public Car(int id,String name,double price,int people){

super.setId(id);

super.setName(name);

super.setPrice(price);

this.setPeople(people);

}

@Override

public void setPeople(int people) {

this.people = people;

}

@Override

public int getPeople() {

return people;

}

@Override

public String toString() {

return "编号:"+super.getId()+"\t"+"车名:"+super.getName()+"\t"+"价格:"+super.getPrice()+"元/天\t"+"载客量:"+this.getPeople()+"人";

}

}

货车类(Van)

package cw.lojako.carrent;

public class Van extends CarStore implements CarryingGoods {

private int goods;

//初始化值

public Van(int id,String name,double price,int goods){

super.setId(id);

super.setName(name);

super.setPrice(price);

this.setGoods(goods);

}

@Override

public void setGoods(int goods) {

this.goods = goods;

}

@Override

public int getGoods() {

return goods;

}

@Override

public String toString() {

return "编号:"+super.getId()+"\t"+"车名:"+super.getName()+"\t"+"价格:"+super.getPrice()+"元/天\t"+"载货量:"+this.getGoods()+"T";

}

}

皮卡类(PickUp)

package cw.lojako.carrent;

public class PickUp extends CarStore implements CarryingGoods,CarryingPeople{

private int goods;

private int people;

//初始化值

public PickUp(int id,String name,double price,int people,int goods){

super.setId(id);

super.setName(name);

super.setPrice(price);

this.setPeople(people);

this.setGoods(goods);

}

@Override

public void setGoods(int goods) {

this.goods = goods;

}

@Override

public int getGoods() {

return goods;

}

@Override

public void setPeople(int people) {

this.people = people;

}

@Override

public int getPeople() {

return people;

}

@Override

public String toString() {

return "编号:"+super.getId()+"\t"+"车名:"+super.getName()+"\t"+"价格:"+super.getPrice()+"元/天\t"+"载客量:"+this.getPeople()+"人"+" "+"载货量:"+this.getGoods()+"T";

}

}

最后一步是写主页面

package cw.lojako.carrent;

import java.util.Scanner;

public class RentSystem {

CarStore[] cars ={new Car(1,"奥迪A4",500,4),

new Car(2,"马自达",400,4),

new PickUp(3,"皮卡雪",450,4,20),

new Car(4,"保时捷",800,20),

new Van(5,"松花江",400,4),

new Van(6,"依维柯",1000,20)};

Scanner in = new Scanner(System.in);

public void rent(){

System.out.println("欢迎使用答答租车系统: \n是否租车??? 1(是) 0(否)");

int input = in.nextInt();

if(input==1){

System.out.println("您可租车的类型和价目表: "+"\n 序号"+"======"+"车名"+"==============="+"租金"+"==========="+"容量");

for(int i=0;i

System.out.println(cars[i]);

}

}else if(input==0){

System.out.println("欢迎下次光临,亲(づ ̄3 ̄)づ╭~");

System.exit(0);

}else{

System.out.println("程序自爆系统已经启动,要命的赶紧跑!!!");

System.exit(0);

}

String carName = " "; //车名

double totalPrice = 0; //租金总额

int totalGoods = 0; //总载货量

int totalPeople = 0; //总载客量

System.out.println("=============================================");

System.out.println("请输入您要租车的数量:");

int num = in.nextInt();

if(num<=0){

System.out.println("您不买进来干嘛,我反手就是一巴掌");

System.exit(0);

}

int count = 1;

int j;

while(count<=num){

do{ //do-while循环判断输入是否正确。

System.out.println("请输入第"+(count)+"辆车的序号:"+"\t"+"(温馨提示有效序号为1到"+cars.length+")");

j=in.nextInt()-1;

}while(j>=cars.length||j<0);

//获取对应序号的车名,租金,容量

if(cars[j].getClass()==Car.class){

System.out.println("车名:"+cars[j].getName()+"\t"+"载客量:"+((Car)cars[j]).getPeople());

totalPrice = cars[j].getPrice()+totalPrice;

totalPeople = ((Car)cars[j]).getPeople()+totalPeople;

}else if(cars[j].getClass()==Van.class){

System.out.println("车名:"+cars[j].getName()+"\t"+"载货量:"+((Van)cars[j]).getGoods()+"T");

totalPrice = cars[j].getPrice()+totalPrice;

totalGoods = ((Van)cars[j]).getGoods()+totalGoods;

}else if(cars[j].getClass()==PickUp.class){

System.out.println("车名:"+cars[j].getName()+"\t"+"载客量:"+((PickUp)cars[j]).getPeople()+"载货量:"+((PickUp)cars[j]).getGoods()+"T");

totalPrice = cars[j].getPrice()+totalPrice;

totalPeople = ((PickUp)cars[j]).getPeople()+totalPeople;

totalGoods = ((PickUp)cars[j]).getGoods()+totalGoods;

}

count++;

}

System.out.println("=============================================");

System.out.println("租一天的总金额是:");

System.out.println(totalPrice);

System.out.println("=============================================");

System.out.println("您要租的天数:");

int day = in.nextInt();

System.out.println("=============================================");

System.out.println("您的账单是:");

System.out.println("载客数"+totalPeople+"人"+"\t"+"载货量:"+totalGoods+"T"+"\n"+"总金额:"+totalPrice*day+"元");

System.out.println("欢迎下次光临,亲(づ ̄3 ̄)づ╭~");

}

public static void main(String[] args) {

RentSystem rs = new RentSystem();

rs.rent();

System.exit(0);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值