java达达租车接口_Java第一个项目——达达租车系统v1
父类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相关推荐
- java达达租车接口_java达达租车系统,初学者,希望大家能给些批评建议,共同学习...
package com.edward; public class Vehicle {//父类 int id,people; String name; float price,cargo; } publ ...
- java达达租车接口_Java实现一个达达租车系统的步骤详解
本文介绍的是利用java编写一个控制台版的"达达租车系统",下面话不多说了,来看看详细实现方法吧. 实现目标 java编写一个控制台版的"达达租车系统" 实现功 ...
- java怎么学好 用好接口_Java公开课|Java的实现接口怎么用,这才是学习好Java必备的实用函数,你会吗...
[摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...
- java微信获取用户信息接口_java微信接口之二—获取用户组
一.微信获取用户组接口简介 1.请求 该请求也是GET方式请求.请求的url格式如下: https://api.weixin.qq.com/cgi-bin/groups/get?access_toke ...
- java i/o 的一些接口_Java I/O 操作的一些基本知识
1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),get ...
- java中什么是匿名接口_Java中接口(interface)和匿名类
//接口和匿名类之类. interface PCI { void start(); void stop(); } class wangka implements PCI//网卡,声卡都是pci接口. ...
- java如何调c 的接口_JAVA中调用C语言接口
写一个Java类,在这个类中包含了需要调用的本地方法的描述. //WinMsgBox.java package edu.netcom.jni; public class WinMsgBox { st ...
- java同一秒请求多次接口_java – 限制用户每秒发出有限的请求
环境: 基于 Java-EE的Web应用程序 问题: 需要限制用户在同一秒内发出超过5个(例如)请求(主要是BOT) 方案: 作为一个基本设计,我计划在应用范围内有2个同步Map Map> 字符 ...
- java移动端开发教程视频_Java Web开发-项目部分(中国移动科技综合管理系统)视频教程 - JavaWeb - Java - 私塾在线 - 只做精品视频课程服务...
第01节课:进行整体课程概览:参看其他项目,总结需要实现的功能:讲解本次项目练习要实现的功能:基本的业务功能介绍 第02节课:页面布局:框架使用:页面上菜单的使用:项目基本的数据字典:构建包结构和划分 ...
最新文章
- c语言可视化_这些算法可视化网站助你轻松学算法
- 风险管理、收尾管理和知识产品管理
- Java8 之 lambda 表达式、方法引用、函数式接口、默认方式、静态方法
- Leaflet中原生方式实现测距
- Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例
- javaScript入门基础说明
- C++学习之路 | PTA乙级—— 1029 旧键盘 (20 分)(精简)
- 进程的调度策略与进程的状态
- Githup高级搜索
- Spring5+CXF整合开发REST之一次坑旅
- iOS-自定义导航栏后侧滑返回功能失效
- svn创建分支和合并
- VARCHART XGantt教程之功能介绍
- SRCNN-pytoch代码讲解
- C语言 execve()函数使用方法
- MVC框架实现用户的登录注册功能
- python opencv轮廓检测_python opencv 来对图片(苹果)的轮廓(最大轮廓进行识别)进行...
- node-telegram-bot-api 基于Nodejs的TG机器人
- java.lang.IllegalArgumentException: java.security.InvalidKeyException: Illegal key siz
- 油猴脚本 from greasyfork
热门文章
- 怎么让程序后台运行_CPU中的程序是怎么运行起来的?
- baidumap vue 判断范围_百度地图 vue-baidu-map
- 直方图尖峰python_Python系统学习 - 绘制直方图
- 属于web框架的python库_(2017)我不建议使用的Python Web框架
- system.gc会立即执行垃圾回收吗_JVM基础到实战03-垃圾回收概念
- 搭建集群时的问题总结
- UVA 839 Not so Mobile
- PHP基础3_数组,循环及函数
- OpenCV积分图函数:integral ()详解
- IOS之AutoLayout框架的使用