根据所学知识,编写一个控制台版的租车系统。 
功能: 
1、 展示所有可租车辆 
2、 选择车型、租车辆 
3、 展示租车清单,包含:总金额、总载货量及其车型、总载人量及其车型


代码参考imooc中Java课程Demo编写


父类Car:

package com.RentCar;

public class Car {
    String name;
    int money;
    int people;
    int goods;
    public String getName() {
        return name;
        }
    public int getMoney() {
        return money;
        }
    public int getPeople() {
        return people;
        }
    public int getGoods() {
        return goods;
        }

}

  

Car 的子类——载人汽车CarPeople:

package com.RentCar;

public class CarPeople extends Car{
    String name;
    int money;
    int people;
    public CarPeople(String name,int money,int people){
        this.name = name;
        this.money = money;
        this.people = people;
        }
    @Override
    public String toString() {
        return this.name + "" + this.money + this.people;
        }
    public String getName() {
        return name;
        }
    public int getMoney() {
        return money;
        }
    public int getPeople() {
        return people;
        }
}

  

Car 的子类——载货汽车CarGoods:

package com.RentCar;

public class CarGoods extends Car {
    String name;
    int money;
    int goods;
    public CarGoods(String name,int money,int goods){
        this.name = name;
        this.money = money;
        this.goods = goods;
        }
    @Override
    public String toString() {
        return this.name + this.money + this.goods;
        }
    public String getName() {
        return name;
        }
    public int getMoney() {
        return money;
        }
    public int getGoods() {
        return goods;
        }
}

  

Car 的子类——载人载货CarAll:

package com.RentCar;

public class CarAll extends Car {
    String name;
    int money;
    int people;
    int goods;
    public CarAll(String name,int money,int people,int goods){
        this.name = name;
        this.money = money;
        this.people = people;
        this.goods = goods;
        }
    @Override
    public String toString() {
        return this.name + this.money + this.people + this.goods;
        }
    public String getName() {
        return name;
        }
    public int getMoney() {
        return money;
        }
    public int getPeople() {
        return people;
        }
    public int getGoods() {
        return goods;
        }
}

  

主函数:

package com.RentCar;
import java.util.Scanner; 

public class CarRentingSystem {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        while (true) {
            System.out.println("你到底要不要租虎哥的车?(租/不租)");
            Scanner scanner = new Scanner(System.in);
            String input = scanner.next();
            if(input.equals("租")){
                Car[] cars = {new CarPeople("奥迪A4",400,4),new CarPeople("马自达",400,4),new CarAll("皮卡6",450,4,20), new CarPeople("金龙",800,20), new CarGoods("松花江",400,4),new CarGoods("依维柯",1000,20)
                        };
                System.out.println("下面是您能租的车:");
                System.out.println("序号 品牌 价格 载人/货量");
                for(int i = 0;i < cars.length;i++){
                    System.out.printf("%-3d %-6s% 6d %3d个人,%d吨货",i+1,cars[i].getName(),cars[i].getMoney(),cars[i].getPeople(),cars[i].getGoods());
                    }
                System.out.println("你想要租几辆啊:");
                int number = scanner.nextInt();
                Car[] chooseCars = new Car[number];
                Car[] chooseCarsPeople = new Car[number];
                int CCPNum = 0;//选择的载人汽车的数目
                Car[] chooseCarsGoods = new Car[number];
                int CCGNum = 0;//选择的载货汽车的数目
                //定义总共的钱数,载客量,载货量
                int money = 0;
                int people = 0;
                int goods = 0;
                for(int i = 0,j = 1;i < number;i++,j++){
                    System.out.println("请输入第" + j + "辆车的序号:");
                    int carNum = scanner.nextInt() - 1;
                    try { chooseCars[i] = cars[carNum];
                    money += chooseCars[i].getMoney();
                    people += chooseCars[i].getPeople();
                    goods += chooseCars[i].getGoods();
                    if(chooseCars[i].getPeople() != 0){
                        chooseCarsPeople[CCPNum] = chooseCars[i]; CCPNum++;
                        }
                    if(chooseCars[i].getGoods() != 0){
                        chooseCarsGoods[CCGNum] = chooseCars[i]; CCGNum++;
                        }
                    }
                    catch (Exception e) {
                        System.out.println("说了几遍了,输入1~6的序号!\n"); i--; j--;
                        }
                    }
                System.out.println("你想要租几天啊:");
                int dayNum = scanner.nextInt();
                System.out.printf("你一共花了:%d元\n您总共租了%d辆车,租赁%d天\n",money*dayNum,number,dayNum);
                System.out.println("其中,载人的车有" + CCPNum + "辆");
                try { for(Car CarsPeople:chooseCarsPeople){
                    System.out.println(CarsPeople.getName());
                    }
                }
                catch (Exception e) { 

                }
                System.out.printf("总载客量:%d人\n",people*dayNum);
                System.out.println("载货的车有" + CCGNum + "辆");
                try { for(Car CarsGoods:chooseCarsGoods){
                    System.out.println(CarsGoods.getName());
                    }
                }
                catch (Exception e) { }
                System.out.printf("总载货量:%d吨\n",goods*dayNum);
                break;
                }
            else if(input.equals("不租")){
                System.out.println("不租你过来干嘛!");
                break;
                }
            else {
                System.out.println("你输错了大兄弟!\n");
                }
            }
        System.out.println("慢走不送!");
            }
    }

  

