父类Vehicle

package com.dada;

public class Vehicle {

protected String name;//车辆名称

protected int price;//单天租车价格

protected int passengers;//载客数

protected int goods;//载货量

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public int getPassengers() {

return passengers;

}

public void setPassengers(int passengers) {

this.passengers = passengers;

}

public int getGoods() {

return goods;

}

public void setGoods(int goods) {

this.goods = goods;

}

//显示车辆信息

public void showInfo() {

System.out.println("显示车辆信息");

}

}

子类-载人汽车 PassengerVehicle

package com.dada;

//客运汽车

public class PassengerVehicle extends Vehicle {

public PassengerVehicle(String name, int passengers, int price) {

// TODO Auto-generated constructor stub

this.name = name;

this.passengers = passengers;

this.price = price;

this.goods = 0;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载人:" + passengers + "人");

}

}

子类-载货汽车 GoodsVehicle

package com.dada;

//货运汽车

public class GoodsVehicle extends Vehicle {

public GoodsVehicle(String name, int goods, int price) {

this.name = name;

this.goods = goods;

this.price = price;

this.passengers = 0;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载货:" + goods + "吨");

}

}

子类-皮卡车 PickupTruck

package com.dada;

//皮卡车,客货两用

public class PickupTruck extends Vehicle {

public PickupTruck(String name, int passengers, int goods, int price) {

super();

this.name = name;

this.passengers = passengers;

this.goods = goods;

this.price = price;

}

@Override

//显示车辆信息

public void showInfo() {

System.out.println(name + "\t" + price + "元/天\t载人:" + passengers + "人 载货:" + goods + "吨");

}

}

租车类(主程序) HireVehicle

package com.dada;

import java.util.Scanner;

public class HireVehicle {

private static Vehicle v[];// 保存所有车辆信息

private static int vehicleNums; // 记录客户要租的车辆数

private static int days; // 记录租车天数

private static int hiredVehicleNo[]; // 记录客户选择的车辆编号,数组长度即所租车辆数

// 初始化所有车辆信息

public static void initialVechicles(){

// 初始化车辆信息

Vehicle localV[] = {

new PassengerVehicle("奥迪A4", 4, 500),

new PassengerVehicle("马自达6", 4, 400),

new PickupTruck("皮卡雪6", 4, 2, 450),

new PassengerVehicle("金龙", 20, 800),

new GoodsVehicle("松花江", 4, 400),

new GoodsVehicle("依维柯", 20, 1000)

};

v = localV;

}

// 显示所有车辆信息

public static void listVehicles(Vehicle v[]) {

if (v != null) {

System.out.println("您可租车的类型及其价目表:");

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

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

System.out.print((i + 1) + ".\t");

v[i].showInfo();

}

}

}

// 填写租车订单

public static void order() {

Scanner input = new Scanner(System.in);

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

vehicleNums = input.nextInt();// 记录客户要租的车辆数

int localHiredVehicleNo[] = new int[vehicleNums];// 记录客户选择的车辆编号

for (int i = 0; i < vehicleNums; i++) {

System.out.println("请输入第" + (i + 1) + "辆车的序号:"); // 使用i+1以符合用户的使用习惯,从1开始数

localHiredVehicleNo[i] = input.nextInt();

}

hiredVehicleNo = localHiredVehicleNo; // 引用传递给成员变量,以便供其它方法使用

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

days = input.nextInt();// 记录租车天数

input.close();

}

// 输出账单

public static void showOrder() {

int tPassenger = 0;// 总载客人数

float tGoods = 0;// 总载重量

double tPrice = 0;// 1天的租车总价

//租车数大于0,才输出账单,否则说明没有租车,输出提示没有订单信息。

if (hiredVehicleNo.length > 0) {

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

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

//先遍历所有租用的车辆,寻找能载客的车辆信息,输出车辆名称,并统计出总载客人数和单日租金总额

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

int j = hiredVehicleNo[i] - 1;//读取所租车辆编号

if ((v[j] instanceof PassengerVehicle) || (v[j] instanceof PickupTruck)) { //如果是载客汽车或皮卡车

tPassenger += v[j].getPassengers();//累加总载客人数

System.out.print(" " + v[j].getName());//输出车辆名称

tPrice += v[j].getPrice();//累加单日租金

}

}

System.out.println(" 共载人:" + tPassenger + "人");//输出总载客人数

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

//再次遍历所有租用的车辆,寻找能载货的车辆信息,输出车辆名称,并统计出总载货量和单日租金总额

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

int j = hiredVehicleNo[i] - 1;//读取所租车辆编号

if (v[j] instanceof GoodsVehicle) { //如果是载货车辆

tGoods += v[j].getGoods();//累加总载货量

System.out.print(" " + v[j].getName());//累加总载货量

tPrice += v[j].getPrice();//累加单日租金

} else if (v[j] instanceof PickupTruck) {//如果是皮卡车

tGoods += v[j].getGoods();//累加总载货量

System.out.print(" " + v[j].getName());//累加总载货量。因为之前统计载客车辆时已累加皮卡车的租金,所以此次不应再累加租金。

}

}

