一、问题描述
编写一个控制台程序,要求实现如下功能:
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();
}
}
}