基于JAVA的停车场管理系统

源码及论文下载:
http://www.byamd.xyz/tag/java/

第一章 概述

1.1 项目背景

车辆越来越多的今天,停车场只靠人工管理显然难度已经是提高很多,所以应该开发出便于管理记录的停车场管理系统来帮助对停车场进行管理。

1.2 软件定义

一款帮助停车场管理员对车辆进出进行管理的软件。

1.3 开发环境

Window10系统

Eclipse java开发工具

Oracle数据库

第二章 需求分析

2.1 题目要求

2.1.1 问题陈述

要求能够进行如下工作:

1、车位基本信息维护(车位增加修改、收费标准变动等)

2、交班报表功能(当班收费员收款总额)

3、当前车位状况查询(车位状况分为:停用,占用和空闲)

4、用户分级管理,人机界面良好

2.1.2 功能描述

该软件能对车辆进出进行管理,能计算停车时间并给管理员报出停车费用;能将流水显示给管理员;管理员能增加停车场会员、增减停车场车位;有一个客户面板给客户显示当前停车场的信息,如停车空位数。管理员分普通管理员和超级管理员,超级管理员能对普通管理员进行增删或者是修改管理员的权限将其改为超级管理员或者普通管理员。

2.2 总体设计

2.2.1 系统数据流图

img

图1系统数据流图

2.2.2 数据库E-R图

img

图2 数据库E-R图

第三章 数据库设计

3.1 数据库表

1.车位信息表t_parking

字段名数据类型含义说明空值情况
idvarchar2(5)车位编号主键
statevarchar2(10)车位状态不为空
typevarchar2(10)车位类型不为空
t_pricenumber(6,2)临时单价(¥/h)不为空
m_pricenumber(6,2)会员单价(¥/m)不为空

​ 表一 车位信息表t_parking

\2. 管理员表t_manager

字段名数据类型含义说明空值情况
idvarchar2(10)工号主键
pwdvarchar2(20)密码不为空
namevarchar2(20)姓名不为空
powernumber(1)权限不为空

表二 管理员表t_manager

\3. 会员表t_Member

字段名数据类型含义说明空值情况
idvarchar2(5)车位编号外键
p_numvarchar2(15)车牌号不为空
namevarchar2(20)姓名不为空
telvarchar2(15)电话不为空

表三 会员表t_Member

\4. 会员收费表t_MemberFee

字段名数据类型含义说明空值情况
s_numvarchar2(20)流水号主键
idvarchar2(5)车位编号外键
p_numvarchar2(15)车牌号不为空
eff_datedate生效期不为空
ex_datedate有效期不为空
feenumber(6,2)收费不为空
m_idvarchar2(10)收费员工工号外键

表四 会员收费表t_MemberFee

\5. 临时用户收费表t_TempFee

字段名数据类型含义说明空值情况
s_numvarchar2(20)流水号主键
idvarchar2(5)车位编号外键
p_numvarchar2(15)车牌号不为空
en_timedate进入时间不为空
ex_timedate退出时间可为空
feenumber(6,2)收费可为空
m_idvarchar2(10)收费员工工号外键

表五 临时用户收费表t_TempFee

\6. 停车场日常信息表t_infor_parking

字段名数据类型含义说明空值情况
todaydate日期主键
en_numnumber(5)进入数不为空
ex_numnumber(5)离开数不为空
feenumber(8,2)收费总额不为空
m_idvarchar2(10)收费员工工号外键

表六 停车场日常信息表t_infor_parking

其中t_Member的id是依赖于t_parking的id,t_MemberFee的m_id是依赖于t_manager的id,t_MemberFee的id是依赖于t_parking的id,t_TempFee的id依赖于t_parking的id,TempFee的m_id是依赖于t_manager的id,t_infor_parking的m_id是依赖于t_manager的id。

第四章 软件功能设计

4.1 程序设计

4.1.1 程序工程文件结构

imgimg

​ 图三 工程文件结构

4.2 详细设计

4.2.1 dao文件

dao文件定义了各个功能函数的接口,子目录imp文件中的类是对各个接口的实现,各个类定义了各个实体的相应操作,比如ManagerDao.Java就定义了对管理员的增减,权限修改,权限查询,信息查询等函数。

​ /**

​ * ****@Description****:校验登录信息并返回登录人员是否能登录以及其权限

​ * *@param* tf

​ * *@param* pf

​ * *@return* HashMap<String,Object>

​ */

*public* ****HashMap****<String, Object> *check****(****String* tf, *String* pf);

​ /**

​ * *@Description* 判断权限

​ * *@param* tf

​ * *@return* int

​ */

*public* *int* *judgeP****(****String* tf);

​ /**

​ * *@Description* 增加员工

​ * *@param* manager

​ * *@return* boolean

​ */

*public* *boolean* *add****(****Manager* manager);

​ /**

​ * *@Description* 删除员工

​ * *@param* id

​ * *@return* boolean

​ */

*public* *boolean* *delManager****(****String* id);

​ /**

​ * *@Description* 查询员工

​ * *@param* id

​ * *@return* String

​ */

*public* *String* *findManager****(****String* id);

