JAVA停车场管理系统(ArrayList、栈操作)

JAVA停车场管理系统

系统使用者分为管理员和用户

在这里插入图片描述

管理员菜单:

1.查看总收入 2.查看车牌号 3.查看长期卡信息 4.查看停车位 5.退出系统

查收总收入

在这里插入图片描述###### 查收停车场信息
在这里插入图片描述

查收长期卡信息

在这里插入图片描述

用户菜单:

1.车辆到达 2.车辆离开 3.长期卡充值 4.退出系统

车辆到达

车辆到达

长期卡充值

用户车辆准备离开的时候,询问一下是否有长期卡,有长期卡则输入长期卡ID,从长期卡里面扣钱
没有长期卡,则直接缴费离开停车场

1.在用户系统完成充值

2.在管理员系统查看长期卡信息

在这里插入图片描述

3.车辆离开时的操作在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

车辆离开

在这里插入图片描述

长期卡充值

在这里插入图片描述

主函数
package packingSystem;

import java.util.Scanner;

public class Main {
   
    public static void main(String[] args) {
   
        Scanner scanner = new Scanner(System.in);
        Parking parking = new Parking();
        Manage manage = new Manage();
        while (true){
   
            System.out.println("停车管理系统");
            System.out.println("请输入你的身份,1表示用户,2表示管理员");
            int identity = scanner.nextInt();
            switch (identity){
   
                case 1:
                    parking.menu();
                    break;
                case 2:
                    manage.menu();
                    break;
                default:
                    System.out.println("请输入正确号码");
                    break;
            }
        }
    }
}

运行类菜单(用户)
package packingSystem;


import java.util.Scanner;

/**
 * 运行类,菜单
 */
public class Parking {
   

    private InOutCar inOutCar;
    private static double income;//停车场总收入
    private static double price = 1.5;//1.5一小时

    public static double getPrice() {
   
        return price;
    }

    public static void setPrice(double price) {
   
        Parking.price = price;
    }

    //构造方法
    public Parking() {
   
        inOutCar = InOutCar.getUniqueInOutCar();
    }

    public static double getIncome() {
   
        return income;
    }

    public static void setIncome(double income) {
   
        Parking.income = income;
    }

    public void menu() {
   
        Scanner scanner = new Scanner(System.in);
        while (true) {
   
        System.out.println("    用户系统     ");
        System.out.println("---------主菜单---------");
        System.out.println("    (1)车辆到达");
        System.out.println("    (2)车辆离开");
        System.out.println("    (3)长期卡充值");
        System.out.println("    (0)退出系统");
            System.out.println();
            System.out.print("请选择(1,2,3,0):");
            Integer menuIndex = scanner.nextInt();
            String number;//长期卡号
            String carNumber;//车牌号
            double balance;
            switch (menuIndex) {
   
                case 1:
                    System.out.print("请输入到达的车牌号(如C0000):");
                    carNumber = scanner.next();
                    if (carNumber.matches("[C]\\d{4}")) {
   //正则表达式
                        inOutCar.inCar(carNumber);
                    }else {
   
                        System.out.println("输入格式错误");
                    }
                    break;
                case 2:
                    System.out.print("请输入离开的车牌号(如C0000):");
                    carNumber = scanner.next();
                    if (carNumber.matches("[C]\\d{4}")) {
   //正则表达式
                        double perIncome = inOutCar.outCar(carNumber)
初始化停车场(确定停车区个数n,每个停车区的停车位,且初始时,停车场为空),说明:使用一个共享数组(临界资源)储每个停车区中空闲停车位的个数,每一个停车区使用一个共享缓冲区可容纳一辆车,停车场公共通道允许通过两辆车通过。 停车场入口检查是否有空闲停位,如果有发放相关停车区的停车卡,允许停车。如果不在空闲车位,等待到有空闲车位止。注,入口处应尽量发放不同停车区的停车卡,以获得更高的效率。停车场过道允许两辆车同时通过。 停车场出口,回收停车卡,并修改相关停车区空闲车位数。注:同一时刻只能有一个车出停车场。 每一个停车区,有一个待车位,供进入停车区车辆进入停车区。停车区只能有一辆车进或出。 每辆车每进入下一环节皆应停留一定时间。每一个用户建立一个窗口,于窗口中显示当前将态。将状态转换可由人工确定亦可自动完成,但进入下状态时需要停留学生一定的时间,以保证多个用户“并行”工作。 本框架由四个组成,这四个分别是:InitFrame、WotkFram、carJFrame及carThread,由InitFrame启动。InitFrame提供停车场初始化功能,完成初始任务后启动WotkFram界面,执行停车场模拟程序,点击命令按扭“进入停车场”,建立一个线程(线程名为carThread),线程建立一个carJFrame窗口(车辆进入、离开停车场操作程序)模拟车辆进入或离开停车场。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值