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

面向对象的习题

package demo.faceobj;
import java.util.*;
public class test {

    public static void main(String[] args) {
        int pSum=0;//总人数
        int oSum=0;//总货物量
        double sumMon=0;//总金额
        Car[] crent={new peCar("奥迪",500,4),new peCar("马自达",400,4),new pickCar("皮卡",450,4,2),new
                peCar("金龙",800,20),new obCar("松花江",400,4),new obCar("依维河",1000,20)};
        System.out.println("欢迎使用租车系统:");
        System.out.println("您是否需要租车:1是 0否");
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        if(n==1){
            System.out.println("您可租车的类型及其价目表:");
            System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"容量");
            for(int i=0;i<crent.length;i++){
                System.out.print(i+1+".\t");
                crent[i].print();
            }
            
            
            System.out.println("请输入要租车的数量:");
            int num=input.nextInt();
            int [] x=new int[num];//用以保存车序的数组

            for(int i=0;i<num;i++){
                System.out.println("请输入第"+(i+1)+"量车的序号:");
                int Cnum=input.nextInt();
                int innum=Cnum-1;
                x[i]=innum;    
            }
            
            
            System.out.println("请输入租车天数:");
            int Day=input.nextInt();
            
            System.out.println("您的账单:");
            System.out.println("***可载人的车有:");
            for(int i=0;i<x.length;i++){
                if(x[i]==0||x[i]==1||x[i]==2||x[i]==3){
                    System.out.print(crent[x[i]].name+"\t");
                    pSum+=crent[x[i]].pnum;
                    sumMon+=crent[x[i]].mon;
                }
            }
            System.out.println("共载人:"+pSum+"人");
            System.out.println("***可载货的车有:");
            for(int i=0;i<x.length;i++){
                if(x[i]==2||x[i]==4||x[i]==5){
                    System.out.print(crent[x[i]].name+"\t");
                    oSum+=crent[x[i]].onum;
                    sumMon+=crent[x[i]].mon;
                }
            }
            for(int i=0;i<x.length;i++){
                if(x[i]==2){
                    sumMon=sumMon-crent[x[i]].mon;
                }
            }
            System.out.println("共载货:"+oSum+"吨");
            
            
            sumMon*=Day;
            System.out.print("***租车总价格:"+sumMon);
            
        }else{
            System.out.println("退出系统");
        }
    }
}

关于面向对象内容最后的一个习题。然后我这个代码我觉得输出的代码写的不好,有没大神能帮忙改正一下,而且这个存在BUG,如果选的车辆序号是同一辆最后会输出多个相同车名,如果要更改就需要增加一段代码进行判断是否有重复车序,所以我希望能有更简便的代码有没可以分享相互学习学习,万分感谢。

正在回答

2 回答

package demo.faceobj;

public abstract class Car {
    public String name;
    public int mon;
    public int pnum;
    public int onum;
    public Car(){
        this.name=null;
        this.mon=0;
        this.pnum=0;
        this.onum=0;
    }
    public abstract void print();
}
***************
package demo.faceobj;

public class peCar extends Car {
    public peCar(String newname,int newmon,int newpnum){
        this.name=newname;
        this.mon=newmon;
        this.pnum=newpnum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载人:"+pnum+"人");
    }
}
*************
package demo.faceobj;

public class obCar extends Car {
    public obCar(String newname,int newmon,int newonum){
        this.name=newname;
        this.mon=newmon;
        this.onum=newonum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载货:"+onum+"吨");
    }
}
****************

package demo.faceobj;

public class pickCar extends Car {
    public pickCar(String newname,int newmon,int newpnum,int newonum){
        this.name=newname;
        this.mon=newmon;
        this.pnum=newpnum;
        this.onum=newonum;
    }
    public void print(){
        System.out.println(name+"\t"+mon+"元/天"+"\t"+"载人:"+pnum+"  载货:"+onum+"吨");
    }
}

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

我不是大神哈,但是你能把其他几个子class粘出来一下吗?不然得自己编。

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

柒_夜4080291 提问者

额额,疏忽了。字数太多不能直接回复,贴在下面了。麻烦了,谢谢。
2016-11-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       531215    人
  • 解答问题       6327    个

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

进入课程

面向对象的习题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号