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

终于写完,请大神们看看还有什么可以修改的地方,自我感觉应该还能优化,但是找不到地方了。

package models;

import java.util.*;
/**
 * 租车系统主要功能测试类
 * @author My
 *
 */
public class test {
    public static void main(String[] args) {
        //欢迎界面
        System.out.println("欢迎使用嗒嗒租车系统:");
        System.out.println("您是否要租车:1.是\t0.否");
        Scanner scanner = new Scanner(System.in);
        int choose = scanner.nextInt();
        //判断用户输入
        while(true){
            if(choose==1){
                break;
            }else if(choose==0){
                System.out.println("谢谢使用,再见!");
                return;
            }else{
                System.out.println("输入有误,请根据提示重新输入您想选择的数字;\n您是否要租车:1.是\t0.否");
                choose = scanner.nextInt();
            }
        }
        //显示可用车型及相关信息
        System.out.println("您可租车的类型及其价目表:");
        System.out.println("序号\t汽车名称\t租金\t\t容量");
        Car[] cars ={new AudiA4(1,"奥迪A4",500,4),new Mazda6(2,"马自达6",400,4),
                new PickupSnow6(3,"皮卡雪6", 450, 4, 2),new GoldenDragon(4,"金龙", 800, 20),
                new SonghuaRiver(5,"松花江", 400, 4),new Iveco(6,"依维柯", 1000, 20)};
        
        for(int i=0;i<cars.length;i++){
            System.out.print((i+1)+".\t"+cars[i].getName()+"\t"+cars[i].getPrice()+"元/天");
            if(cars[i].getPassengerCar()==0){
                System.out.println("\t载货:"+cars[i].getCargo()+"吨");
            }else if(cars[i].getCargo()==0){
                System.out.println("\t载人:"+cars[i].getPassengerCar()+"人");
            }else{
                System.out.println("\t载人:"+cars[i].getPassengerCar()+"人载货:"+cars[i].getCargo()+"吨");
            }
        }
        //判断租车数量
        System.out.println("请输入您要租汽车的数量:");
        int sum = scanner.nextInt();
        //定义总价并初始化为0
        double totalPrice = 0;
        //定义租车天数并初始化为0
        int days = 0;
        int[] nums=new int[sum];
        //根据用户输入的选择,累加金额
        for(int i=0;i<sum;i++){
            System.out.println("请输入第"+(i+1)+"辆车的序号:");
            int num = scanner.nextInt();
            //判断用户输入是否正确,如果错误则提示重新输入
            while(num<0||num>7){
                System.out.println("输入错误,请重新输入!");
                System.out.println("请输入第"+(i+1)+"辆车的序号:");
                num = scanner.nextInt();
            }
            //将用户选择的车型的编号保存到数组里,便于以后统计使用
            nums[i]=num-1;//这里为什么要减1我还没想明白,求大神解释一下。。。。。。。。。。
            totalPrice+=cars[num-1].getPrice();
        }
        System.out.println("请输入租车天数:");
        days = scanner.nextInt();
        //统计功能
        System.out.println("您的账单:");
        System.out.println("***可载人的车有:");
        //定义总载人量并初始化为0
        int passengers = 0;
        //如载人数为0则表示不能载人,循环输出即可。
        for(int i=0;i<sum;i++){
            if(cars[nums[i]].getPassengerCar()!=0){
                passengers += cars[nums[i]].getPassengerCar();
                System.out.print(cars[nums[i]].getName()+"\t");
            }
        }
        System.out.println("共载人:"+ passengers +"人");
        System.out.println("***可载货的车有:");
        //定义总载货量并初始化为0
        int goods = 0;
        //同理,载货量为0表示无法载货,循环输出。
        for(int i=0;i<sum;i++){
            if(cars[nums[i]].getCargo()!=0){
                goods += cars[nums[i]].getCargo();
                System.out.print(cars[nums[i]].getName()+"\t");
            }
        }
        System.out.println("共载货:"+ goods +"吨");
        //总价*天数=最终价格
        System.out.println("***租车总价格:"+(totalPrice*days)+"元");
    }
}


正在回答

4 回答

你是多少辆车就有多少个对应的子类么....

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

桃子叔叔 提问者

只对车的类型有子类。
2016-06-09 回复 有任何疑惑可以回复我~

需要优化的地方很多,例如:你代码全在一个main方法里写完,应该使用类和对象的方法构写,这样的代码看的很累的

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

桃子叔叔 提问者

谢谢,需要把租车的功能单独写一个类?比如判断用户输入需要几辆车,然后在main里调用该方法?
2016-05-28 回复 有任何疑惑可以回复我~
#2

mbk_vip 回复 桃子叔叔 提问者

租车的功能写成方法
2016-05-28 回复 有任何疑惑可以回复我~
#3

桃子叔叔 提问者 回复 mbk_vip

恩恩,好的,感谢大神提点
2016-05-28 回复 有任何疑惑可以回复我~

知道了,我被new对象时赋值的第一个数字迷惑了。实际上第一台车是0。所以选择的时候要减一。。


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

父类和两个接口以及子类我就没贴出来了,比较简单。

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

桃子叔叔 提问者

求大神解释一下为毛SUM数组那里num的值要减一才能对呢
2016-05-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

终于写完,请大神们看看还有什么可以修改的地方,自我感觉应该还能优化,但是找不到地方了。

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