为了账号安全,请及时绑定邮箱和手机立即绑定

只定义了一个汽车类,写的很臃肿,还请大佬们指点

package ca;
import java.util.Scanner;

class Car {
    public double price;//租金
    public int busload;//载客量
    public int boatload;//载货量
    public String name;//车名
}


public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Car ad = new Car();//新建对象
        ad.price = 500.0;
        ad.busload = 4;
        ad.name="奥迪A4";

        Car mzd = new Car();
        mzd.price = 400.0;
        mzd.busload = 4;
        mzd.name="马自达6";

        Car pk = new Car();
        pk.price = 450.0;
        pk.busload = 4;
        pk.boatload = 2;
        pk.name="皮卡雪6";

        Car jl = new Car();
        jl.price = 800.0;
        jl.busload = 20;
        jl.name="金龙";

        Car shj = new Car();
        shj.price = 400.0;
        shj.boatload = 4;
        shj.name="松花江";

        Car ywk = new Car();
        ywk.price = 1000.0;
        ywk.boatload = 20;
        ywk.name="依维柯";

        System.out.println("欢迎使用租车系统");
        System.out.println("您是否要租车:1是 0否");
        int a = scanner.nextInt();
        if (a == 0) {
            System.out.println("退出系统");
        } else if (a == 1) {
            System.out.println("您可租车的类型及价目表:");
            System.out.println("序号 汽车名称 租金      容量");
            System.out.println("1    奥迪A4   500元/天  载人:4人");
            System.out.println("2    马自达6  400元/天  载人:4人");
            System.out.println("3    皮卡学6  450元/天  载人:4人  载货:2吨");
            System.out.println("4    金龙     800元/天  载人:20人");
            System.out.println("5    松花江   400元/天  载活:4吨");
            System.out.println("6    依维柯   1000元/天 载活:20吨");


           System.out.println("请输入您要租车的数量");
           int num=scanner.nextInt();
           //System.out.println(b);
            Car[] obj=new Car[num];//定义对象数组


          //将输入的对象保存至对象数组
           for (int i=1;i<=num;i++) {
               System.out.println("请输入第" + i + "量车的序号");
               int c = scanner.nextInt();
               switch (c){
                   case 1:obj[i-1]=ad;
                   break;
                   case 2:obj[i-1]=mzd;
                   break;
                   case 3:obj[i-1]=pk;
                   break;
                   case 4:obj[i-1]=jl;
                   break;
                   case 5:obj[i-1]=shj;
                   break;
                   case 6:obj[i-1]=ywk;
                   break;
                   default:{
                       System.out.println("输入错误,请重新输入");
                       i--;
                       break;
                   }

               }

           }

            System.out.println("请输入租车天数");
            int day=scanner.nextInt();

            System.out.println("您的账单");
            System.out.println("可载人的车有:");

            //计算载客量
            int busload=0;
            for(int j=0;j<num;j++){
                if(obj[j].busload>0){
                    System.out.print(obj[j].name+"  ");
                }
                busload+=obj[j].busload;
            }
            System.out.println("共载人:"+busload+"人");

            //计算载货量
            System.out.println("可载货的车有:");
            int boatload=0;
            for(int k=0;k<num;k++){
                if(obj[k].boatload>0){
                    System.out.print(obj[k].name+"  ");
                }
                boatload+=obj[k].boatload;
            }
            System.out.println("共载货:"+boatload+"吨");

            //计算租金
            int price=0;
            for(int m=0;m<num;m++){
                price+=obj[m].price;
            }
            price=price*day;
            System.out.println("租车总价格:"+price+"元");

       }else {
           System.out.println("输入错误");
       }

        }
    }


正在回答

3 回答

  1. 在car类里写一个有参构造方法,这样new的时候可以直接 Car ad= new Car(500,4,"奥迪4");

  2. System.out.println("1    奥迪A4   500元/天  载人:4人");
                System.out.println("2    马自达6  400元/天  载人:4人");
                System.out.println("3    皮卡学6  450元/天  载人:4人  载货:2吨");
                System.out.println("4    金龙     800元/天  载人:20人");
                System.out.println("5    松花江   400元/天  载活:4吨");
                System.out.println("6    依维柯   1000元/天 载活:20吨");

    这些应该用循环打印,不然你前面创建那6个Car对象有啥用?

  3.  //将输入的对象保存至对象数组
               for (int i=1;i<=num;i++) {
                   System.out.println("请输入第" + i + "量车的序号");
                   int c = scanner.nextInt();
                   switch (c){
                       case 1:obj[i-1]=ad;
                       break;
                       case 2:obj[i-1]=mzd;
                       break;
                       case 3:obj[i-1]=pk;
                       break;
                       case 4:obj[i-1]=jl;
                       break;
                       case 5:obj[i-1]=shj;
                       break;
                       case 6:obj[i-1]=ywk;
                       break;
                       default:{
                           System.out.println("输入错误,请重新输入");
                           i--;
                           break;
                       }
    
                   }
    
               }

    这里可以在循环里直接计算出载人和载货量和一天的租金m,不需要下面再写循环,然后用m乘以天数就是总租金了。这里你思考一下,是可以实现的。

  4. 对初学者来说,能实现就很棒了,加油。


1 回复 有任何疑惑可以回复我~
#1

柚n

这个建议很用心了可以说是!
2019-07-03 回复 有任何疑惑可以回复我~

在别的回答下看到,所选车名可以用String name =“  ”;解决 省了好多事 

0 回复 有任何疑惑可以回复我~

最后的界面

https://img1.sycdn.imooc.com//5cc115900001c19a02910516.jpg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

只定义了一个汽车类,写的很臃肿,还请大佬们指点

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信