Java学习笔记(四)——好记性不如烂键盘(答答租车)的更多相关文章

  1. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  2. Java学习笔记四:Java的八种基本数据类型

    Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...

  3. Java学习笔记四——运算符

    算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...

  4. Java 学习笔记 (四) Java 语句优化

    这个问题是从headfirst java看到的. 需求: 一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法. 下面两段程序的优缺点,哪个占用内存更少. 第一段: Contact[]c ...

  5. Java学习笔记四:三目运算符与字符串连接符等

    一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...

  6. Java学习笔记四

    1.简介.进程和线程:简单的说就是进程负责为程序开辟内存空间,线程负责具体的执行单元(执行路径). 一个进程中可以有多个执行路径,称为多线程.CPU一次只能执行一个进程,但是一个进程内部可以有多个线程 ...

  7. 面向对象三大特征之封装与static——(Java学习笔记四)

    面向对象     编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...

  8. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  9. 零拷贝详解 Java NIO学习笔记四(零拷贝详解)

    转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...

随机推荐

  1. python基础学习(十三)函数进阶

    目录 1. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 2. 函数的返回值进阶 例子:显示当前的湿度和温度 例子:交 ...

  2. wp rest api 授权方法步骤(使用JWT Authentication插件)

    环境:wordpress 4.7 以上,WP自带的 rest api v2 目标:使用javascript与wp rest api交互,其中编辑.新增.删除等需要Oauth认证授权 方法: 步骤一:  ...

  3. nodemailer + express + h5 拖拽文件上传 实现发送邮件

    一.部署 1.部署Express 2.准备一个邮箱并开始SMTP服务 二.服务器端 三.客户端 四.效果:

  4. Android联系人列表实现

    演示 汉字转拼音 String pinyingStr = PinyinHelper.getShortPinyin( String.valueOf(charSequence).toLowerCase() ...

  5. 在centos7上编译安装nginx

    题前,先放一个有图有真相的博客链接:https://www.cnblogs.com/zhang-shijie/p/5294162.html 虽然别人说的很详细,但还是记录一下 1.VMWare Wor ...

  6. Git 结合Git使用Bitbucket进行代码版本管理流程规范与实践

    结合Git使用Bitbucket进行代码版本管理流程规范与实践   By:授客 QQ:1033553122   目录 目录 1 一. 测试环境 2 二. 新建项目 2 三. 新建公有版本库 3 四. ...

  7. Unity编译时找不到AndroidSDK的问题 | Unable to list target platforms(转载)

    原文:http://www.jianshu.com/p/fe4c334ee9fe 现象 在用 Unity 编译 Android 平台的应用时,遇到 Unable to list target plat ...

  8. Mac上一条命令搭建web服务器

    实际测试工作中偶尔会需要搭建Web服务器环境,由于Mac OS X自带了Apache和PHP环境,只需要简单的启动就可以. 开启Apache 开启Web服务器的方法有两种(默认启动端口号是80): 打 ...

  9. (一)Maven简介

    Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”,是一个跨平台的项目管理工具.Maven主要服务于基于Java平台的项目构建.依赖管理和项目信息管理. 构建(build)是每一 ...

  10. Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when t

    Question SSIS包从A服务器搬迁到B服务器,运行报错 Description: Failed to decrypt protected XML node "DTS:Password ...