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 ...
随机推荐
- innodb mvcc实现机制
多版本并发控制 大部分的MySQL的存储 引擎,比如InnoDB,Falcon,以及PBXT并不是简简单单的使用行锁机制.它们都使用了行锁结合一种提高并发的技术,被称为MVCC(多版本并 发控制).M ...
- Failed at the @ watch script 'cross-env NODE_ENV=development 使用cross-env解决跨平台设置NODE_ENV的问题
今天在安装js依赖包时,根目录的package.json: { "private": true, "scripts": { "dev": & ...
- Flask 系列之 FlaskForm
通过使用 FlaskForm ,可以方便快捷的实现表单处理. 说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验 ...
- Java并发编程-CountDownLatch
基于AQS的前世今生,来学习并发工具类CountDownLatch.本文将从CountDownLatch的应用场景.源码原理解析来学习这个并发工具类. 1. 应用场景 CountDownLatch是并 ...
- JS中sort()方法的用法,参数以及排序原理
sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字符串Unicode码点.语法:arrayObject.sort(sortby):参数sortby可选.规定排序顺序.必须是函 ...
- C#基础(203)实例方法和重载方法总结,构造方法与实例方法总结,this关键字
c#方法的重载:分为实例方法重载和静态方法重载俩种 1.实例方法重载的调用特点 首先写三个Add方法和三个Sub方法 public int Add(int a,int b) { return a + ...
- Mysql 常用数据类型
double:浮点型,double(5,2) 表示最多5位,必须包含两位小数,最大值是 999.99 char:定长字符串类型,char(10) 表示必须放 10 的字节,没有就用空格补充 varch ...
- 解决在TP5中无法使用快递鸟的即时查询API
快递鸟的接口对接其实很简单,先去官网注册账号,登陆把基本信息填好,然后在产品管理中订购一下“物流查询”,免费,不过其他产品是收费,免费的有对接口调用频率限制,结合自己的应用流量够用就可以. 使用前复制 ...
- 「Android」系统架构概述
目录: 1.Android系统架构 2.Android类库 3.四大组件 --------------------------------------------------------------- ...
- Javascript数组系列三之迭代方法2
今天我们来继续 Javascript 数组系列的文章,上文 <Javascript数组系列二之迭代方法1> 我们说到一些数组的迭代方法,我们在开发项目实战的过程中熟练的使用可以大大提高我们 ...