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

答答租车系统求大神指点,指出不足之处 看了1、2季,一开始想的太多,没有思路不知道从哪下手,后来参考部分慕友的思路 写了4个晚上才写完,本来还想再完善完善,看看哪里还可以改进,但是明天要出差培训了,赶工赶到现在才刚赶完

package carrentsys;//系统首页
import java.util.Scanner;//扫描
public class Dadazuchexitong {
public void dadazuchexitong1 (){
	System.out.println("欢迎使用答答租车系统");
	System.out.println("您是否要租车:1是  0否");//租车系统界面
}
public void dadazuchexitong2 (){
	Scanner input=new Scanner(System.in);
	int in = input.nextInt();	
	if(in==0){
		System.out.println("谢谢使用,欢迎再次登录!");
		System.exit(0);//方法结束,退出答答租车系统
	}else if(in==1){
		System.out.println("您可租车的类型及其价目表:");
	
	}else{
		System.out.println("输入有误,请重新输入!");
		System.out.println("您是否要租车:1是  0否");
		dadazuchexitong2();	
	}
}
}
package carrentsys;

public class Car {//Car分类是为了后期的维护更方便    把三种车型分开    系统中车子的序号、名字、租金为车的共有属性,创建Car父类简化代码 容量分载人载物,定义变量方便调用
	 int num;
	 String name;
	 double rent;
	 int lond1;//容量为载人
	 int lond2;//容量为载物,
	public  Car(int num,String name,double rent){//创建一个有参的构造函数,方便对车的参数信息进行编辑录入
		this.num=num;//this关键字的应用
		this.name=name;
		this.rent=rent;
		
	}
	

}
package carrentsys;

public class Privatecar extends Car {
	public Privatecar(int num, String name, double rent, int lond1) {
		super(num, name, rent);
		this.lond1=lond1;
		// TODO Auto-generated constructor stub
	}
	@Override
	public String toString() { //重写Truck的toString(),,因为没有重写的话默认调用object类的toString()方法,打印的是地址值
		return   num + ".   " + name + "   " + rent  //返回有参构造函数的值
				+ "元/天    " +"载人:"+ lond1 + "人   ";
	}



}
package carrentsys;

public class Truck extends Car {

	public Truck(int num, String name, double rent, int lond2) {
		super(num, name, rent);
		this.lond2=lond2;
		// TODO Auto-generated constructor stub
	}

	@Override
	public String toString() {//重写Truck的toString(),,因为没有重写的话默认调用object类的toString()方法,打印的是地址值
		return   num + ".   " + name + "       " + rent //返回有参构造函数的值
				+ "元/天    " +"载货:"+ lond2 + "吨   ";
	}
	

}
package carrentsys;
public class Pickup extends Car {
	public Pickup(int num, String name, double rent, int lond1, int lond2) {
		super(num, name, rent);
		this.lond1=lond1;
		this.lond2=lond2;
		// TODO Auto-generated constructor stub
	}
	
		@Override
	public String toString() {//重写Truck的toString(),,因为没有重写的话默认调用object类的toString()方法,打印的是地址值
			return   num + ". " + name + "  " + rent  //返回有参构造函数的值
					+ "元/天     " +"  载人:"+ lond1 + "人   " +"载货:"+ lond2 + "吨";
	}

}
package carrentsys;

