Java实现答答租车系统
作者:希夏普 发布时间:2022-07-12 01:38:17
标签:java,租车系统
本文实例为大家分享了Java实现答答租车系统的具体代码,供大家参考,具体内容如下
项目需求:
基本界面需求:
and:
最后是把账单打印出来:
个人代码实现
基本思路:考虑到车辆之间的共性,设置一个父类Car, 子类MannedCar(载人), Truck(载货),BothCary(既载人又载货),三者继承父类Car的price, name属性, getName()方法, 同时重写getPersonNum, getGoodsNum方法。
Car.java:
package Car;
public abstract class Car {
protected int price;
protected String name;
protected int getPrice() {
return price;
}
protected String getName() {
return name;
}
public int getPersonNum() {
// TODO Auto-generated method stub
return 0;
}
public int getGoodsNum() {
// TODO Auto-generated method stub
return 0;
}
}
MannedCar.java:
package Car;
public class MannedCar extends Car {
private int personNum;
public MannedCar() {
this.personNum = 0;
this.price = 0;
this.name = "";
}
public MannedCar(int personNum, int price, String name) {
this.personNum = personNum;
this.price = price;
this.name = name;
}
@Override
public int getPersonNum() {
return personNum;
}
}
Truck.java:
package Car;
public class Truck extends Car{
private int goodsNum;
public Truck() {
this.price = 0;
this.goodsNum = 0;
this.name = "";
}
public Truck(int price, int goodsNum, String name) {
this.price = price;
this.goodsNum = goodsNum;
this.name = name;
}
@Override
public int getGoodsNum() {
return goodsNum;
}
}
BothCarry.java:
package Car;
public class BothCarry extends Car {
private int personNum;
private int goodsNum;
public BothCarry() {
this.personNum = 0;
this.goodsNum = 0;
this.name = "";
this.price = 0;
}
public BothCarry(int price, int personNum,
int goodsNum, String name) {
this.personNum = personNum;
this.goodsNum = goodsNum;
this.price = price;
this.name = name;
}
public int getPersonNum() {
return personNum;
}
public int getGoodsNum() {
return goodsNum;
}
}
系统:
CarSystem.java:
package Car;
import java.util.Scanner;
import java.util.ArrayList;
public class CarSystem {
private static String goodByeInfo = "欢迎再次使用本系统,再见!";
private static int dayBorrow;
public static void beginSystem() {
CarSystem.SystemWelcome();
Scanner scanner = new Scanner(System.in);
String userCommand = scanner.next();
switch(userCommand){
case "1":
CarSystem.getUserInput();
break;
case "0":
System.out.println(goodByeInfo);
break;
default:
System.out.println("输入错误..End running..");
System.exit(0);
break;
}
}
public static void SystemWelcome() {
System.out.println("欢迎使用答答租车系统:");
System.out.println("您是否要租车: 1-是 0-否");
}
public static void getUserInput() {
int numCarBorrow = 0;
ArrayList<Car> carList = new ArrayList<Car>(6);
carList.add(new MannedCar(4,500,"奥迪A4"));
carList.add(new MannedCar(4,400,"马自达6"));
carList.add(new BothCarry(450,4,2,"皮卡雪6"));
carList.add(new MannedCar(20,800,"金龙"));
carList.add(new Truck(400,4,"松花江"));
carList.add(new Truck(1000,20,"依维河"));
System.out.println("请输入您要租汽车的数量:");
Scanner sr = new Scanner(System.in);
numCarBorrow = sr.nextInt();
int[] carNumList = new int[numCarBorrow];
for(int i=0;i<numCarBorrow;i++) {
System.out.println("请输入第" + (i+1) + "辆车的序号:");
if (sr.hasNext()) {
carNumList[i] = sr.nextInt();
}
}
System.out.println("请输入租车天数:");
if (sr.hasNext()) {
dayBorrow = sr.nextInt();
}
sr.close();
StringBuilder manned = new StringBuilder();
int numOfManned = 0;
StringBuilder goods = new StringBuilder();
int numOfGoods = 0;
int totalCost = 0;
for(int i = 0;i < carNumList.length;i++) {
if(carNumList[i]>0 && carNumList[i] < 3 || carNumList[i]==4) {
manned.append(" ");
manned.append(carList.get(carNumList[i]-1).getName());
numOfManned += carList.get(carNumList[i]-1).getPersonNum();
}
else if(carNumList[i]==3) {
manned.append(" ");
manned.append(carList.get(carNumList[i]-1).getName());
goods.append(" ");
goods.append(carList.get(carNumList[i]-1).getName());
numOfManned += carList.get(carNumList[i]-1).getPersonNum();
numOfGoods += carList.get(carNumList[i]-1).getGoodsNum();
}
else {
goods.append(" ");
goods.append(carList.get(carNumList[i]-1).getName());
numOfGoods += carList.get(carNumList[i]-1).getGoodsNum();
}
totalCost += carList.get(carNumList[i]-1).getPrice();
}
//Output
System.out.println("您的账单:\n***可载人的车有:");
System.out.println(manned + " 共载人: " + numOfManned);
System.out.println("***载货的车有:\n" + goods + " 共载货 : " + numOfGoods + "吨");
System.out.println("***租车总价格: " + totalCost * dayBorrow + "元");
}
}
主程序:
package Car;
public class CarSystemTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
CarSystem.beginSystem();
}
}
运行结果:
来源:https://blog.csdn.net/Joseph_Cherry/article/details/60530978


