面向对象的习题

来源:12-2 项目问题解析 1

柒_夜4080291

2016-11-13 20:43

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回答

  • 柒_夜4080291
    2016-11-15 09:32:02

    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+"吨");
        }
    }

  • 362517090
    2016-11-14 00:49:42

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

    柒_夜408...

    额额,疏忽了。字数太多不能直接回复,贴在下面了。麻烦了,谢谢。

    2016-11-15 09:32:50

    共 1 条回复 >

Java入门第二季 升级版

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

531107 学习 · 6311 问题

查看课程

相似问题