public  class CarList { //车子的列表信息
	public static Car[] Carlist={new Privatecar(001," 奥迪A4", 500, 4),
			new Privatecar(002," 马自达6", 400, 4),new Pickup(003 ,"   皮卡雪6",450,4,2),
			new Privatecar(004 ,"  金龙        ",800,20),	new Truck(005 ,"  松花江 ",400,4),	
			new Truck(006 ,"  依维柯 ",1000,20)};//  定义一个静态变量的数组来存储Car类的信息,静态方便调用相当于全局变量
	public static void carlist(){
		System.out.println("序号         汽车名称             租金           容量");
		for(int i=0;i<Carlist.length;i++){//使用循环遍历输出数组Car内的内容
			System.out.println();   //打印的时候空一行,使得结果更清晰
			System.out.println(Carlist[i]);
		}
	}

}
package carrentsys;  //租车客户信息的采集
import java.util.Scanner;//import调用util中的Scanner扫描工具  输入的数据
public class RentInfo {
	static int rentnum,rentday;//租车数量、天数 后期算账单时要使用,定义为静态变量
	static int carchoose[]=new int[CarList.Carlist.length];//定义一个数组,用来存储用户选择的车的类型,记得数组要初始化 数组长度由车子的数量决定,即Carlist的数组长度  后面还继续使用定义为静态变量,方便调用
	public static void rentinfo(){
		System.out.println("请输入您要租汽车的数量:(1到"+CarList.Carlist.length+"之间)");
		Scanner num=new Scanner(System.in);//调用Scanner建立初始化对象
		rentnum=num.nextInt();//采集租客输入的租车数量
		if (rentnum>CarList.Carlist.length||rentnum<0){//判断输入的是否是有效数字,是则继续,否则提示有误重新输入
			System.out.println("输入有误,请重新输入!!!");
			rentinfo();	//通过调用rentinfo()来实现跳转 直到输入有效数据
		}else{
			for(int i=0;i<rentnum;i++){			
				System.out.println("请输入第"+(i+1)+"辆车的序号:");
				Scanner carnum=new Scanner(System.in);
				carchoose[i]=carnum.nextInt();//把输入的车的序号存储在carchoose数组中
			}
			
		System.out.println("请输入租车天数:");
		Scanner day=new Scanner(System.in);
		rentday=day.nextInt();//采集客户输入的租车天数
		}
	}
package carrentsys;

public class Rentbill {
	   static int t;
	static int f=0;
	static int g=0;//t,f,g都有在调用静态值,处理的是静态引用
	static double rent=0,bill=0;//处理的是静态引用,得定义成静态变量
public static void rentbill(){
	System.out.println("您的账单:");
	System.out.println("***可载人的车有:");
	for(int i=0;i<RentInfo.rentnum;i++){
		t=RentInfo.carchoose[i];
		 rent += CarList.Carlist[t-1].rent;//一天 的租金
		if(CarList.Carlist[t-1].lond1>0){//通过调用lond1来判断选择的车型是否可以载人,可以则输出车型名称,否则继续
			System.out.print(CarList.Carlist[t-1].name);//输出选择的车型中可以载人的车型名称
		}
		
			f+=CarList.Carlist[t-1].lond1;//统计客户所租车型能够载客的人数
			
		
	}
	System.out.print("共载人:"+f+"人");
	System.out.println();
	System.out.println("***可载货的车有:");
	for(int i=0;i<RentInfo.rentnum;i++){
		t=RentInfo.carchoose[i];
		if(CarList.Carlist[t-1].lond2>0){//通过调用lond2来判断选择的车型是否可以载货,可以则输出车型名称,否则继续
			System.out.print(CarList.Carlist[t-1].name);//输出选择的车型中可以载货的车型名称
			}
		g+=CarList.Carlist[t-1].lond2;//统计客户所租车型能够载货的吨数

	}
	bill=rent*RentInfo.rentday;//计算账单
	System.out.print("  共载货:"+g+"吨");
	System.out.println();
    System.out.print("***租车总价格:"+bill+"元");
}
}
package carrentsys;//测试类

public class Initail {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Dadazuchexitong in=new Dadazuchexitong();//建立对象
in.dadazuchexitong1();//系统首页  调用对象方法1
in.dadazuchexitong2();//  调用对象方法2
CarList.carlist();//汽车车型列表 数据
RentInfo.rentinfo();//业务模型
Rentbill.rentbill();//显示模型
	}

}


正在回答

3 回答

还有计算价格有BUG啊

0 回复 有任何疑惑可以回复我~
package carrentsys;
 
public class Rentbill {
       static int t;
    static int f=0;
    static int g=0;//t,f,g都有在调用静态值,处理的是静态引用
    static double rent=0,bill=0;//处理的是静态引用,得定义成静态变量
public static void rentbill(){
    System.out.println("您的账单:");
    System.out.println("***可载人的车有:");
    for(int i=0;i<RentInfo.rentnum;i++){
        t=RentInfo.carchoose[i];
         rent += CarList.Carlist[t-1].rent;//一天 的租金
        if(CarList.Carlist[t-1].lond1>0){//通过调用lond1来判断选择的车型是否可以载人,可以则输出车型名称,否则继续
            System.out.print(CarList.Carlist[t-1].name);//输出选择的车型中可以载人的车型名称
        }
         
            f+=CarList.Carlist[t-1].lond1;//统计客户所租车型能够载客的人数
             
         
    }
    System.out.print("共载人:"+f+"人");
    System.out.println();
    System.out.println("***可载货的车有:");
    for(int i=0;i<RentInfo.rentnum;i++){
        t=RentInfo.carchoose[i];
        if(CarList.Carlist[t-1].lond2>0){//通过调用lond2来判断选择的车型是否可以载货,可以则输出车型名称,否则继续
            System.out.print(CarList.Carlist[t-1].name);//输出选择的车型中可以载货的车型名称
            }
        g+=CarList.Carlist[t-1].lond2;//统计客户所租车型能够载货的吨数
 
    }
    bill=rent*RentInfo.rentday;//计算账单
    System.out.print("  共载货:"+g+"吨");
    System.out.println();
    System.out.print("***租车总价格:"+bill+"元");
}
}
    t-1  想了半天没想明白怎么回事
0 回复 有任何疑惑可以回复我~

挺好啊,这项目简单

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

举报

0/150
提交
取消

答答租车系统求大神指点,指出不足之处 看了1、2季,一开始想的太多,没有思路不知道从哪下手,后来参考部分慕友的思路 写了4个晚上才写完,本来还想再完善完善,看看哪里还可以改进,但是明天要出差培训了,赶工赶到现在才刚赶完

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

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

帮助反馈 APP下载

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

公众号

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