二嗨租车系统java_java第二季租车系统作业

用到的知识点:

1.封装

2.继承

3.多态

4.对象数组

package com.imooc;

public abstract class Car {

private int orderNum;//序号

private String name;//车的名称

double money;//租金

private int mannedCapacity;//载人量

private int cargoVolume;//载客量

public int getOrderNum() {

return orderNum;

}

public void setOrderNum(int orderNum) {

this.orderNum = orderNum;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getMoney() {

return money;

}

public void setMoney(double money) {

this.money = money;

}

public int getMannedCapacity() {

return mannedCapacity;

}

public void setMannedCapacity(int mannedCapacity) {

this.mannedCapacity = mannedCapacity;

}

public int getCargoVolume() {

return cargoVolume;

}

public void setCargoVolume(int cargoVolume) {

this.cargoVolume = cargoVolume;

}

}

package com.imooc;

//载人

public class Manned extends Car {

public Manned(int orderNum, String name, double money, int mannedCapacity) {

super.setOrderNum(orderNum);

super.setName(name);

super.setMoney(money);

super.setMannedCapacity(mannedCapacity);

}

@Override

public String toString() {

return super.getOrderNum() + ".\t" + super.getName() + "\t" + super.getMoney() + "元/天\t载人:" + super.getMannedCapacity() + "人";

}

}

package com.imooc;

//皮卡

public class Pickup extends Car {

public Pickup(int orderNum, String name, double money, int mannedCapacity, int cargoVolume) {

super.setOrderNum(orderNum);

super.setName(name);

super.setMoney(money);

super.setMannedCapacity(mannedCapacity);

super.setCargoVolume(cargoVolume);

}

@Override

public String toString() {

return super.getOrderNum() + ".\t" + super.getName() + "\t" + super.getMoney() + "元/天\t载人:"

+ super.getMannedCapacity() + "人 载货:" + super.getCargoVolume() + "吨";

}

}

package com.imooc;

//载货

public class Truck extends Car {

public Truck(int orderNum, String name, double money, int cargoVolume) {

super.setOrderNum(orderNum);

super.setName(name);

super.setMoney(money);

super.setCargoVolume(cargoVolume);

}

@Override

public String toString() {

return super.getOrderNum() + ".\t" + super.getName() + "\t" + super.getMoney() + "元/天\t载货:" + super.getCargoVolume() + "吨";

}

}

package com.imooc;

import java.util.Scanner;

public class Test3 {

public static void main(String[] args) {

System.out.println("欢迎使用哒哒租车系统:");

System.out.println("您是否要租车:1是 0否");

Scanner sc = new Scanner(System.in);

if ("0".equals(sc.nextLine())) {

System.exit(0);// 关闭当前进程。

}

Car[] c = { new Manned(1, "奥迪A4", 500, 4), new Manned(2, "马自达6", 400, 4), new Pickup(3, "皮卡雪6", 450, 4, 2),

new Manned(4, "金龙", 800, 20), new Truck(5, "松花江", 400, 4), new Truck(6, "依维柯", 1000, 20) };

System.out.println("序号汽车名称租金容量");

for (int i = 0; i < c.length; i++) {

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

}

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

int num = sc.nextInt();

//将输入的序号放到数组中

int[] arr = new int[num];

for (int i = 0; i < arr.length; i++) {

System.out.println("请输入第" + (i + 1) + "辆车的序号:");

arr[i] = sc.nextInt();

}

System.out.println("请输入租车天数:");

int dayNum = sc.nextInt();//租车天数

int mannedSum =0;//载人总数初始值

int cargoSum=0;//载货总数初始值

double priceSum=0;//租车总价格

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

System.out.println("***可载人的车有:");

//打印载人的车;用来求载人量和总价格

for (int i = 0; i < arr.length; i++) {

//boolean result = obj instanceof Class

//其中 obj 为一个对象,Class 表示一个类或者一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。

//判断对象数组中的对象 为载人的类或皮卡的类

if(c[(arr[i]-1)] instanceof Manned ||c[(arr[i]-1)] instanceof Pickup){

System.out.print(c[(arr[i]-1)].getName()+" ");

mannedSum+=c[(arr[i]-1)].getMannedCapacity();

}

priceSum+=c[(arr[i]-1)].getMoney();

}

System.out.println("共载人:"+mannedSum+"人");

System.out.println("***可载货的车有:");

//打印载货的车;用来总求载货量

for (int i = 0; i < arr.length; i++) {

//同理上述

if(c[(arr[i]-1)] instanceof Truck ||c[(arr[i]-1)] instanceof Pickup){

System.out.print(c[(arr[i]-1)].getName()+" ");

cargoSum+=c[(arr[i]-1)].getCargoVolume();

}

}

System.out.println("共载货:"+cargoSum+"吨");

System.out.println("***租车总价格:"+(priceSum*dayNum)+"元");

}

}

结果:

欢迎使用哒哒租车系统:

您是否要租车:1是 0否

1

序号汽车名称租金容量

1.奥迪A4500.0元/天载人:4人

2.马自达6400.0元/天载人:4人

3.皮卡雪6450.0元/天载人:4人 载货:2吨

4.金龙800.0元/天载人:20人

5.松花江400.0元/天载货:4吨

6.依维柯1000.0元/天载货:20吨

请出入您要租汽车的数量:

4

请输入第1辆车的序号:

1

请输入第2辆车的序号:

2

请输入第3辆车的序号:

3

请输入第4辆车的序号:

4

请输入租车天数:

3

您的账单:

***可载人的车有:

奥迪A4 马自达6 皮卡雪6 金龙 共载人:32人

***可载货的车有:

皮卡雪6 共载货:2吨

***租车总价格:6450.0元

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值