System.out.println(" 共载货:" + tGoods + "吨");//输出总载货量

System.out.println("***租车总价格:" + (tPrice * days) + "元");//输出租金总额(单日租金总额*天数)

} else {

System.out.println("没有订单信息。");

}

}

// 租车

public static void hire(){

// 显示欢迎信息,并询问是否租车

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

int flagHire = 0;// 是否要租车标记,1租车,0不租

Scanner input = new Scanner(System.in);

flagHire = input.nextInt();

if (flagHire == 0) {

System.out.println("欢迎下次光临"); // 不租

} else { // 租车

// 显示所有车辆信息

HireVehicle.listVehicles(v);

// 下订单

HireVehicle.order();

// 显示账单

HireVehicle.showOrder();

}

input.close();

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//初始化车辆信息

HireVehicle.initialVechicles();

//租车

HireVehicle.hire();

}

}

java达达租车接口_Java第一个项目——达达租车系统v1相关推荐

  1. java达达租车接口_java达达租车系统,初学者,希望大家能给些批评建议,共同学习...

    package com.edward; public class Vehicle {//父类 int id,people; String name; float price,cargo; } publ ...

  2. java达达租车接口_Java实现一个达达租车系统的步骤详解

    本文介绍的是利用java编写一个控制台版的"达达租车系统",下面话不多说了,来看看详细实现方法吧. 实现目标 java编写一个控制台版的"达达租车系统" 实现功 ...

  3. java怎么学好 用好接口_Java公开课|Java的实现接口怎么用,这才是学习好Java必备的实用函数,你会吗...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  4. java微信获取用户信息接口_java微信接口之二—获取用户组

    一.微信获取用户组接口简介 1.请求 该请求也是GET方式请求.请求的url格式如下: https://api.weixin.qq.com/cgi-bin/groups/get?access_toke ...

  5. java i/o 的一些接口_Java I/O 操作的一些基本知识

    1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),get ...

  6. java中什么是匿名接口_Java中接口(interface)和匿名类

    //接口和匿名类之类. interface PCI { void start(); void stop(); } class wangka implements PCI//网卡,声卡都是pci接口. ...

  7. java如何调c 的接口_JAVA中调用C语言接口

    写一个Java类,在这个类中包含了需要调用的本地方法的描述. //WinMsgBox.java package edu.netcom.jni; public class WinMsgBox  { st ...

  8. java同一秒请求多次接口_java – 限制用户每秒发出有限的请求

    环境: 基于 Java-EE的Web应用程序 问题: 需要限制用户在同一秒内发出超过5个(例如)请求(主要是BOT) 方案: 作为一个基本设计,我计划在应用范围内有2个同步Map Map> 字符 ...

  9. java移动端开发教程视频_Java Web开发-项目部分(中国移动科技综合管理系统)视频教程 - JavaWeb - Java - 私塾在线 - 只做精品视频课程服务...

    第01节课:进行整体课程概览:参看其他项目,总结需要实现的功能:讲解本次项目练习要实现的功能:基本的业务功能介绍 第02节课:页面布局:框架使用:页面上菜单的使用:项目基本的数据字典:构建包结构和划分 ...

最新文章

  1. c语言可视化_这些算法可视化网站助你轻松学算法
  2. 风险管理、收尾管理和知识产品管理
  3. Java8 之 lambda 表达式、方法引用、函数式接口、默认方式、静态方法
  4. Leaflet中原生方式实现测距
  5. Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例
  6. javaScript入门基础说明
  7. C++学习之路 | PTA乙级—— 1029 旧键盘 (20 分)(精简)
  8. 进程的调度策略与进程的状态
  9. Githup高级搜索
  10. Spring5+CXF整合开发REST之一次坑旅
  11. iOS-自定义导航栏后侧滑返回功能失效
  12. svn创建分支和合并
  13. VARCHART XGantt教程之功能介绍
  14. SRCNN-pytoch代码讲解
  15. C语言 execve()函数使用方法
  16. MVC框架实现用户的登录注册功能
  17. python opencv轮廓检测_python opencv 来对图片(苹果)的轮廓(最大轮廓进行识别)进行...
  18. node-telegram-bot-api 基于Nodejs的TG机器人
  19. java.lang.IllegalArgumentException: java.security.InvalidKeyException: Illegal key siz
  20. 油猴脚本 from greasyfork

热门文章

  1. 怎么让程序后台运行_CPU中的程序是怎么运行起来的?
  2. baidumap vue 判断范围_百度地图 vue-baidu-map
  3. 直方图尖峰python_Python系统学习 - 绘制直方图
  4. 属于web框架的python库_(2017)我不建议使用的Python Web框架
  5. system.gc会立即执行垃圾回收吗_JVM基础到实战03-垃圾回收概念
  6. 搭建集群时的问题总结
  7. UVA 839 Not so Mobile
  8. PHP基础3_数组,循环及函数
  9. OpenCV积分图函数:integral ()详解
  10. IOS之AutoLayout框架的使用