写完了 可以参考参考

来源:12-1 综合练习

慕容944350

2019-01-31 10:40

//载客+载货类

package com.imooc;


public class all extends car implements zaihuo, zaike {

private int zaihuo;

private int zaike;

public all( int zaihuo,int zaike, int price, String name){

super( price, name);

setzaihuo(zaihuo);

setzaike(zaike);

}

public void setzaike(int zaike) {

// TODO Auto-generated method stub

this.zaike=zaike;

}


@Override

public String toString() {

return "皮卡 [载货=" + zaihuo + "吨, 载客=" + zaike + "人]";

}


public int getzaike() {

// TODO Auto-generated method stub

return zaike;

}


public void setzaihuo(int zaihuo) {

// TODO Auto-generated method stub

this.zaihuo=zaihuo;

}


public int getzaihuo() {

// TODO Auto-generated method stub

return zaihuo;

}


}



//载货类

package com.imooc;


public class bighuoche extends car implements zaihuo {


private int zaihuo;

public bighuoche(int zaihuo, int price, String name){

super( price,  name);

setzaihuo(zaihuo);

}

@Override

public String toString() {

if(zaihuo>=100)

return "大货车 [载货=" + zaihuo + "吨]";

else return "小货车 [载货=" + zaihuo + "吨]";

}




@Override

public void setzaihuo(int zaihuo) {

// TODO Auto-generated method stub

this.zaihuo=zaihuo;

}


@Override

public int getzaihuo() {

// TODO Auto-generated method stub

return zaihuo;

}



}



//载客类

package com.imooc;


public class bigkeche extends car implements zaike {

private int zaike;

public bigkeche(int zaike, int price, String name){

super( price, name);

this.zaike=zaike;

}

@Override

public void setzaike(int zaike) {

// TODO Auto-generated method stub

this.zaike=zaike;

}


@Override

public String toString() {

if(zaike>=50)

return "大客车 [载客=" + zaike + "人]";

else return "小客车 [载客=" + zaike + "人]";

}

@Override

public int getzaike() {

return zaike;

}


}



//载货接口

package com.imooc;


public interface zaihuo {

public void setzaihuo(int zaihuo);

public int getzaihuo();

}

//载客接口

package com.imooc;


public interface zaike {

public void setzaike(int zaike);

public int getzaike();


}

//汽车类

package com.imooc;


public class car {


private int price;

private String name;


public car(){}



public car(int price, String name){

this.price=price;

this.setName(name);

}


public car(int price){

this.price=price;

}


public int getPrice() {

return price;

}


public void setPrice(int price) {

this.price = price;

}



public String getName() {

return name;

}



public void setName(String name) {

this.name = name;

}



@Override

public String toString() {

return "car [price=" + price + ", name=" + name + "]";

}


}

//测试类

package com.imooc;

import com.imooc.car;


import com.imooc.bighuoche;

import java.util.Scanner;

