package RentCar;
//父类
public class Car {
public String carName ;
public int rentCash ;
public int man ;
public int Goods;
}
package RentCar;
//奥迪A4
public class Audi extends Car {
//初始化属性
public String carName ="奥迪A4";
public int rentCash = 500;
public int man = 4;
public int Goods = 0;
/**
* 重写toString方法
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return carName+"\t"+rentCash+"元/天\t载人:"+man+"人";
}
}package RentCar;
//皮卡雪
public class PickUp extends Car {
//初始化属性值
public String carName ="皮卡雪6";
public int rentCash = 450;
public int man = 4;
public int Goods = 2;
/*
* 重写toString方法
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return carName+"\t"+rentCash+"元/天\t载人:"+man+"人 载货:"+Goods+"吨";
}
}package RentCar;
//金龙
public class JinLong extends Car {
//初始化属性
public String carName ="金龙";
public int rentCash = 800;
public int man = 20;
public int Goods = 0;
/**
* 重写toString方法
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return carName+"\t"+rentCash+"元/天\t载人:"+man+"人";
}
}package RentCar;
//松花江
public class SongHuaRiver extends Car {
//初始化属性
public String carName ="松花江";
public int rentCash = 400;
public int man = 0;
public int Goods = 4;
/**
* 重写toString方法
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return carName+"\t"+rentCash+"元/天\t载货:"+Goods+"吨";
}
}package RentCar;
//依维柯
public class Iveco extends Car {
//初始化属性
public String carName ="依维柯";
public int rentCash = 1000;
public int man = 0;
public int Goods = 20;
/**
* 重写toString方法
*/
@Override
public String toString() {
// TODO Auto-generated method stub
return carName+"\t"+rentCash+"元/天 载货:"+Goods+"吨";
}
}package RentCar;
import java.util.*;
public class Inital {
Scanner scanner = new Scanner(System.in);
public static int carNumber[][] = new int[6][2];//定义一个二维数组类型的全局变量,来存储每一类车的数量和租用天数
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
Inital ll =new Inital();
System.out.println("欢迎使用答答租车系统\n请问您是否需要租车服务:1是 0否");
int choose;
choose = scanner.nextInt();
if(choose == 1)
{
ll.showInfor();
ll.choose();
ll.count();
}else{
System.out.println("不好意思给您带来不便");
System.exit(0);
}
}
public void showInfor()//输出车辆信息
{
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号\t汽车名称\t租金\t容量");
System.out.println("1.\t"+new Audi().toString());
System.out.println("2.\t"+new Mazda().toString());
System.out.println("3.\t"+new PickUp().toString());
System.out.println("4.\t"+new JinLong().toString());
System.out.println("5.\t"+new SongHuaRiver().toString());
System.out.println("6.\t"+new Iveco().toString());
}
public void choose()
{
int ID = 0;//车辆的序号
int day =0;//租用的天数
int carNum = 0;//租用汽车总数量
int num =0;//某类汽车的数量
System.out.println("请输入您要租用的汽车总数量:");
carNum = scanner.nextInt();
for(int i = 0; i < 7; i++){
System.out.println("请输入你需要租用汽车的序号");
ID = scanner.nextInt();
System.out.println("请输入需要租用本类型车的数量");
num = scanner.nextInt();
System.out.println("请输入你需要租赁的天数");
day = scanner.nextInt();
switch(ID)
{
case 1:
carNumber[0][0]= num;
carNumber[0][1] = day; break;
case 2:
carNumber[1][0]= num;
carNumber[1][1] = day; break;
case 3:
carNumber[2][0]= num;
carNumber[2][1] = day; break;
case 4:
carNumber[3][0]= num;
carNumber[3][1] = day; break;
case 5:
carNumber[4][0]= num;
carNumber[4][1] = day; break;
case 6:
carNumber[5][0]= num;
carNumber[5][1] = day; break;
default :
System.out.println("您的输入有误");
i = 0;
break;
}
int m = 0;
for(int j = 0; j < 6; j++){
m += carNumber[j][0];
}
if(m > carNum){
System.out.println("输入有误,请再次访问");
System.exit(0);
}else if(m == carNum){
break;
}
}
}
public void count()
{
int manNumber = 0;//总载客人数
int tannage = 0;//总吨位
int counts = 0;//总花销
System.out.println("您的账单:");
System.out.println("***可载人的车有:");
for(int i = 0;i < 4; i++){
if(carNumber[i][0] >0)
{
if(i == 0){
System.out.print(new Audi().carName+"\t");
manNumber = manNumber + carNumber[i][0]*4;
counts = counts + 500*carNumber[i][1]*carNumber[i][0];
}
if(i == 1){
System.out.print(new Mazda().carName+"\t");
manNumber = manNumber + carNumber[i][0]*4;
counts = counts + 400*carNumber[i][1]*carNumber[i][0];
}
if(i == 2){
System.out.print(new PickUp().carName+"\t");
manNumber = manNumber + carNumber[i][0]*4;
tannage = tannage + carNumber[2][0]*2;
counts = counts + 450*carNumber[i][1]*carNumber[i][0];
}
if(i == 3){
System.out.print(new JinLong().carName+"\t");
manNumber = manNumber + carNumber[i][0]*20;
counts = counts + 800*carNumber[i][1]*carNumber[i][0];
}
}
}
System.out.println("共载人:"+manNumber+"人");
System.out.println("***载货的车有:");
if(carNumber[2][0] >0){
System.out.print(new PickUp().carName+"\t");
}
if(carNumber[4][0] > 0)
{
System.out.print(new SongHuaRiver().carName+"\t");
tannage = tannage + carNumber[4][0]*7;
counts = counts + 400*carNumber[4][1]*carNumber[4][0];
}
if(carNumber[5][0] > 0)
{
System.out.print(new Iveco().carName+"\t");
tannage = tannage + carNumber[5][0]*20;
counts = counts + 1000*carNumber[5][1]*carNumber[5][0];
}
System.out.println("共载货:"+tannage+"吨");
System.out.println("***租车总价格:"+counts+"元");
}
}看了置顶的代码,哭,封装和分类继承的好麻烦 T T
我的作业中用一种比较简单的方法,提供了一定租车数量下的多种选择搭配的方法。希望指导一下,编码风格有什么不足的地方
只要肯去想 都是好的 条条道路通罗马