怎么优化呀,感觉代码冗余

来源:12-1 综合练习

慕侠9411768

2019-03-21 14:10

package com.dadazuche;

//车父类

public class Car {

//封装

private String ctype;//车型

private String cname;//车名

private int cnum; //车载量

private int cprice; //日租金

//带参数方法

public Car(String type,String name,int num,int price){

ctype=type;

cname=name;

cnum=num;

cprice=price;

//获取车型方法

public String getCtype(){

return ctype;

}

//赋值车型方法

public void setCtype(String type){

ctype=type;

}

//获取车名方法

public String getCname(){

return cname;

}

//赋值车名方法

public void setCname(String name){

cname=name;

}

//获取车载量方法

public int getCnum(){

return cnum;

}

//赋值车载量方法

public void setCnum(int num){

cnum=num;

}

//获取日租金方法

public int getCprice(){

return cprice;

}

//赋值日租金方法

public void setCprice(int price){

cprice=price;

}

//计算总租金方法

public int sum(int unit,int days){

return unit*days*getCprice();

}

}


package com.dadazuche;

//卡车子类,继承父类

public class Truck extends Car {


public Truck(String type, String name, int num, int price) {

super(type, name, num, price);

// TODO Auto-generated constructor stub

}

}

//客车子类,继承父类

package com.dadazuche;

public class Bus extends Car {

public Bus(String type, String name, int num, int price) {

super(type, name, num, price);

// TODO Auto-generated constructor stub

}

}

//皮卡车子类,继承父类

package com.dadazuche;

public class Pickup extends Car {

public Pickup(String type, String name, int num, int price) {

super(type, name, num, price);

// TODO Auto-generated constructor stub

}

}

//测试执行

package com.dadazuche;

import java.util.Scanner;

public class Use {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int j=0;

int a=0;

Truck[] truck={new Truck("重卡","一汽乘龙",200,1500),new Truck("重卡","东风康明斯",250,1800),new Truck("中卡","北京解放",100,800),new Truck("轻卡","峻岭v系列",50,500)};

Bus[] Bus={new Bus("大巴","宇通客车",45,900),new Bus("大巴","金龙客车",45,900),new Bus("中巴","金旅客车",30,600),new Bus("小巴","金杯系列",10,300)};

Pickup[] Pickup={new Pickup("皮卡","吉普系列",5,400),new Pickup("带后巷","江铃系列",5,600)};

Scanner input=new Scanner(System.in);

System.out.println("欢迎使用哒哒租车!");

System.out.println("请选择您的租车用途:1 拉货   2 载客  3 综合");

int in1=input.nextInt();

while(in1!=1&&in1!=2&&in1!=3&&a<3){

a++;

System.out.println("您的输入有误,请按提示选择编号!");

System.out.println("请选择您的租车用途:1 拉货   2 载客  3 综合");

in1=input.nextInt();

}

System.out.println(a);

System.out.println(in1);

if (a>=3){System.out.println("您的输入错误次数超过限制,欢迎下次再来!");}

if(in1==1){

System.out.println("拉货,有如下车型可以选择!");

for(int i=0;i<truck.length;i++){

j++;

System.out.println("编号:"+j+" " +" 车型:"+truck[i].getCtype() +"   品牌:"+ truck[i].getCname() +"   车载量:"+truck[i].getCnum() +"吨    日租金:"+truck[i].getCprice()+" 元");

}

System.out.println("请选择车型编号:");

int in2=input.nextInt();

a=0;

while((in2>j||in2==0)&&a<3){

a++;

System.out.println("您的输入有误,请按提示选择编号!");

System.out.println("请选择车型编号:");

in2=input.nextInt();

}

if(a>=3){System.out.println("您的输入错误次数超过限制,欢迎下次再来!");}

else {

System.out.println("输入租用车数:");

int in3=input.nextInt();

System.out.println("输入租用天数:");

int in4=input.nextInt();

       Truck tru= truck[in2-1];

       int sum=tru.sum(in3, in4);

        System.out.println("您选择的是: "+in2+" "+"车型:"+truck[in2-1].getCtype() +"   品牌:"+ truck[in2-1].getCname() +"   车载量:"+truck[in2-1].getCnum() +"吨    日租金:"+truck[in2-1].getCprice()+" 元");

    System.out.println("租用车数  "+in3+" 辆  ,租用天数 "+in4+" 天 ,总共 "+sum+" 元");

}}

 if(in1==2){

System.out.println("载客,有如下车型可以选择!");

for(int i=0;i<Bus.length;i++){

j++;

System.out.println(j+" " +" 车型:"+Bus[i].getCtype() +"   品牌:"+ Bus[i].getCname() +"   车载量:"+Bus[i].getCnum() +"吨    日租金:"+Bus[i].getCprice()+" 元");

}

System.out.println("请选择车型:");

int in2=input.nextInt();

a=0;

while((in2>j||in2==0)&&a<3){

a++;

System.out.println("您的输入有误,请按提示选择编号!");

System.out.println("请选择车型:");

in2=input.nextInt();

}

if(a>=3){System.out.println("您的输入错误次数超过限制,欢迎下次再来!");}

else{

System.out.println("输入租用车数:");

int in3=input.nextInt();

System.out.println("输入租用天数:");

int in4=input.nextInt();

Bus bus= Bus[in2-1];

       int sum=bus.sum(in3, in4);

        System.out.println("您选择的是: "+in2+" "+"车型:"+Bus[in2-1].getCtype() +"   品牌:"+ Bus[in2-1].getCname() +"   车载量:"+Bus[in2-1].getCnum() +"吨    日租金:"+Bus[in2-1].getCprice()+" 元");

    System.out.println("租用车数  "+in3+" 辆  ,租用天数 "+in4+" 天 ,总共 "+sum+" 元");

}}

 if(in1==3){

System.out.println("综合,有如下车型可以选择!");

for(int i=0;i<Pickup.length;i++){

j++;

System.out.println(j+" " +" 车型:"+Pickup[i].getCtype() +"   品牌:"+ Pickup[i].getCname() +"   车载量:"+Pickup[i].getCnum() +"吨    日租金:"+Pickup[i].getCprice()+" 元");

}

System.out.println("请选择车型:");

int in2=input.nextInt();

a=0;

while((in2>j||in2==0)&&a<3){

System.out.println("您的输入有误,请按提示选择编号!");

System.out.println("请选择车型:");

in2=input.nextInt();

a++;

}

if(a>=3){System.out.println("您的输入错误次数超过限制,欢迎下次再来!");}

else{

System.out.println("输入租用车数:");

int in3=input.nextInt();

System.out.println("输入租用天数:");

int in4=input.nextInt();

Pickup pickup= Pickup[in2-1];

       int sum=pickup.sum(in3, in4);

        System.out.println("您选择的是: "+in2+" "+"车型:"+Pickup[in2-1].getCtype() +"   品牌:"+ Pickup[in2-1].getCname() +"   车载量:"+Pickup[in2-1].getCnum() +"吨    日租金:"+Pickup[in2-1].getCprice()+" 元");

    System.out.println("租用车数  "+in3+" 辆  ,租用天数 "+in4+" 天 ,总共 "+sum+" 元");

}}

}

}


写回答 关注

1回答

  • 慕娘4130427
    2019-08-29 16:19:49

    你可以将你代码重复的部分封装成带参的方法,进行调用。比如你对输入的校验这一块,可以封装成一个校验的方法,你选择的车型那也可以封装成方法

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

531023 学习 · 6160 问题

查看课程

相似问题