public class test {


public static void caidan(all e,bighuoche a,bighuoche b,bigkeche c,bigkeche d){

System.out.println("序号 1. 车型:"+a.getName()+" 租金:"+a.getPrice()+" 载货:"+a.getzaihuo());

System.out.println("序号 2. 车型:"+b.getName()+" 租金:"+b.getPrice()+" 载货:"+b.getzaihuo());

System.out.println("序号 3. 车型:"+c.getName()+" 租金:"+c.getPrice()+" 载客:"+c.getzaike());

System.out.println("序号 4. 车型:"+d.getName()+" 租金:"+d.getPrice()+" 载客:"+d.getzaike());

System.out.println("序号 5. 车型:"+e.getName()+" 租金:"+e.getPrice()+" 载货:"+e.getzaihuo()+" 载客:"+e.getzaike());

}

public static int getnum(){

System.out.println("");

System.out.println("***猪多少两***");

Scanner input1=new Scanner(System.in);

int num=input1.nextInt();

return num;

}

public static void main(String[] args) {

// TODO Auto-generated method stub

/*car a=new car(10);

car b=new car(100,"大货车");

bighuoche c=new bighuoche(100,100,"大货车");

System.out.println("wori");

System.out.println(a.getPrice());

System.out.println(b.getName());

System.out.println(c.getName());

*/

System.out.println("***是否进入租车系统 1.是 2.不是***");

Scanner input=new Scanner(System.in);

int into=input.nextInt();

System.out.println("");

if(into==1){System.out.println("***系统开始***");

System.out.println("");

all e=new all(90,10,1000,"皮卡");

bighuoche a=new bighuoche(150,500,"大货车");

bighuoche b=new bighuoche(70,100,"小货车");

bigkeche c=new bigkeche(100,300,"大客车");

bigkeche d=new bigkeche(10,90,"小客车");

//test t=new test();

caidan(e,a,b,c,d);

int num=getnum();

System.out.println("");

car[] cars=new car[num];

for(int i=0;i<num;i++)

{

System.out.println("选择第"+(i+1)+"两车");

int choose=input.nextInt();

switch (choose){

case 1: cars[i]=a;break;

case 2:cars[i]=b;break;

case 3: cars[i]=c;break;

case 4:cars[i]=d;break;

case 5: cars[i]=e;break;

}

}

System.out.println("");

System.out.println("");

System.out.println("***已经选择了的车的清单***");

for(int i=0;i<num;i++){

System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());

}

System.out.println("");

System.out.println("");

int x = 0,y = 0,z=0;

int zaihuosum=0;

int zaikesum=0;

int zujinsum=0;

for(int j=0;j<num;j++){

if(cars[j] instanceof bighuoche){x=1;}

if(cars[j] instanceof bigkeche){ y=1;}

if(cars[j] instanceof all){z=1;}

}

if(x==1){

System.out.println("***已经选择了货车的清单***");

for(int i=0;i<num;i++){

if(cars[i] instanceof bighuoche)

System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());

}

}

if(y==1){

System.out.println("");

System.out.println("");

System.out.println("***已经选择了客车的清单***");

for(int i=0;i<num;i++){

if(cars[i] instanceof bigkeche)

System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());

}

}

if(z==1){

System.out.println("");

System.out.println("");

System.out.println("***已经选择了皮卡的清单***");

for(int i=0;i<num;i++){

if(cars[i] instanceof all)

System.out.println(cars[i].toString()+"价格:"+cars[i].getPrice());

}

}

System.out.println("");

System.out.println("");

System.out.println("***总单***");

System.out.println("");

System.out.println("***载货量***");

for(int i=0;i<num;i++){

if(cars[i] instanceof zaihuo){

zaihuo huoche=(zaihuo)cars[i];

zaihuosum=zaihuosum+huoche.getzaihuo();

}

}

System.out.println(zaihuosum+"吨");


System.out.println("***载客量***");

for(int i=0;i<num;i++){

if(cars[i] instanceof zaike){

zaike huoche=(zaike)cars[i];

zaikesum=zaikesum+huoche.getzaike();

}

}

System.out.println(zaikesum+"人");

System.out.println("***总租金***");

for(int i=0;i<num;i++){

zujinsum=zujinsum+cars[i].getPrice();

}

System.out.println(zujinsum+"元");

/*

for(int i=0;i<num;i++){

if(cars[i] instanceof zaihuo){

System.out.println("ri"+i);

}

}

*/

}

else{System.out.println("滚你妈的");}

}


}


https://img4.mukewang.com/5c525eb500017db008960858.jpg

https://img4.mukewang.com/5c525ebf00017a8705520860.jpg



很多的不足 

  1. 输入没有验证机制 解决:可以轻松添加

  2. 系统没有返回机制 解决:还没想到

  3. 车的类型太少 解决可以通过继承 继承3个类型的大类并对每一种车进行命名和定规格然后再重新写清单 对应新建类就ok

  4. 没有统计功能 解决:可以多加功能不过要是复杂功能可能不能用数组就解决需要利用I/O功能还不怎么会

  5. 界面不会做

优点:

  1. 多层次的继承可以更好的利用强制转换和instanceof方法进行判断

  2. 测试类里面把菜单 输入 等的操作进行分块方法 多个方法 而不是把所有东西堆在Main里面




写回答 关注

1回答

  • 雅鲁藏布大峡谷
    2019-07-13 21:32:52

    ???写的很好

Java入门第二季 升级版

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

530655 学习 · 6091 问题

查看课程

相似问题