Java学习笔记(四)——好记性不如烂键盘(答答租车)
根据所学知识,编写一个控制台版的租车系统。
功能:
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学习笔记(四)——好记性不如烂键盘(答答租车)的更多相关文章
- Java学习笔记四---打包成双击可运行的jar文件
写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...
- Java学习笔记四:Java的八种基本数据类型
Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...
- Java学习笔记四——运算符
算术运算符 加减乘除(+.-.*./)就不说了. 求余运算符% 描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数 注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可 ...
- Java 学习笔记 (四) Java 语句优化
这个问题是从headfirst java看到的. 需求: 一个移动电话用的java通讯簿管理系统,要求最有效率的内存使用方法. 下面两段程序的优缺点,哪个占用内存更少. 第一段: Contact[]c ...
- Java学习笔记四:三目运算符与字符串连接符等
一 .三目运算符与自增自减 GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/OperPrac02.java 条件运算符由 ...
- Java学习笔记四
1.简介.进程和线程:简单的说就是进程负责为程序开辟内存空间,线程负责具体的执行单元(执行路径). 一个进程中可以有多个执行路径,称为多线程.CPU一次只能执行一个进程,但是一个进程内部可以有多个线程 ...
- 面向对象三大特征之封装与static——(Java学习笔记四)
面向对象 编程本质:以类的方式组织代码,以对象的方式组织(封装)数据 对象:具体的事物,某个类的对象(实例) 类:是对对象的抽象,用于描述同一类型的对象的一个抽象概念 对象和类的关系:特殊到一 ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
随机推荐
- [leetcode]984. 不含 AAA 或 BBB 的字符串
给定两个整数 A 和 B,返回任意字符串 S,要求满足: S 的长度为 A + B,且正好包含 A 个 'a' 字母与 B 个 'b' 字母: 子串 'aaa' 没有出现在 S 中: 子串 'bbb' ...
- Java类加载机制(加载、验证、准备、解析、初始化)
如下图所示,Java的类加载机制主要分为三个部分,分别为加载.链接.初始化.其中链接又分为三个小部分--验证.准备.解析. 加载--在经过对Java代码进行编译后,JVM将Java类编译后的二进制文件 ...
- 1.写页面 2.css的继承属性有哪些 3.margin对布局的影响
1. sparent 透明的 2. placeholder 提示语 写页面 1.搞清结构层次 2. 保证模块化 让它们之间不能收到影响. (1) 元素性质 (2)标准流 浮动带来的脱离文档流撑不起父级 ...
- Verification and validation
Verification Verification is the process to make sure the product satisfies the conditions imposed a ...
- Flask 系列之 LoginManager
说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 通过使用 flask-login 进行会话管理的相关操作 ...
- #WEB安全基础 : HTML/CSS | 0x2初识a标签
教你点厉害玩意,尝尝HTML的厉害! 我为了这节课写了一些东西,你来看看
- input file图片上传
<div class="div-title"> <h5>图片上传</h5> <div class="photo-box" ...
- Java Filter防止sql注入攻击
原理,过滤所有请求中含有非法的字符,例如:, & < select delete 等关键字,黑客可以利用这些字符进行注入攻击,原理是后台实现使用拼接字符串,案例:某个网站的登入验证的SQ ...
- Android为TV端助力 Service 两种启动方式的区别
服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务.这两个方法都 可以启动Service,但是它们的使用场合有所不同.使 ...
- Docker Data Center系列(三)- DTR安装指南
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 成为UCP管理的 ...