租车系统,小白一个,,过程有点乱,望高手们指点指点。
import java.util.Scanner;
public class Car
{
Scanner in=new Scanner(System.in);
int q,b,d,l,a,o,k,cs=0,p=0;//cs表示载人的累加值。p表示可载货车辆的累加值。
double s,count=0,ds=0;//count表示租金的累加值。ds表示吨位的累加值。
public Ddffdsf(int newA) //构造方法初始化a值
{
a=newA;
}
public void cl()
{
if(a==1) //当a为1时输出以下表格并调用本类中的cc方法
{
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号 汽车名称 租金 容量");
System.out.println(" 1 奥迪A8 10000元/天 载人:2人");
System.out.println(" 2 兰博基尼 12220元/天 载人:2人");
System.out.println(" 3 奔驰S600 9000元/天 载人:5人");
System.out.println(" 4 宝马M8 9999元/天 载人:4人");
System.out.println(" 5 皮卡 888元/天 载人:4人 可载货:2吨");
System.out.println(" 6 林肯加长 22222元/天 载人:12人");
System.out.println(" 7 法拉利 77777元/天 载人: 2人");
System.out.println(" 8 一汽卡车 777元/天 载人: 2人 可载货:10吨");
cc();
}
else //当输入的数不是1时,输出"欢迎下次光临!"。
{
System.out.println("欢迎下次光临!");
}
}
public void cc()
{
System.out.print("请输入您要租汽车的数量:");
b=in.nextInt(); //读取一个整数
if(b>0) //b如果大于0
{
this.b=b; //把读取的b赋值给this.b
for(int i=0;i<b;i++) //使用for循环让用户输入要选择车辆的序号
{
System.out.print("请输入第"+(i+1)+"辆汽车的序号:");
q=in.nextInt(); //读取用户输入的序号
if(q<=0|q>8) //如果用户输入的序号不在系统规定的范围内,则运行大括号里面的代码
{
while(q<=0|q>8) //则使用while循环 以提示用户重新输入,只有重新输入的序号在规定的范围内,循环才会结束。
//这样避免输入错误后又要重新运行系统
{
System.out.println("您输入的序号错误,请重新输入。");
System.out.print("请输入第"+(i+1)+"辆汽车的序号:");
q=in.nextInt();
} //如果重新输入的序号在规定的范围内,则系统会进行判断,进行配对和运算
if(q==1){d=2;s=10000;count=count+s;cs=cs+d;}
if(q==2){d=2;s=12220;count=count+s;cs=cs+d;}
if(q==3){d=5;s=9000;count=count+s;cs=cs+d;}
if(q==4){d=4;s=9999;count=count+s;cs=cs+d;}
if(q==5){d=4;k=2;s=888;count=count+s;cs=cs+d;ds=ds+k;p++;}
if(q==6){d=12;s=22222;count=count+s;cs=cs+d;}
if(q==7){d=2;s=77777;count=count+s;cs=cs+d;}
if(q==8){d=2;k=10;s=777;count=count+s;cs=cs+d;ds=ds+k;p++;}
}
else //如果用户输入序号在系统规定的范围内,则运行大括号里面的代码,进行累加运算
{
if(q==1){d=2;s=10000;count=count+s;cs=cs+d;}
if(q==2){d=2;s=12220;count=count+s;cs=cs+d;}
if(q==3){d=5;s=9000;count=count+s;cs=cs+d;}
if(q==4){d=4;s=9999;count=count+s;cs=cs+d;}
if(q==5){d=4;k=2;s=888;count=count+s;cs=cs+d;ds=ds+k;p++;}
if(q==6){d=12;s=22222;count=count+s;cs=cs+d;}
if(q==7){d=2;s=77777;count=count+s;cs=cs+d;}
if(q==8){d=2;k=10;s=777;count=count+s;cs=cs+d;ds=ds+k;p++;}
}
}
System.out.print("请输入租车天数:");
l=in.nextInt();
if(l>0) //如果读取的天数大于0,则运行大括号里面的代码
{
this.l=l; //将读取到的天数l赋值给this.l
if(ds>0) //判断吨位的累加值是否大于0,如果大于0则最终输出会带有吨位和提示可载货的车辆有多少
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人"+"可载货的车辆有:"+p+"辆"+" "+"其中总可载货"+ds+"吨");
System.out.println("欢迎您下次光临!");
}
else //如果吨位的累加值小于或等于0,则最终输出就只有总载人数和价格
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人");
System.out.println("欢迎您下次光临!");
}
}
else //这个else代表如果用户输入租车的天数小于0,就也会进入一个while循环,提示用户重新输入租车天数。
//这样也可以避免到输入天数的时候,输入错误时,不会导致又要再次运行系统重新开始。
{
while(l<=0)
{
System.out.println("您输入租车天数的数据有误,请重新输入。");
l=in.nextInt();
}
this.l=l; //当重新输入的租车天数不满足while循环的条件时,就会把l值赋值给this.l
if(ds>0)
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人"+"可载货的车辆有:"+p+"辆"+" "+"其中总可载货:"+ds+"吨");
System.out.println("欢迎您下次光临!");
}
else
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人");
System.out.println("欢迎您下次光临!");
}
}
}
else //表示如果刚开始输入的数量b小于等于0
//再次利用while循环
{
while(b<=0)
{
System.out.println("您输入租汽车的数量数据有误,请重新输入。");
b=in.nextInt();
}
this.b=b; //因为重新输入的数量b大于0,所以就得从获取序号这步继续运行下去
for(int i=0;i<b;i++)
{
System.out.print("请输入第"+(i+1)+"辆汽车的序号:");
q=in.nextInt();
if(q<=0|q>8)
{
while(q<=0|q>8)//当重新输入的数量正确时,接下来序号输入错误,那么就用while循环提示用户修改,直到正确才执行下一步
{
System.out.println("您输入的序号错误,请重新输入。");
System.out.print("请输入第"+(i+1)+"辆汽车的序号:");
q=in.nextInt();
}
if(q==1){d=2;s=10000;count=count+s;cs=cs+d;}
if(q==2){d=2;s=12220;count=count+s;cs=cs+d;}
if(q==3){d=5;s=9000;count=count+s;cs=cs+d;}
if(q==4){d=4;s=9999;count=count+s;cs=cs+d;}
if(q==5){d=4;k=2;s=888;count=count+s;cs=cs+d;ds=ds+k;p++;}
if(q==6){d=12;s=22222;count=count+s;cs=cs+d;}
if(q==7){d=2;s=77777;count=count+s;cs=cs+d;}
if(q==8){d=2;k=10;s=777;count=count+s;cs=cs+d;ds=ds+k;p++;}
}
else //重新输入数量b正确后,输入序号也在系统的范围内,则执行这一步
{
if(q==1){d=2;s=10000;count=count+s;cs=cs+d;}
if(q==2){d=2;s=12220;count=count+s;cs=cs+d;}
if(q==3){d=5;s=9000;count=count+s;cs=cs+d;}
if(q==4){d=4;s=9999;count=count+s;cs=cs+d;}
if(q==5){d=4;k=2;s=888;count=count+s;cs=cs+d;ds=ds+k;p++;}
if(q==6){d=12;s=22222;count=count+s;cs=cs+d;}
if(q==7){d=2;s=77777;count=count+s;cs=cs+d;}
if(q==8){d=2;k=10;s=777;count=count+s;cs=cs+d;ds=ds+k;p++;}
}
System.out.print("请输入租车天数:");
l=in.nextInt();
if(l>0)//重新输入数量b正确后,输入序号也在系统的范围内,接下来的租车天数输入的值也正确,则执行这一步
{
this.l=l;
if(ds>0)
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人"+" "+"其中可载货的车辆有:"+p+"辆"+" "+"总可载货:"+ds+"吨");
System.out.println("欢迎您下次光临!");
}else
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人");
System.out.println("欢迎您下次光临!");
}
}
else //重新输入数量b正确后,输入序号也在系统的范围内,接下来的租车天数输入的值不正确,则执行这一步
//利用while循环提示用户进行修改
{
while(l<=0)
{
System.out.println("您输入租车天数的数据有误,请重新输入。");
l=in.nextInt();
}
this.l=l;
if(ds>0)
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人"+" "+"其中可载货的车辆有:"+p+"辆"+" "+"总可载货:"+ds+"吨");
System.out.println("欢迎您下次光临!");
}
else
{
System.out.println("您需支付"+count*l+"元"+" "+"总共可载客人数为:"+cs+"人");
System.out.println("欢迎您下次光临!");
}
}
}
}
}
}
**********************************************************
//创建第二个类,名称为Main,在main函数里调用Car中的cl方法
public class Main {
public static void main(String[] args) {
int a;
Scanner in=new Scanner(System.in);
System.out.println("欢迎光临飞腾租车!");
System.out.println("是否需要租车:1是 0否");
a=in.nextInt();
Car b=new Car(a);
b.cl();
}
}