面向对象的习题
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,如果选的车辆序号是同一辆最后会输出多个相同车名,如果要更改就需要增加一段代码进行判断是否有重复车序,所以我希望能有更简便的代码有没可以分享相互学习学习,万分感谢。