帮忙看一下代码的问题

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

qq_prisoner_4

2019-03-17 14:19

public class QiChe {

private String name;//车名

private int pnum;//载客

private int hnum;//载人

private int price;//租金

public QiChe(String name, int pnum, int hnum, int price) {

super();

this.name = name;

this.pnum = pnum;

this.hnum = hnum;

this.price = price;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}


public int getPnum() {

return pnum;

}

public void setPnum(int pnum) {

this.pnum = pnum;

}

public int getHnum() {

return hnum;

}

public void setHnum(int hnum) {

this.hnum = hnum;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public int  sumPirce(int amounts ,int days) {

return amounts*days*price ;

}

}

//子类卡车

public class Trunk extends QiChe{

public Trunk(String name,int pnum,int hnum,int price) {

super(name, pnum, hnum, price);

}

}

//子类小车

public class Car extends QiChe{


public Car(String name, int pnum, int hnum, int price) {

super(name, pnum, hnum, price);

// TODO Auto-generated constructor stub

}

}

//子类皮卡

public class PickUp extends QiChe {


public PickUp(String name, int pnum, int hnum, int price) {

super(name, pnum, hnum, price);

// TODO Auto-generated constructor stub

}


}

//用户使用

import java.util.Scanner;


public class Use {


public static void main(String[] args) {

// TODO Auto-generated method stub

//首先设置车的数据 用对象数组存放

QiChe[] trunks = {new Trunk("丰田货车",0,20,500),new Trunk("暴龙货车",0,10,300),new Trunk("货拉拉",0,8,200)};

QiChe[] cars = {new Car("奥迪A6",8,0,1000),new Car("布加迪威龙",2,0,1500),new Car("一汽大众",5,0,300)};

QiChe[] pickups = {new PickUp("不知道",2,5,300),new PickUp("叫什么",2,8,500),new PickUp("名字",4,10,800)};

System.out.println("welcome to DIDA");

System.out.println("plese choose some type of vehical to use");

System.out.println("请选择:1只载人 2.只拉货 3.拉货且载人 ");

Scanner in1 = new Scanner(System.in);

int input1 = in1.nextInt();

switch(input1) {

case 1:

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

System.out.println("编号"+i+"车型:"+trunks[i].getName()+" 载人数:"+trunks[i].getPnum()+" 载货数:"+trunks[i].getHnum()+" 租金单日:"+trunks[i].getPrice());

}

break;

case 2:

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

System.out.println("编号"+i+"车型:"+cars[i].getName()+" 载人数:"+cars[i].getPnum()+" 载货数:"+cars[i].getHnum()+" 租金单日:"+cars[i].getPrice());

}

break;

case 3:

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

System.out.println("编号"+i+"车型:"+pickups[i].getName()+" 载人数:"+pickups[i].getPnum()+" 载货数:"+pickups[i].getHnum()+" 租金单日:"+pickups[i].getPrice());

}

break;

default:System.out.println("请求失败,请重新输入");

}

System.out.println("请输入车辆编号,租车天数,租车数量");

Scanner in2 = new Scanner(System.in);

int k = in2.nextInt();

Scanner in3 = new Scanner(System.in);

int m = in3.nextInt();

Scanner in4 = new Scanner(System.in);

int n = in4.nextInt();

if(input1 ==1) {

QiChe rent = trunks[k];

System.out.print("车型为"+rent.getName());

System.out.println("租金"+rent.getPrice()+"天数"+m+"车数"+n+"总金额为:"+rent.sumPirce(m, n));

}else if (input1 ==2) {

QiChe rent = cars[k];

System.out.print("车型为"+rent.getName());

System.out.println("租金"+rent.getPrice()+"天数"+m+"车数"+n+"总金额为:"+rent.sumPirce(m, n));

}else if(input1 ==3) {

QiChe rent = pickups[k];

System.out.print("车型为"+rent.getName());

System.out.println("租金"+rent.getPrice()+"天数"+m+"车数"+n+"总金额为:"+rent.sumPirce(m, n));

}else {

System.out.println("没有此选项");

}

}

}

https://img3.mukewang.com/5c8de6e80001f6e604290342.jpg

写回答 关注

3回答

  • 小皮丘
    2019-04-16 14:39:14

    载人对应case是1,是car吧;载货对应case是2,是是trunks吧

  • 神影天初
    2019-03-24 08:12:14

    结果没什么,但是那个switch不要写default,因为你的default会导致程序继续往下执行,而不会向你输出的那样重新输入.还有碰到input.next()的时候程序应该会停止等待用户输入,所以你只要new一次Scanner就可以了,不需要new那么多次.

  • 柳飞扬6466130
    2019-03-23 16:03:13

    载人对应case是1,是car吧;载货对应case是2,是是trunks吧

Java入门第二季 升级版

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

531021 学习 · 6151 问题

查看课程

相似问题