首先创建一个父类
package com.imooc;
//初始化四个值
public class Car {
String name;//车辆名称
int price;//租金
int number;//人数/吨数
int weight;//车型总量
}
创建一个货车类
package com.imooc;
//创建一个货车类
public class Cargo extends Car {
Cargo(String name, int price, int weight) {
this.name = name;// 要有一个名字
this.price = price;// 要有价格
this.weight = weight;// 要有载重量
}
}
创建一个载人车辆的类
package com.imooc;
//创建一个载人车辆的类
public class MannedCar extends Car {
MannedCar(String name, int price, int number) {
this.name = name;// 要有一个名字
this.price = price;// 要有价格
this.number = number;// 要有载人数
}
}
创建一个皮卡的类
package com.imooc;
//创建一个皮卡类
public class Pickup extends Car {
Pickup(String name,int price ,int weight , int number){
this.name = name;//要有名字
this.price = price;//要有价格
this.number = number;//不仅要有载人量
this.weight = weight;//还要有载重量
}
}
逻辑运行的类
package com.imooc;
import java.util.*;
public class Test {
Car cars[] = { new MannedCar("奥迪A4", 500, 4), new MannedCar("马自达", 400, 4), new Pickup("皮卡雪", 450, 2, 4),
new MannedCar("金龙", 800, 20), new Cargo("松花江", 400, 4), new Cargo("依维柯", 1000, 20) };
int count;// 计算数量
int day;// 计算天数
int money;// 计算价格
// 定义一个大数组,原来是cars.length,一旦租车数量大于6就不行
Car[] rent = new Car[100];
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
Test hello = new Test();// 创建一个对象
System.out.println("是否进入租车系统? 是:1 否:0");
if (input.nextInt() == 0) {// 验证用户是否要进入租车系统,如果输入0,则结束退出
input.close();
System.exit(-1);
}
// 输出可以租借的车辆信息
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号 汽车名称 租金 容量");
System.out.println("1. 奥迪A4 500/天 载人:4人");
System.out.println("2. 马自达 400/天 载人:4人");
System.out.println("3. 皮卡雪 450/天 载人:4人,载货:2吨");
System.out.println("4. 金龙 800/天 载人:20人");
System.out.println("5. 松花江 500/天 载货:4吨");
System.out.println("6. 依维柯 1000/天 载货:20吨");
System.out.println("请输入您要租车额数量:");
int rentNum = input.nextInt();// 记录要租车的数量
for (int i = 0; i < rentNum; i++) {// 使用for循环来让用户选择车型
System.out.println("您要租的第" + (i + 1) + "辆车的型号");
int a = input.nextInt();// 记录每一辆车的型号类型
while (a < 1 || a > 6) {// 判断用户输入的型号,是否在正常值的范围之内
System.out.println("您输入的型号有误,请重新输入选择车型");
int b = input.nextInt();// 记录用户重新输入的值
a = b;// 将用户重新输入的值赋值给a
}
int p = hello.cars[a - 1].price;// 计算出用户输入的车型的价格
hello.money += p;// 将每一辆的价格记录到类的money变量中
hello.rent[i] = hello.cars[a - 1];// 将用户租用的车辆信息记录到rent数组当中
}
System.out.println("您要租车的天数:");
int c = input.nextInt();// 记录需要租车的天数
hello.money *= c;// 将用户选择的车辆金额, * 租用的天数
System.out.println("您的租车账单为");
int loadAmount = 0;// 载重量
int passengerAmount = 0;// 载人量
for (int i = 0; i < rentNum; i++) {// 使用循环,计算总的载人数量和载重量
System.out.print(hello.rent[i].name + " ");
loadAmount += hello.rent[i].weight;
passengerAmount += hello.rent[i].number;
}
System.out.println("您的租车载人数量" + passengerAmount + "人");// 输出总载人数
System.out.println("您的租车载货量" + loadAmount + "吨");// 输出总载重量
System.out.println("您的租车总费用:" + hello.money);// 输出总的金额
}
}
热门评论
说实话你写的不错,我也从你这边得到了很多灵感,不过有个地方我觉得可以改善一下,你说创建一个大数组Car[] rent = new Car[100];我觉得这个不是把长度定义为100就能解决的,因为你设定的流程是一辆一辆的选车,这样说实话效率不高,如果我租几百辆车呢?所以最好是先选择要租的车型,然后每种车型租几辆,这样数组长度就是可控的(不会超过cars.length),选车效率也会更高,在下拙见,看看就好
说实话你写的不错,我也从你这边得到了很多灵感,不过有个地方我觉得可以改善一下,你说创建一个大数组Car[] rent = new Car[100];我觉得这个不是把长度定义为100就能解决的,因为你设定的流程是一辆一辆的选车,这样说实话效率不高,如果我租几百辆车呢?所以最好是先选择要租的车型,然后每种车型租几辆,这样数组长度就是可控的(不会超过cars.length),选车效率也会更高,在下拙见,看看就好
input.nextInt() == 0) {// 验证用户是否要进入租车系统,如果输入0,则结束退出 input.close(); System.exit(-1);
这个判断存在问题 除了输入0其他的都可以进入系统 我认为可以改为!=判断