继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java入门第二季达达租车系统(欢迎交流完善)

咕嘟咕咚冒个泡OoO
关注TA
已关注
手记 1
粉丝 0
获赞 11

对于租车系统,我将所学的融合到里面,这种系统有很多玩法。

基类:

public abstract class Car {

    public String carModels;//车型
    public String carName;//车名
    public int carSeat;//载客
    public double carryCargo;//载货
    public int carRent;//日租金

    public Car(){

    }
    public Car(String carModels, String carName, int carSeat, double carryCargo, int carRent) {
        this.carModels = carModels;
        this.carName = carName;
        this.carSeat = carSeat;
        this.carryCargo = carryCargo;
        this.carRent = carRent;
    }

    public String getCarModels() {
        return carModels;
    }

    public void setCarModels(String carModels) {
        this.carModels = carModels;
    }

    public String getCarName() {
        return carName;
    }

    public void setCarName(String carName) {
        this.carName = carName;
    }

    public int getCarSeat() {
        return carSeat;
    }

    public void setCarSeat(int carSeat) {
        this.carSeat = carSeat;
    }

    public double getCarryCargo() {
        return carryCargo;
    }

    public void setCarryCargo(double carryCargo) {
        this.carryCargo = carryCargo;
    }

    public int getCarRent() {
        return carRent;
    }

    public void setCarRent(int carRent) {
        this.carRent = carRent;
    }
}

子类货车:

public class truck extends Car {
        //货车
    public truck(String carModels, String carName, int carryCargo, int carRent) {
        this.setCarModels(carModels);//车型
        this.setCarName(carName);//车名
        this.setCarryCargo(carryCargo);//载货
        this.setCarRent(carRent);//日租金

    }

    @Override
    public String toString() {
        return  "   "+carModels +
                "\t" + carName +
                "\t " + carSeat +
                "人\t\t\t" + carryCargo +
                "T\t\t" + carRent +
                "$/日";
    }
}

子类两用车:

public class pick extends Car {

    public  pick(String carModels, String carName, int carSeat,int carryCargo, int carRent ){
        this.setCarModels(carModels);//车型
        this.setCarName(carName);//车名
        this.setCarSeat(carSeat);//载客
        this.setCarryCargo(carryCargo);//载货
        this.setCarRent(carRent);//日租金
    }

    @Override
    public String toString() {
        return  "   "+carModels +
                "\t" + carName +
                "\t " + carSeat +
                "人\t\t\t" + carryCargo +
                "T\t\t" + carRent +
                "$/日";
    }
}

子类轿车:

public class landdaulet extends Car {
    //轿车
    public landdaulet(String carModels, String carName, int carSeat, int carRent) {
        this.setCarModels(carModels);//车型
        this.setCarName(carName);//车名
        this.setCarSeat(carSeat);//载客
        this.setCarRent(carRent);//日租金
    }

    @Override
    public String toString() {
        return  "   "+carModels +
                "\t" + carName +
                "\t " + carSeat +
                "人\t\t\t" + carryCargo +
                "T\t\t" + carRent +
                "$/日";
    }
}

运行主程序:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Scanner;

/*
    1.是否进行租车
    yes no
    2.登记姓名,电话,身份证(键盘输入)1


    3.将输入的资料进行展示核对
    Yes(1)No(0)

    4.将资料存底

    5.车的品牌
    遍历展示车辆信息

    6.客户租用天数

    7.租车天数输入

    8.展示客户要租的 总费用

    9.对于选择的确认,确认后随机出一个车牌号

    10.结束界面:
    感谢您的支持,请您爱护***车,及时归还。谢谢配合。


     */
