不知道在怎么改,第三条要求没实现

来源:12-1 综合练习

玉龙BB

2015-02-12 19:38

package com.sun;

public class Car {
    int number;
    public String name;
    public int rent;
    
}
package com.sun;

public class PassengerCar extends Car {
    private int peopleCapacity;
    public PassengerCar(){
        
    }
    public PassengerCar(int number,String name,int rent,int peopleCapacity){
        this.number=number;
        this.name=name;
        this.rent =rent;
        this.setPeopleCapacity(peopleCapacity);
        
    }
    public double getPeopleCapacity() {
        return peopleCapacity;
    }
    public void setPeopleCapacity(int peopleCapacity) {
        this.peopleCapacity = peopleCapacity;
    }

}
package com.sun;

public class Trunk extends Car {
    private int cargoCapacity;
    public Trunk(int number,String name,int rent,int cargoCapacity){
        this.number=number;
        this.name =name;
        this.rent =rent;
        this.setCargoCapacity(cargoCapacity);
        
    }
    public double getCargoCapacity() {
        return cargoCapacity;
    }
    public void setCargoCapacity(int cargoCapacity) {
        this.cargoCapacity = cargoCapacity;
    }

}

package com.sun;

public class PickUp extends Car {
    private int peopleCapacity;
    private int cargoCapacity;
    public PickUp(int number,String name,int rent,int peopleCapacity,int cargoCapacity){
        this.number=number;
        this.name=name;
        this.rent =rent;
        this.peopleCapacity=peopleCapacity;
        this.cargoCapacity=cargoCapacity;
        
    }
    public double getPeopleCapacity() {
        return peopleCapacity;
    }
    public void setPeopleCapacity(int peopleCapacity) {
        this.peopleCapacity = peopleCapacity;
    }
    public double getCargoCapacity() {
        return cargoCapacity;
    }
    public void setCargoCapacity(int cargoCapacity) {
        this.cargoCapacity = cargoCapacity;
    }

}

package com.sun;
import java.util.*;
public class Demo {
    
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int sum = 0;
        int j=0;
  
      Car[] carsForRent={new PassengerCar(1,"奥迪A4",500,4),new 
PassengerCar(2,"马自达6",400,4),new PickUp(3,"皮卡雪6",450,4,2),new 
PassengerCar(4,"金龙",800,20),new Trunk(5,"松花江",400,4),new 
Trunk(6,"依维柯",1000,20)};
        System.out.println("欢迎使用答答租车系统\n您是否要租车:1 是 0否");
        Scanner input=new Scanner(System.in);
        switch(input.nextInt()){
        case 0:
            System.out.println("谢谢使用");
            break;
        case 1:
            System.out.println("您可租车的类型及其价目表:\n序号\t汽车名称\t租金\t容量");
            for(Car car: carsForRent){
                if(car instanceof PassengerCar){
                    PassengerCar c=(PassengerCar) car;
                System.out.println(car.number+"\t"+car.name+"\t"+car.rent+"元/天\t载人:"+c.getPeopleCapacity()+"人");
                }
                if(car instanceof PickUp){
                    PickUp p=(PickUp) car;
  
                 
 System.out.println(car.number+"\t"+car.name+"\t"+car.rent+"元/天\t载
人:"+p.getPeopleCapacity()+"人 载货: "+p.getCargoCapacity()+"吨");
                    }
                if(car instanceof Trunk){
                    Trunk t=(Trunk) car;
                    System.out.println(car.number+"\t"+car.name+"\t"+car.rent+"元/天\t载货: "+t.getCargoCapacity()+"吨");
                    }
                }
                 System.out.println("请输入您要租汽车的数量:");
                int n=input.nextInt();
                for(int i=1;i<=n;i++){
                    System.out.println("请输入第"+i+"辆车的序号:");
                    j=input.nextInt();
                    for(Car car: carsForRent){
                    if(j==car.number)
                        sum+=car.rent;
                    }    
                }    
            }
        System.out.println("请输入租车天数:");
        int k=input.nextInt();    
        System.out.println("总金额为:"+sum*k);   
        }
    
}


