租车小程序

一、问题描述

编写一个控制台程序,要求实现如下功能:

1.展示所有可租车辆

2.选择车型,租车量

3.显示租车清单,包括:总载货量,总载客量,总金额等;

4.车辆类型

客车:只能载客

货车:只能载货

皮卡:既能载人,有能载货

二、实现思路

1.实现租车程序首先要有车辆,所以要定义一个车辆类。由于车辆有很多,所以定义一个抽象类。类中需要包含车辆的类型、车辆的载货量、车辆的载客量以及租车金额等。

2.有了车辆后,还需要一个停放车辆的停车库,所以要定义一个车库类,车库类继承车辆类,并在车库类中实现车辆类。

3.在有了车辆和车库内存放的车后,要实现租车功能还需要定义一个租车类并且可以在租车类中显示车库类的车辆信息,用户可以自主的选择所租用的车辆类型。

4.租用车辆后,还需要一个还车类,以便于用户用完后进行还车操作。

5.在实现租车和还车时候,还需要统计用户的信息,例如姓名、电话等信息。所以还需要定义一个用户类,来统计这些信息。

6.最后还需要定义一个测试类,来测试运行这段程序是否能够运行和正确的租用和还车操作。

三、运行结果

1.租车操作:

 

 

2.还车操作:

 

三、代码实现

1.车辆类

package 租车小程序;

public abstract class 车辆类 {
	//客车
	public static void car1(String car,int carpeople,double carmany,int carnumber) {
		System.out.println(car+"\t"+carpeople+"\t不可载货\t"+carmany+"/天\t"+carnumber);
	}
	//货车
	public static void car2(String car,int carwright,double carmany,int carnumber) {
		System.out.println(car+"\t不可载货\t"+carwright+"kg\t"+carmany+"/天\t"+carnumber);
	}
	//皮卡
	public static void car3(String car,int carpeople,int carwright,double carmany,int carnumber) {
		System.out.println(car+"\t"+carpeople+"\t"+carwright+"\t"+carmany+"/天\t"+carnumber);
	}
}

2.车库类

package 租车小程序;
public class 车库类 extends 车辆类 {
	//客车
	public static class car1{
		public static void CK() {
			System.out.println("车辆类型\t乘坐人数\t载重货物\t日租费用\t剩余车辆");
			System.out.println("客车");
			车辆类.car1("型号1:",20,100,20);
			车辆类.car1("型号2:",30,200,20);
			车辆类.car1("型号3:",35,300,20);
			System.out.println("--------------------------------------------");
		}
	}
	//货车
	public static class car2{
		public static void CK() {
			System.out.println("货车");
			车辆类.car2("型号1:",200,200,20);
			车辆类.car2("型号2:",300,300,20);
			车辆类.car2("型号3:",400,400,20);
			System.out.println("--------------------------------------------");
		}
	}
	//皮卡
	public static class car3{
		public static void CK() {
			System.out.println("皮卡");
			车辆类.car3("型号1:",5,30,100,20);
			车辆类.car3("型号2:",6,20,200,20);
			车辆类.car3("型号3:",8,10,300,20);
			System.out.println("--------------------------------------------");
		}
	}
	//转到租车类
	public static void zc() {
		租车类.ZC1();
	}
}

3.用户类

package 租车小程序;
import java.util.Scanner;
public class 用户类 {
	private static String name;
	private static String num;
	private static Scanner scanner;
	//租车用户登记
	public static void namenum() {
		scanner = new Scanner(System.in);
		System.out.println("姓名");
		name=scanner.next();
		System.out.println("电话");
		num=scanner.next();
		租车类.end();
	}
	//还车用户登记
	public static void namenum1() {
		scanner = new Scanner(System.in);
		System.out.println("姓名");
		name=scanner.next();
		System.out.println("电话");
		num=scanner.next();
		还车类.end();
	}
}

4.还车类

package 租车小程序;
import java.util.Scanner;
public class 还车类{
	private static Scanner scanner;
	//选择还车类型
	public static void HC() {
		System.out.println("********************************************");
		System.out.println("请选择归还车辆类型:\n1.客车\t2.货车\t3.皮卡");
		scanner = new Scanner(System.in);
		int i=scanner.nextInt();
		if(i==1) {
			还车类.HC1();
		}
		if(i==2) {
			还车类.HC2();
		}
		if(i==3) {
			还车类.HC3();
		}
	}
	//客车
	public static void HC1() {
		System.out.println("您已经选择:");
		System.out.println("客车");
		System.out.println("您的姓名和手机号,便于我们帮助您归还所租用车辆");
		用户类.namenum1();
	}
	//货车
	public static void HC2() {
		System.out.println("您已经选择:");
		System.out.println("货车");
		System.out.println("您的姓名和手机号,便于我们帮助您归还所租用车辆");
		用户类.namenum1();
	}
	//皮卡
	public static void HC3() {
		System.out.println("您已经选择:");
		System.out.println("皮卡");
		System.out.println("您的姓名和手机号,便于我们帮助您归还所租用车辆");
		用户类.namenum1();
	}
	//还车结束
	public static void end() {
		System.out.println("********************************************");
		System.out.println("车辆检查中........");
		System.out.println("检查无误,送去保养.........");
		System.out.println("********************************************");
		System.out.println("(*-*)恭喜您已完成还车,望您再次使用(*-*)");
	}
}

5.租车类