public class CarRental {
    public static void main(String[] args) throws IOException {
        //车库
        Car[] cars = {
                new landdaulet("小轿车", "福特A", 4, 200),
                new landdaulet("小轿车", "马自达6", 4, 300),
                new landdaulet("小轿车", "奥迪A4", 4, 500),
                new landdaulet("小轿车", "保时捷", 4, 800),
                new truck("大货车", "福田欧曼", 8, 400),
                new truck("大货车", "依维柯", 20, 990),
                new pick("皮卡车", "皮卡雪6", 4, 2, 450),

        };
        System.out.println("*****欢迎来到达达租车*****");
        System.out.println("***您是否要进行租车服务***\n\tYES(1)\t\tNO(0)");
        Scanner scanner = new Scanner(System.in);   //键盘输入
        ArrayList<Datum> datum = new ArrayList<>();
        int x = scanner.nextInt();
        if (x != 1) {
            System.out.println("*感谢您的支持,欢迎下次光临达达租车*");
        } else {
            addfivedatum(datum);//租车系统客户输入自己的资料
            saveToFile(datum);//将客户输入的信息储存起来
            showdatum(datum);//展示一下客户输入的信息,让客户确认资料没问题,这三个步骤纯属自己添加,没有也没关系
            System.out.println("***请再次确认输入的信息***\n\tYES(1)\t\tNO(0)");
            int y = scanner.nextInt();
            if (y != 1) {
                System.out.println("***请您重新登入达达系统***");
            } else {

                System.out.println("\t\t******您可租车辆信息与价目表如下所示******");
                System.out.println("序号" + "\t\t车型" + "\t\t车名" + "\t\t载客(位)" + "\t\t载货(T)" + "\t\t租金($)");
                //遍历车库内的车
                for (int i = 0; i < cars.length; i++) {
                    System.out.println((i + 1) + "\t" + cars[i]);
                }
                System.out.println("温馨提示:如您所需、尽我所能-----》》》热线电话:177****8044");
                System.out.println("***********************************************************");


            Car[] Rcars = new Car[1];
            int money = 0;
            int order = 0;

            for (int i = 0; i < 1; i++) {
                System.out.println("*****请输入您要的车辆序号*****");
                order = scanner.nextInt();
                Rcars[i] = cars[order - 1];

            }

            System.out.println("请输入所要租的天数");
            int days = scanner.nextInt();
            for (int i = 0; i < 1; i++) {
                money = Rcars[i].carRent * days;
            }
            System.out.println("*********************************************");
            System.out.println("选择车辆No" + order + "号\t总费用:" + money + "$");
            System.out.println("即将为您随机筛选车牌号,请稍后ing......");
            for (int i = 5; i > 0; i--){//增加了一个倒计时功能
                System.out.println(i +"");
                try{
                    Thread.sleep(1000);//延时功能
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
            System.out.println("您租用的车辆No"+ order+"号,车牌号:  ");
            plateNumber(datum);//设计了一个随机车牌号功能
            System.out.println();
                try{
                    Thread.sleep(2000);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            System.out.println("达达租车感谢您的惠顾,期待下次光临");
        }
        }
        }


//定义一个方法,随机生成车牌号
// 返回值类型:无返回值void
// 方法名称:plateNumber
// 参数列表:无

    public static void plateNumber(ArrayList<Datum> data) {
        HashSet<Integer> hs = new HashSet<>();//创建集合对象
        Random r = new Random();//创建随机数对象
        while (hs.size() <= 3) {
            int num = r.nextInt(9) + 1;//生成1-20随机数
            hs.add(num);
        }
        System.out.print("闽B" + " ");
        for (Integer integer : hs) {//遍历集合


            System.out.print(+integer + " ");//打印出来

        }
        char c = (char) (int) (Math.random() * 26 + 'A');
        System.out.print(c);

    }


// 定义一个方法,遍历集合,对客户输入的信息进行确认
// 返回值类型:无返回值void
// 方法名称:showdatum
// 参数列表:ArrayList<Datum>
    public static void showdatum(ArrayList<Datum> list) {
        for (int i = 0; i < list.size(); i++) {
            Datum datum = list.get(i);
            System.out.println("姓名:" + datum.getName() + "     年龄:" + datum.getAge() + "     电话:" + datum.getNumber());
        }
    }


//    //定义一个方法,手动输入客户的信息
//    //返回值类型:无返回值void
//    //方法名称:addfivedatum
//    //参数列表:ArrayList<Datum>
    public static void addfivedatum(ArrayList<Datum> list) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入姓名");
        String name = scanner.next();
        System.out.println("请输入年龄");
        int age = scanner.nextInt();
        System.out.println("请输入电话");
        long number = scanner.nextLong();
        Datum datum = new Datum(name, age, number);//将输入的信息new出一个人的资料
        list.add(datum);
    }


//    //定义一个方法,将顾客信息登记到集合中
//    //返回值类型 void
//    //方法名称   saveToFile
//    //参数列表  ArrayList<Datum>
    public static void saveToFile(ArrayList<Datum> list) throws IOException {
        BufferedWriter bw = new BufferedWriter(new FileWriter("datum.txt"));
        for (int i = 0; i < list.size(); i++) {
            Datum datum = list.get(i);
            //将对象转换成为字符串,中间用逗号隔开
            String str = (datum.getName() + "," + datum.getAge() + "," + datum.getNumber());
            bw.write(str);//将字符串写入文件中

            bw.newLine(); //换行
        }
        bw.close();//关闭流
    }
}

补充:
public class Datum {	
	private String name;
	private int age;	
	private long number;		
	public Datum() {}	
	public Datum(String name, int age, long number)
	 {		
	 this.name = name;	
	this.age = age;		
	this.number = number;	}	
	public String getName() {		return name;	}	
	public void setName(String name) {		this.name = name;	}
	public int getAge() {		return age;	}	
	public void setAge(int age) {		this.age = age;	}	
	public long getNumber() {		return number;	}	
	public void setNumber(long number) {		this.number = number;	}	}
	


打开App,阅读手记
8人推荐
发表评论
随时随地看视频慕课网APP

热门评论

您好,为什么我用您的程序运行时总会报错,说Datum无法解释为一个类型

您好,为什么我用您的程序运行时总会报错,说Datum无法解释为一个类型

https://img3.mukewang.com/5c877d100001cdd104970680.jpg

查看全部评论