继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Java入门第二季6.1项目代码

鲍鲍越来越幽默了
关注TA
已关注
手记 1
粉丝 2
获赞 16

完成了项目要求的展示内容,并没有做进一步的完善,以下代码仅供参考
父类Cars:

//车的序号、名称、租金、载货量、载客量
public class Cars {
    public String carsname;//名称
    public int id,personLoad;//序号、载客量
    public double carsrental,goodLoad;  //租金、载货量
}

子类客车Bus:

//车的子类--客车,设置客车的序号、名称、租金、载客量
public class Bus extends Cars {
    public Bus(int id,String carsname,double carsrental,int personLoad){  //客车子类的构造方法
        this.id=id;
        this.carsname=carsname;
        this.carsrental=carsrental;
        this.personLoad=personLoad;
    }
}

子类货车Truck:

//车的子类--货车,设置货车的序号、名称、租金、载货量
public class Truck extends Cars {
    public Truck(int id,String carsname,double carsrental,int goodLoad){  //货车子类的构造方法
        this.id=id;
        this.carsname=carsname;
        this.carsrental=carsrental;
        this.goodLoad=goodLoad;
    }
}

子类皮卡PickUp:

//车的子类--皮卡,设置客车的序号、名称、租金、载客量、载货量
public class PickUp extends Cars {
    public PickUp(int id,String carsname,double carsrental,int personLoad,double goodLoad){  //皮卡子类的构造方法
        this.id=id;
        this.carsname=carsname;
        this.carsrental=carsrental;
        this.personLoad=personLoad;
        this.goodLoad=goodLoad;
    }
}

答答租车系统:

import java.util.Scanner;

public class Users {
    static int carsnum,carsday,allpersons; //static静态变量保证类内的所有对象都能使用该成员变量,分别是租车的数量、天数和总载客量
    static double allgoods,allmoney;//总载货量、总价
    static int[] carsid; //车的序号
    //创建一个数组并初始化,数组类型是父类Cars的各子类的对象
    static Cars[] carsForRent={new Bus(1,"奥迪A4",500,4),new Bus(2,"马自达6",400,4),new PickUp(3,"皮卡雪",450,4,2),new Bus(4,"金龙",800,20),new Truck(5,"松花江",400,4),new Truck(6,"依维柯",1000,20)};
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Users user=new Users();
        user.isUsed();
        carsnum=user.carsRentNum();
        carsid=new int[carsnum]; //用户输入的需要租车的数量即为数组的长度
        for(int i=1;i<=carsnum;i++){
            System.out.println("请输入第"+i+"辆车的序号");
            carsid[i-1]=user.carsRentID();
        }                        //用户需要租车的类型序号存入数组中
        carsday=user.carRentDays();
        user.displayBill();

    }
    //是否使用答答租车系统,若使用,则打印租车类型及价目表;若使用,则退出
    void isUsed(){
        System.out.println("欢迎使用答答租车系统\n");
        System.out.println("您是否要租车:(1 是 0 否)"); 
        Scanner input=new Scanner(System.in);
        int inputnum=input.nextInt();
        if(inputnum==1){
            System.out.println("您可租车的类型及其价目表:\n"+"序号\t"+"汽车名称\t"+"租金\t"+"容量\t");
            for(Cars carsForUser:carsForRent){
                if(carsForUser.getClass()==Bus.class){
                    System.out.println(carsForUser.id+".\t"+carsForUser.carsname+"\t"+carsForUser.carsrental+"元/天\t"+"载人:"+carsForUser.personLoad+"人"+"\n");
                }
                else if(carsForUser.getClass()==Truck.class){
                    System.out.println(carsForUser.id+".\t"+carsForUser.carsname+"\t"+carsForUser.carsrental+"元/天\t"+"载货:"+carsForUser.goodLoad+"吨"+"\n");  
                }
                else if(carsForUser.getClass()==PickUp.class){
                    System.out.println(carsForUser.id+".\t"+carsForUser.carsname+"\t"+carsForUser.carsrental+"元/天\t"+"载人:"+carsForUser.personLoad+"人\t"+"载货:"+carsForUser.goodLoad+"吨"+"\n");   
                }
            }
        }else{
            System.exit(0);
        }
    }
    //用户需要租车的数量
    int carsRentNum(){
        System.out.println("请输入您要租汽车的数量:");
        Scanner input=new Scanner(System.in);
        int inputnum=input.nextInt();
        return inputnum;        
    }
    //用户需要哪辆车,输入对应车型的序号
    int carsRentID(){
        Scanner input=new Scanner(System.in);
        int inputnum=input.nextInt();
        return inputnum;
    }
    //用户需要租车的天数
    int carRentDays(){
        System.out.println("请输入租车天数:");
        Scanner input=new Scanner(System.in);
        int inputnum=input.nextInt();
        return inputnum;
    }
    //打印用户的账单
    void displayBill(){
        StringBuilder str_person=new StringBuilder();
        StringBuilder str_goods=new StringBuilder();
        for(int id:carsid){
            for(Cars carsForUser:carsForRent){
                if(carsForUser.id==id){
                    allmoney+=carsForUser.carsrental;//
                    if(carsForUser.getClass()==Bus.class){
                        str_person.append(carsForUser.carsname+" ");
                        allpersons+=carsForUser.personLoad;
                    }
                    if(carsForUser.getClass()==Truck.class){
                        str_goods.append(carsForUser.carsname+" ");
                        allgoods+=carsForUser.goodLoad;
                    }
                    if(carsForUser.getClass()==PickUp.class){
                        str_person.append(carsForUser.carsname+" ");
                        str_goods.append(carsForUser.carsname+" ");
                        allpersons+=carsForUser.personLoad;
                        allgoods+=carsForUser.goodLoad;
                    }
                }
            }
        }
        System.out.println("您的账单:\n"+"***可载人的车有:\n"+str_person.toString()+"\t共载人:"+allpersons+"人\n");
        System.out.println("***可载货的车有:\n"+str_goods.toString()+"\t共载货:"+allgoods+"吨\n");
        System.out.println("***租车总价格:"+allmoney*carsday+"元\n");

    }
}

在Eclipse中运行即可。
图片描述

图片描述

打开App,阅读手记
15人推荐
发表评论
随时随地看视频慕课网APP

热门评论

这个中间有很多错误嘛!系统里面的 user.isUsed();以及后面的几个词汇 都没有预先定义方法 直接引用   自然会报错  后面if语句里面多加一个for而且还不是循环,逻辑语法就是错误的


构造也可以直接写一个默认值,属性最好是私有化,  程序写大了,万一被改动,很难找到什么地方的问题,所以尽量一定要私有

方法的模块细分还是挺好的,  我是执行类里面 只写了两个方法,  一个是display  用于展示用户输入信息   一个是billPrint  打印账单    

查看全部评论