/**

* *@Description* 改变权限

* *@param* id

* *@return* boolean

*/

*public* *boolean* *upMP****(****String* id,****int**** power);

}

4.2.2 data文件

data文件包含一个ConnOra.java,该类用于连接数据库,java连接Oracle数据库的基本模式为:

*public* *static* Connection ****connOracle****() {

​ Connection *con* = ****null****;// 创建一个数据库连接

*try* {

​ ****Class****.forName(“oracle.jdbc.driver.OracleDriver”);// 加载Oracle驱动程序

​ ****System****.**out**.println(“开始尝试连接数据库!”);

*String* *url* = “jdbc:oracle:” + “thin:@127.0.0.1:1521:orcl”;// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名

*String* *user* = “C##U_32”;// 用户名

*String* *password* = “zww0902150232”;// 设置的密码

​ con = ****DriverManager****.getConnection(url, user, password);// 获取连接

​ ****System****.**out**.println(“连接成功!”);

​ } *catch* (****Exception**** ****e****) {

​ ****System****.**out**.println(“未连接”);

​ e.printStackTrace();

​ }

*return* con;

​ }

4.2.3 table文件

该文件包含了各个实体类。停车场日常信息InforParking.Java、管理员Manager.java、会员Membe.java、会员收费MemberFee.java、车位Parking.java、临时收费TemporaryFee.java。

4.2.4 ui文件

此文件包含了对各个ui界面的设计以及事件的监听和触发,DataChooser.java是时间选择界面,InforPanel.java是客户面板,Login.java是登录界面,ManagerUI.java是系统主界面。

4.3 程序功能图

img

图四 程序功能图

第五章 界面设计

5.1 登录界面

img

图五 登录界面

输入输出时

img

图六 错误提示

5.2程序主界面

1.普通管理员和超级管理员界面略有不同,超级管理员多了对管理员管理的菜单选项。

img

图七 普通管理员主界面

img

图八 超级管理员主界面

2.车辆进入成功后弹出提示窗口,车辆离开时,弹出收费窗口

img

图九 车辆进入

img

图十 车辆离开

3.增加会员,填写会员信息,点击时间会弹出时间选择界面

img

图十一 添加会员

4.车位增减

img

图十二 增减车位

5.查看流水

img

图十三 查看流水

6.用户面板

img

图十四 用户面板

7.管理员工

img

图十五 管理员工

8.更改员工权限

img

图十六 权限更改

第六章 总结

6.1 收获

通过这次的系统设计,我在很多方面都有所提高。综合运用所学知识的理论知识实际训练从而培养和提高了我独立工作的能力,巩固所学的知识,掌握系统程序的编排和运行,使自己的独立思考能力有了显著提高。从本次课程设计更加了解一个数据库系统的设计过程,也加强自己的程序设计能力。数据库的系统的设计过程必须严谨,一个细小的差错都会导致数据的错误,这就要求关系数据库的关系要设计合理,不让表太多,数据不要太过冗杂,导致数据库复杂程度增加。本次课设也将生活中的问题用平时所学的知识来解决,提现了经世致用的理念。总之收获非常大。

6.2 不足

本次课设虽然完成,但却不完美,还有很多地方应该改进,比如一开始数据库的设计不合理,导致后面又回头对数据库进行更改,这让很多工作都白做甚至还要重做,界面的美化也做得不好,UI是用户体验很重要的一部分,但自己没有重视这一点,只是在意功能部分,弱化了界面的美化。而且功能部分也还有需要增加和改进的部分,比如能够一键导出流水表,这让管理员更加方便了。

附件

程序代码详情见源程序文件。

参考文献

[1]郭克华.Java语言程序设计

相关推荐
初始化停车场(确定停车区个数n,每个停车区的停车位,且初始时,停车场为空),说明:使用一个共享数组(临界资源)存储每个停车区中空闲停车位的个数,每一个停车区使用一个共享缓冲区可容纳一辆车,停车场公共通道允许通过两辆车通过。 停车场入口检查是否有空闲停位,如果有发放相关停车区的停车卡,允许停车。如果不存在空闲车位,等待到有空闲车位止。注,入口处应尽量发放不同停车区的停车卡,以获得更高的效率。停车场过道允许两辆车同时通过。 停车场出口,回收停车卡,并修改相关停车区空闲车位数。注:同一时刻只能有一个车出停车场。 每一个停车区,有一个待车位,供进入停车区车辆进入停车区。停车区只能有一辆车进或出。 每辆车每进入下一环节皆应停留一定时间。每一个用户建立一个窗口,于窗口中显示当前将态。将状态转换可由人工确定亦可自动完成,但进入下状态时需要停留学生一定的时间,以保证多个用户“并行”工作。 本框架由四个类组成,这四个类分别是:InitFrame、WotkFram、carJFrame及carThread,由InitFrame启动。类InitFrame提供停车场初始化功能,完成初始任务后启动类WotkFram界面,执行停车场模拟程序,点击命令按扭“进入停车场”,建立一个线程(线程类名为carThread),线程建立一个carJFrame窗口(车辆进入、离开停车场操作程序)模拟车辆进入或离开停车场
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页