写回答 关注

1回答

  • 云端漫漫步
    2015-12-21 21:58:35
    仅对你的代码做了轻微修改,思想就是用一个car数组存放选择的车型基本信息,如:numbe、name和租金。然后再累加计算,代码如下:
    
    package com.sun;
    
    import java.util.*;
    
    public class Demo {
    
    	@SuppressWarnings("resource")
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int sum = 0;
    		int j = 0;
    		int peopleCapSum = 0, cargoCapSum = 0;
    		Car[] carsForRent = { new PassengerCar(1, "奥迪A4", 500, 4), new PassengerCar(2, "马自达6", 400, 4),
    				new PickUp(3, "皮卡雪6", 450, 4, 2), new PassengerCar(4, "金龙", 800, 20), new Trunk(5, "松花江", 400, 4),
    				new Trunk(6, "依维柯", 1000, 20) };
    		System.out.println("欢迎使用答答租车系统\n您是否要租车:1 是 0否");
    		Scanner input = new Scanner(System.in);
    		switch (input.nextInt()) {
    		case 0:
    			System.out.println("谢谢使用");
    			break;
    		case 1:
    			System.out.println("您可租车的类型及其价目表:\n序号\t汽车名称\t租金\t容量");
    			for (Car car : carsForRent) {
    				if (car instanceof PassengerCar) {
    					PassengerCar c = (PassengerCar) car;
    					System.out.println(
    							car.number + "\t" + car.name + "\t" + car.rent + "元/天\t载人:" + c.getPeopleCapacity() + "人");
    				}
    				if (car instanceof PickUp) {
    					PickUp p = (PickUp) car;
    
    					System.out.println(car.number + "\t" + car.name + "\t" + car.rent + "元/天\t载人:"
    							+ p.getPeopleCapacity() + "人 载货: " + p.getCargoCapacity() + "吨");
    				}
    				if (car instanceof Trunk) {
    					Trunk t = (Trunk) car;
    					System.out.println(
    							car.number + "\t" + car.name + "\t" + car.rent + "元/天\t载货: " + t.getCargoCapacity() + "吨");
    				}
    			}
    			System.out.println("请输入您要租汽车的数量:");
    			int n = input.nextInt();
    			Car[] carSelect = new Car[n];
    			for (int i = 1; i <= n; i++) {
    				System.out.println("请输入第" + i + "辆车的序号:");
    				j = input.nextInt();
    				for (Car car : carsForRent) {
    					if (j == car.number)
    					{
    						sum += car.rent;
    					carSelect[i - 1] = car;
    					}
    				}
    			}
    			System.out.println("请输入租车天数:");
    			int k = input.nextInt();
    			System.out.println("您选择了租用如下车型:");
    			for (Car car : carSelect) {
    				System.out.println(car.number + "\t" + car.name + "\t" + car.rent + "元/天");
    				if (car instanceof PassengerCar) {
    					PassengerCar c = (PassengerCar) car;
    					peopleCapSum += c.getPeopleCapacity();
    				}
    				if (car instanceof PickUp) {
    					PickUp p = (PickUp) car;
    					peopleCapSum += p.getPeopleCapacity();
    					cargoCapSum += p.getCargoCapacity();
    				}
    				if (car instanceof Trunk) {
    					Trunk t = (Trunk) car;
    					cargoCapSum += t.getCargoCapacity();
    				}
    			}
    			System.out.println("以上车型共计可载人:" + peopleCapSum);
    			System.out.println("以上车型共计可载货:" + cargoCapSum);
    			System.out.println("总金额为:" + sum * k);
    		}
    
    	}
    }


    请叫我_灰灰

    carSelect[i - 1] = car; 这里的carSelect数组没有定义呀?能直接用的啊?

    2016-02-25 17:33:38

    共 1 条回复 >

Java入门第二季 升级版

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

530560 学习 · 6091 问题

查看课程

相似问题