作业提交了,后面的账单本来想做好一点的,可是想了好久最不出来,就投机取巧的这样写了,求大佬帮帮忙改一下啊

来源:12-2 项目问题解析 1

小可爱z

2018-11-07 17:19

package package3;

import java.util.Scanner;


//抽象类

 abstract class car{

//public static int length;

protected String carName;//车名

protected int personNumber;//载客量

protected double goods;//载物量

protected int money;//租金

//客车构造方法,客车载客

public car(String carName,int personNumber,int money){

super();

this.carName=carName;

this.personNumber=personNumber;

this.money=money;

}

//货车构造方法,货车载人

public car(String carName,double goods,int money){

super();

this.carName=carName;

this.goods=goods;

this.money=money;

}

//皮卡构造方法,皮卡即载客又载人

public car(String carName,int personNumber,double goods,int money){

super();

this.carName=carName;

this.personNumber=personNumber;

this.goods=goods;

this.money=money;

}

abstract void show();//抽象类中必须有抽象方法,且方法中不能含有方法体

}

 //客车类

   class passengerCar extends car{


public passengerCar(String carName,int personNumber, int money) {

super(carName, personNumber, money);  

  }

public void show(){

System.out.println(carName+"  "+money+"元/天  载人:"+personNumber+"人");

}

}

  //货车类

   class lorry extends car{


public lorry(String carName, double goods, int money) {

super(carName, goods, money);

}

  

  

public void show(){

System.out.println(carName+"  "+money+"元/天   载货:"+goods+"吨");

}

}

  //皮卡类

   class pika extends car{


public pika(String carName,int personNumber,double goods,int money) {

super(carName,personNumber,goods,money);

}


public void show(){

System.out.println(carName+"  "+money+"元/天  载货:"+goods+"吨  载人"+personNumber );

}

}

public class Cartest {

public static void main(String[] args) {

car[] cars={new lorry ("松花江",4.0, 400),

    new lorry ("依维柯",20.0,1000),

    new pika ("皮卡雪", 2, 2, 450),

    new passengerCar("马自达", 4, 400),

    new passengerCar("奥迪A4", 4, 500)};

                

System.out.println("欢迎使用哒哒租车系统:");

System.out.println("你是否要租车:1-是    0-否");

Scanner sc=new Scanner(System.in);

int i=sc.nextInt();

if(i==1){

System.out.println("你可租车的类型及其价目录:");

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

for(int a=0;a<cars.length;a++){

System.out.print((a+1) +"  " );

cars[a].show();

}

System.out.println("请输入你要租的汽车数量:");

int number=sc.nextInt();

int Money=0;

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

System.out.printf("请输入第%d辆车的序号:",j+1);

int a=sc.nextInt();

System.out.println("你选中的第"+(j+1)+"车为:——————"+cars[a-1].carName+"    这辆车每天的租金为:"+cars[a-1].money);

Money=Money+cars[a-1].money;

}

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

int days=sc.nextInt();

System.out.println("***********租车完成***********");

System.out.println("下面开始统计账单:");

System.out.println("您一共租了"+number+"辆车,一共花费"+(Money*number)+"元");

}

else{

System.out.println("谢谢!欢迎下次再来");

System.exit(0);

}

}


}


写回答 关注

3回答

  • 软件工程李白
    2019-05-04 17:15:06

    参考大佬代码,在下还是没能独立设计出程序

  • qq_你的专属豆沙包_0
    2018-11-08 15:32:26

    用不用抽象类影响不大,反正后面学了接口之后就很少用到这个了

  • 蟹皇面plus
    2018-11-07 20:52:04

    我也是初学者,不过我并没有建立一个车的数组,而是使用switch函数来获取信息,觉得你的代码更简洁一些。

Java入门第二季 升级版

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

530559 学习 · 6091 问题

查看课程

相似问题