package 租车小程序;
import java.util.Scanner;
public class 租车类 {
	private static Scanner scanner;
	//显示可租用车辆
	public static void ZC() {
		System.out.println("********************************************");
		System.out.println("本系统有以下可供租用车辆:");
		System.out.println("--------------------------------------------");
		车库类.car1.CK();
		车库类.car2.CK();
		车库类.car3.CK();
		车库类.zc();
	}
	//选择租用车辆
	public static void ZC1() {
		scanner = new Scanner(System.in);
		System.out.println("请选择租用类型:1.客车\t2.货车\t3.皮卡");
		int i=scanner.nextInt();
		//租用客车
		if(i==1) {
			租车类.car1();
		}
		//租用货车
		if(i==2) {
			租车类.car2();
		}
		//租用皮卡
		if(i==3) {
			租车类.car3();
		}
	}
	//租用客车
	public static void car1() {
			System.out.println("您已经选择:");
			System.out.println("客车");
			车库类.car1.CK();
			System.out.println("请选择租用型号,和租用数量,租用天数");
			int n=scanner.nextInt();
			int num=scanner.nextInt();
			int day=scanner.nextInt();
			if(n==1) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car1("型号1:",20,100,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==2) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car1("型号2:",30,200,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==3) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car1("型号3:",35,300,20);
					DD(num,day);
				}
				else
					not();
			}
		}
	//租用货车
	public static void car2() {
			System.out.println("货车");
			车库类.car2.CK();
			System.out.println("请选择租用型号,和租用数量,租用天数");
			int n=scanner.nextInt();
			int num=scanner.nextInt();
			int day=scanner.nextInt();
			if(n==1) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car2("型号1:",200,200,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==2) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car2("型号2:",300,300,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==3) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car2("型号3:",400,400,20);
					DD(num,day);
				}
				else
					not();
			}
		}
	//租用皮卡
	public static void car3() {
			System.out.println("皮卡");
			车库类.car3.CK();
			System.out.println("请选择租用型号,和租用数量,租用天数");
			int n=scanner.nextInt();
			int num=scanner.nextInt();
			int day=scanner.nextInt();
			if(n==1) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car3("型号1:",5,30,100,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==2) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car3("型号2:",6,20,200,20);
					DD(num,day);
				}
				else
					not();
			}
			if(n==3) {
				if(num<=20) {
					System.out.println("您已经选择:");
					车辆类.car3("型号3:",8,10,300,20);
					DD(num,day);
				}
				else
					not();
		}

}
	//租车结束
	public static void end() {
		System.out.println("********************************************");
		System.out.println("(*-*)恭喜您已完成租车,祝您路途愉快一路顺风(*-*)");
	}
	//订单确认
	public static void DD(int num,int day) {
		System.out.println("租用数量:"+num);
		System.out.println("租用天数:"+day);
		System.out.println("租用费用:"+(100*day*num)+"元");
		System.out.println("请输入您的姓名和电话,以帮助您完成租车工作");
		用户类.namenum();
	}
	//车辆不够结束
	public static void not() {
		System.out.println("非常抱歉,我们不能提供足够的车辆供您使用");
		return;
	}
}

6.测试类

package 租车小程序;
import java.util.Scanner;
public class 测试类 {
	private static Scanner scanner;
	public static void main(String[] args) {
		int i;
		System.out.println("欢迎使用在线租车系统,我们将为您提供最优的服务");
		System.out.println("请选择您要办理的业务:\n1.租车\t2.还车");
		scanner = new Scanner(System.in);
		i=scanner.nextInt();
		if(i==1) {
			租车类.ZC();
		}
		if(i==2) {
			还车类.HC();
		}
	}
}

 

一个简单的汽车租赁管理系统(C++控制台程序): 利用C++实现对汽车和客户信息的增、删、改等操作,并保存。 部分代码: // CarRent.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "CarData.h" #include "Menu.h" #include"CustomerData.h" int main() { Menu::welcome(); Menu::login(); //登录界面 char choice; int carid, customerid; //汽车编号,客户编号 CustomerData CustomerDB; //客户库 Customer *r; //客户 CarData CarDB; //汽车库 Car *b; //汽车 Menu::showMenu(); //显示菜单 cout <> choice; while (choice != '0') { switch (choice) { case '1': //输入客户编号和要出租的汽车 cout <> customerid; try { if (customerid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } cout <> carid; try { if (carid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } r = CustomerDB.search(customerid); if (NULL == r) { cout << "不存在该客户!"; cout << endl; break; } b = CarDB.search(carid); if (b == NULL) { cout << "不存在该汽车!"; cout <borrowCar() == 0) { cout << "该汽车已租出!"; cout <borrowCar(b->getNo()); cout << "你在" <getBorTime()) << "成功出租一辆" <getName() << endl << "每日租金为(不足一天按一天计算):" <getPay(); break; case '2': //归还操作 cout <> customerid; try { if (customerid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } cout <> carid; try { if (carid <= 0) throw 1; } catch (...) { cout << "输入有误,请重新输入"; break; } r = CustomerDB.search(customerid); //按编号查找 if (r == NULL) { cout << "不存在该客户!" << endl; break; } b = CarDB.search(carid); if (b == NULL) { cout << "不存在该汽车!" <getOnshelf() == 1) { cout << "该汽车已经归还!" << endl; break; } cout << "您成功归还一辆"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值