此设计代码参考了部分同学的设计代码,实现全部功能,但还是存在以下问题:
1,用户在租车数量处没有按照提示,输入错误时,只能返回一次,即多输入几次错误,程序会出问题。
2,用户在租车类型处没有按照提示,输入错误时,未设计返回重新输入的代码。
3,此代码感觉冗长。
此为主程序ZucheSystem代码:
package Car;
import java.util.Scanner;
public class ZucheSystem {
public static void printInfo(Cardisplay[] cars){
for(int i =0;i<cars.length;i++){
System.out.print((i+1)+".\t");
cars[i].Fangfa();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
/*此段代码为初始化车的类型*/
Cardisplay[] cars={new Jiaoche("奥迪",500,4,0),new Jiaoche("马自达",400,4,0),new Liangyongche("皮卡",450,4,2),new Keche("厦门金龙",800,20,0),new Huoche("解放牌",400,3,4),new Huoche("一汽",1000,3,20)};
/*此中间段代码为判断用户是否租车*/
System.out.println("欢迎您使用哒哒租车系统:\n请您按照系统提示输入:\n输入 1 表示您要租车,输入 0 表示您不租车");
System.out.println("请问您是否要租车:\n");
Scanner reader=new Scanner(System.in);
while(true){
String input = reader.next();
if(input.equals("1")){
System.out.println("序号\t汽车名称\t\t租金\t\t容量");
printInfo(cars);
/*此中间段代码为判断用户是否租车*/
/*此中间段代码为判断用户租车数量*/
System.out.println("由于本公司规模有限,每一辆类型的车,个人最多租售10辆,个人总租售量最多为60辆,谢谢合作");
System.out.println("请输入您要租汽车的总数量:");
while(true){
int num=reader.nextInt();
if(num>0&&num<=60){
System.out.println("请在以下车型中选择您要租售的车型型号总数");
/*此中间段程序为选择祖泽的类型总数*/
System.out.println("序号1:奥迪,序号2:马自达,序号3:皮卡,序号4:厦门金龙,序号5:解放牌,序号6:一汽");
while(true){
int num1=reader.nextInt();
if(num1>=1&&num1<=6){
int cheliangleixing[];
cheliangleixing=new int[6];
/*判断各种类型车的数量*/
System.out.println("请在以下车型中输入您需要的数量");
System.out.println("序号1:奥迪,序号2:马自达,序号3:皮卡,序号4:厦门金龙,序号5:解放牌,序号6:一汽");
for(int i=1;i<=6;i++){
if(i==1){ System.out.println("序号1:奥迪");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[0]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[0]=num3;
}
}
else if(i==2){ System.out.println("序号2:马自达");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[1]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[1]=num3;
}
}
else if(i==3){ System.out.println("序号3:皮卡");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[2]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[2]=num3;
}
}
else if(i==4){ System.out.println("序号4:厦门金龙");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[3]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[3]=num3;
}
}
else if(i==5){ System.out.println("序号5:解放牌");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[4]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[4]=num3;
}
}
else if(i==6){ System.out.println("序号6:一汽");
int num2=reader.nextInt();
if(num2<=10){
cheliangleixing[5]=num2;}else{
System.out.println("个人租单个类型的清澈最多不超过10辆,请您重新输入");
int num3=reader.nextInt();
cheliangleixing[5]=num3;
}
}else{
System.out.println("您输入的序号有误请重新输入");
}
}
int sum;
int A=cheliangleixing[0];
int B=cheliangleixing[1];
int C=cheliangleixing[2];
int D=cheliangleixing[3];
int E=cheliangleixing[4];
int F=cheliangleixing[5];
sum=A+B+C+D+E+F;
if(sum!=num){
System.out.println("请注意,您需要的清澈总数与您之前输入的不符合,我们以这次输入为准");
System.out.println("您需要租赁的汽车总数为"+sum+"辆,"+"序号1:奥迪"+A+"辆,"+"序号2:马自达"+B+"辆,"+"序号3:皮卡"+C+"辆,"+"序号4:厦门金龙"+D+"辆,"+"序号5:解放牌"+E+"辆,"+"序号6:一汽"+F+"辆");}else{
System.out.println("您需要租赁的汽车总数为"+sum+"辆");}
/*租赁汽车类型和数量*/
/*费用的计算*/
System.out.println("请您输入您需要租用的天数");
int num4=reader.nextInt();
int tianshu=num4;
System.out.println("您此次需要租用的天数为"+num4);
int qian=500*A*tianshu+400*B*tianshu+450*C*tianshu+800*D*tianshu+400*E*tianshu+1000*F*tianshu;
System.out.println("您需要支付的金额为"+qian+"元");
System.out.println("您此次租车的清单如下:");
System.out.println("您需要租用的汽车总数为"+sum+"辆,"+"您此次租用的汽车类型为序号1:奥迪"+A+"辆,"+"序号2:马自达"+B+"辆,"+"序号3:皮卡"+C+"辆,"+"序号4:厦门金龙"+D+"辆,"+"序号5:解放牌"+E+"辆,"+"序号6:一汽"+F+"辆,"+"您此次需要租用的天数为"+num4+"天,"+"您此次需要支付的金额为"+qian+"元");
}else{
System.out.println("对不起,您输入的总数应该是小于或者等于我们已有车辆类型的总数,请重新输入");
}
}
}
/*此中间段程序为选择租车的类型总数*/
else{
System.out.println("对不起,您租车的数量最多为60辆,最少为1辆,请重新输入");
}
}
/*此中间段代码为判断用户租车数量*/
/*此中间段代码为判断用户是否租车*/
}
else if(input.equals("0")){
System.out.println("虽然您不租车,但还是谢谢您的使用");
}
else{
System.out.println("对不起,您的输入有误,请重新输入数字0或者1");
}
/*此中间段代码为判断用户是否租车*/
}
}
}
此为各个分类代码:
Cardisplay类:
package Car;
public abstract class Cardisplay {
String name;
int price;
int zairenliang;
int zaihuoliang;
Cardisplay[] cars={};
public abstract void Fangfa();
}
Huoche类
package Car;
public class Huoche extends Cardisplay {
int zaihuoliang;
public Huoche(String name,int price,int zairenliang,int zaihuoliang){
this.name=name;
this.price=price;
this.zairenliang=zairenliang;
this.zaihuoliang=zaihuoliang;
}
@Override
public void Fangfa() {
// TODO Auto-generated method stub
System.out.println(name+"\t\t"+price+"元/天\t\t载人:"+zairenliang+"人\t"+" 载货:"+zaihuoliang+"吨");
}
}
Jiaoche类
package Car;
public class Jiaoche extends Cardisplay {
int zairenliang;
public Jiaoche(String name,int price, int zairenliang,int zaihuoliang){
this.name=name;
this.price=price;
this.zairenliang=zairenliang;
this.zaihuoliang=zaihuoliang;
}
@Override
public void Fangfa() {
// TODO Auto-generated method stub
System.out.println(name+"\t\t"+price+"元/天\t\t载人:"+zairenliang+"人\t"+" 载货:"+zaihuoliang+"吨");
}
}
Keche类
package Car;
public class Keche extends Cardisplay {
int zairenliang;
public Keche(String name,int price,int zairenliang,int zaihuoliang){
this.name=name;
this.price=price;
this.zairenliang=zairenliang;
this.zaihuoliang=zaihuoliang;
}
@Override
public void Fangfa() {
// TODO Auto-generated method stub
System.out.println(name+"\t\t"+price+"元/天\t\t载人:"+zairenliang+"人\t"+" 载货:"+zaihuoliang+"吨");
}
}
Liangyongche类
package Car;
public class Liangyongche extends Cardisplay {
int zairenliang;
int zaihuoliang;
public Liangyongche(String name,int price,int zairenliang,int zaihuoliang){
this.name=name;
this.price=price;
this.zairenliang=zairenliang;
this.zaihuoliang=zaihuoliang;
}
@Override
public void Fangfa() {
// TODO Auto-generated method stub
System.out.println(name+"\t\t"+price+"元/天\t\t载人:"+zairenliang+"人\t"+" 载货:"+zaihuoliang+"吨");
}
}
热门评论
Learning........
Fdsfadfadsfasdfa