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();
  }

}

运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现租车系统

    今天用JAVA编写了一个租车系统,过程中主要遇到的两个问题: 1.输出数组信息问题: 在得到cars[]数组后,要生成租车信息表,目前有两种思路:一是用循环输出:二是用Arrays.toString()输出数组信息. 用toString()方法输出数组输出--@--形式的哈希码地址,这里需要对toString()方法进行重写,在数组涉及到的类中进行重写. 不过用第二种方法输出的其实还是一个数组,形式如图所示.那么问题来了--还有没有更好的输出方法呢? 2.父类方法不能访问子类成员变量: 本来在父

  • Java实现一个达达租车系统的步骤详解

    本文介绍的是利用java编写一个控制台版的"达达租车系统",下面话不多说了,来看看详细实现方法吧. 实现目标 java编写一个控制台版的"达达租车系统" 实现功能 1.展示所有可租车辆 2.选择车型.租车量 3.展示租车清单,包含:总金额.总载货量及其车型.总载人量及其车型 三大分析 数据模型分析 业务模型分析 显示和流程分析 实现效果 租车页面 租车账单 实现思路 首先定义一个Car类,它包含基本功能:车名.载客数.载货量.日租金.接着创建三个小类,分别是客车类.

  • java实现简单租车系统

    本文实例为大家分享了java实现租车系统Demo,供大家参考,具体内容如下 这也是参考了mooc上的一个基础项目,所以拿来写一下.不过我的Demo肯定有不好或者错误的地方,欢迎指出 1.项目功能/需求 a.展示所有可租车辆 b.选择车型.租车量 c.展示租车清单,包含:总金额.总载货量.总载客量 2.项目系统UML图 3.项目源码Demo Car类 package Car.rental; public class Car { private String name; private int re

  • Java实现答答租车系统

    本文实例为大家分享了Java实现答答租车系统的具体代码,供大家参考,具体内容如下 项目需求: 基本界面需求: and: 最后是把账单打印出来: 个人代码实现 基本思路:考虑到车辆之间的共性,设置一个父类Car, 子类MannedCar(载人), Truck(载货),BothCary(既载人又载货),三者继承父类Car的price, name属性, getName()方法, 同时重写getPersonNum, getGoodsNum方法. Car.java: package Car; public

  • Java从零编写汽车租赁系统全程分析

    目录 覆盖知识 项目需求 设计步骤 开发思路 类的属性和方法 代码展示 效果展示 覆盖知识 程序基本概念.数据类型.流程控制.顺序.选择 .循环.跳转语句.变量.类.方法.继承.多态. 掌握数据库.JDBC.三层架构等相关知识. 掌握Druid连接池.Apache的DBUtils使用 . 项目需求 某汽车租赁公司出租多种轿车和客车,出租费用以日为单位计算. 出租车型及信息如下表所示: 车型 具体信息 日租金 折扣 轿车 宝马X6(京NY28588) 800 days>7天9折 days>30天

  • Java实现租车管理系统

    需求: 完成一个和用户互动的租车管理系统,当中包括基础的增删改查,以及输出实时地热度排行榜! 功能设计: 在工程的包com.Test02中,搭建4个类,分别是程序启动(carSysStart).控制台(carConsole).数据存储内存库(carData_base).系统的功能类(carFunction) 具体代码如下: 1.程序启动 package com.Test02; public class carSysStart { public static void main(String[]

  • 使用Python实现租车计费系统的两种方法

    要求: #出租车计费************************************************************************************** # 要求:循环输入公里数,自动计算所需费用,费用计算公式如下 # 0.公里数小于等于0时输出: #   请输入正确的公里数进行计算,程序结束 # 1.出租车起步价8元,包含2公里 # 2.超过两公里的部分,每公里收取1.2元 # 3.超过12公里的部分,每公里收取1.5元 方法一: while True:

  • 基于java实现租车管理系统

    概述 基于java + swing + JFrame 的图书馆管理系统,租车,还车,管理员管理用户,付款等. 部分代码 public class Login extends JFrame { private static final long serialVersionUID = 1L; /** * 登录窗体 */ public Login() { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // 设置顶部提示文字和主窗

  • Java毕业设计实战之共享租车信息管理系统的实现

    基于servlet+jsp+jdbc的后台管理系统,包含5个模块:汽车账户部管理.租车账户部管理.汽车信息管理表.租车记录表.租车租聘表.功能完整,均能实现增删查改. 运行环境: jdk8+tomcat8.5+mysql5.7+Eclipse 项目技术: servlet+jsp+jdbc+easyui+jquery       主页登陆注册业务: public class ForeServlet extends BaseForeServlet { /** * 显示主页 * * @param re

  • java实现简单的汽车租赁系统

    本文实例为大家分享了java实现简单的汽车租赁系统的具体代码,供大家参考,具体内容如下 欢迎进入xx汽车租赁公司请输入用户名请输入密码(用户名默认是名字缩写,密码是123,将登陆模块封装到方法中去调用方法)请输入您的操作1)查看现在车库中的所有车辆信息2)租赁汽车3)往车库中添加汽车4)修改汽车租赁价格信息 用switch去判断操作 类分析 代码: package com.youjiuye.bms; public class CRMS {     public static void main(

随机推荐