猜你喜欢
- 最可怕的不是犯错而是一直都没发现错误,直到现在我才知道自己对类变量的理解有问题。大概可能也许是因为不常用类变量的原因吧,一直没有发现这个问题
- 前言 短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天
- 1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的
- springboot logback动态获取application的配置项在多环境的情况下,logback的日志路径需要进行针对性配置,也就
- MyBatis Generator简介MyBatis Generator(MBG)是MyBatis MyBatis 和iBATIS的代码生成
- 一、基本使用使用示例:// 初始化BigDecimal bd1=new BigDecimal("456");BigDec
- 思路不清晰的小伙伴可以先在es中把聚合代码写出来{ "aggs": { "
- 问题场景之前写过一篇文章: 2.@JvmOverloads快捷实现函数重载, 借助于Kotlin的默认参数+@JvmOverloads简化自
- 刚刚学习Android,用Gallery作了一个小demo,用来记录一下。package com.example.galleryex02;i
- 目录1、下列四项中,不属于数据库系统的特点的是( )2、一个学生可以同时借阅多本书,一本书只能由一个学生借阅,学生和图书之间为 ( ) 联系
- Eureka大白话解析笔记补录:1.Eureka 介绍Spring Cloud Eureka 是 Spring Clou
- 本文以实例形式讲述了C#应用BindingSource实现数据同步的方法,对C#数据库程序开发来说具有一定的参考借鉴价值。具体实现方法如下:
- 已知一副扑克牌有54张,去除大王和小王,剩余52张。在其中随机抽取4张牌,利用加减乘除进行计算得到24. 从A到10,他们的值分别为1到10
- 前言之前写过一篇介绍flutter集成到Android工程的文章,这次总结记录一下自己把flutter集成到iOS的流程,以及遇到的问题以及
- 效果:代码:XmlDocument xml = new XmlDocument(); &nbs
- 近日工程中,逐渐感觉到原来复制粘贴代码的笨重,突然想起以前有人和我说起过Git和SVN之类的版本管理工具。由于平时主要是写Java代码,所以
- HTTPclient保持长连接首先解释一下什么是长连接当我们向一台服务器发起请求时,我们需要和对方建立一条通道,去传输数据,所谓的短连接,就
- Android 处理OnItemClickListener时关于焦点颜色的设置问题  
- 这篇文章主要介绍了Springboot如何设置静态资源缓存一年,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 首先介绍一些乐观锁与悲观锁:悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个