源码及论文下载:
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 系统数据流图
图1系统数据流图
2.2.2 数据库E-R图
图2 数据库E-R图
第三章 数据库设计
3.1 数据库表
1.车位信息表t_parking
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
id | varchar2(5) | 车位编号 | 主键 |
state | varchar2(10) | 车位状态 | 不为空 |
type | varchar2(10) | 车位类型 | 不为空 |
t_price | number(6,2) | 临时单价(¥/h) | 不为空 |
m_price | number(6,2) | 会员单价(¥/m) | 不为空 |
表一 车位信息表t_parking
\2. 管理员表t_manager
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
id | varchar2(10) | 工号 | 主键 |
pwd | varchar2(20) | 密码 | 不为空 |
name | varchar2(20) | 姓名 | 不为空 |
power | number(1) | 权限 | 不为空 |
表二 管理员表t_manager
\3. 会员表t_Member
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
id | varchar2(5) | 车位编号 | 外键 |
p_num | varchar2(15) | 车牌号 | 不为空 |
name | varchar2(20) | 姓名 | 不为空 |
tel | varchar2(15) | 电话 | 不为空 |
表三 会员表t_Member
\4. 会员收费表t_MemberFee
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
s_num | varchar2(20) | 流水号 | 主键 |
id | varchar2(5) | 车位编号 | 外键 |
p_num | varchar2(15) | 车牌号 | 不为空 |
eff_date | date | 生效期 | 不为空 |
ex_date | date | 有效期 | 不为空 |
fee | number(6,2) | 收费 | 不为空 |
m_id | varchar2(10) | 收费员工工号 | 外键 |
表四 会员收费表t_MemberFee
\5. 临时用户收费表t_TempFee
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
s_num | varchar2(20) | 流水号 | 主键 |
id | varchar2(5) | 车位编号 | 外键 |
p_num | varchar2(15) | 车牌号 | 不为空 |
en_time | date | 进入时间 | 不为空 |
ex_time | date | 退出时间 | 可为空 |
fee | number(6,2) | 收费 | 可为空 |
m_id | varchar2(10) | 收费员工工号 | 外键 |
表五 临时用户收费表t_TempFee
\6. 停车场日常信息表t_infor_parking
字段名 | 数据类型 | 含义说明 | 空值情况 |
---|---|---|---|
today | date | 日期 | 主键 |
en_num | number(5) | 进入数 | 不为空 |
ex_num | number(5) | 离开数 | 不为空 |
fee | number(8,2) | 收费总额 | 不为空 |
m_id | varchar2(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 程序工程文件结构
图三 工程文件结构
4.2 详细设计
4.2.1 dao文件
dao文件定义了各个功能函数的接口,子目录imp文件中的类是对各个接口的实现,各个类定义了各个实体的相应操作,比如ManagerDao.Java就定义了对管理员的增减,权限修改,权限查询,信息查询等函数。
/**
* ****@Description****:校验登录信息并返回登录人员是否能登录以及其权限
* *@param* tf
* *@param* pf
* *@return* HashMap
*/
*public* ****HashMap****
/**
* *@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 程序功能图
图四 程序功能图
第五章 界面设计
5.1 登录界面
图五 登录界面
输入输出时
图六 错误提示
5.2程序主界面
1.普通管理员和超级管理员界面略有不同,超级管理员多了对管理员管理的菜单选项。
图七 普通管理员主界面
图八 超级管理员主界面
2.车辆进入成功后弹出提示窗口,车辆离开时,弹出收费窗口
图九 车辆进入
图十 车辆离开
3.增加会员,填写会员信息,点击时间会弹出时间选择界面
图十一 添加会员
4.车位增减
图十二 增减车位
5.查看流水
图十三 查看流水
6.用户面板
图十四 用户面板
7.管理员工
图十五 管理员工
8.更改员工权限
图十六 权限更改
第六章 总结
6.1 收获
通过这次的系统设计,我在很多方面都有所提高。综合运用所学知识的理论知识实际训练从而培养和提高了我独立工作的能力,巩固所学的知识,掌握系统程序的编排和运行,使自己的独立思考能力有了显著提高。从本次课程设计更加了解一个数据库系统的设计过程,也加强自己的程序设计能力。数据库的系统的设计过程必须严谨,一个细小的差错都会导致数据的错误,这就要求关系数据库的关系要设计合理,不让表太多,数据不要太过冗杂,导致数据库复杂程度增加。本次课设也将生活中的问题用平时所学的知识来解决,提现了经世致用的理念。总之收获非常大。
6.2 不足
本次课设虽然完成,但却不完美,还有很多地方应该改进,比如一开始数据库的设计不合理,导致后面又回头对数据库进行更改,这让很多工作都白做甚至还要重做,界面的美化也做得不好,UI是用户体验很重要的一部分,但自己没有重视这一点,只是在意功能部分,弱化了界面的美化。而且功能部分也还有需要增加和改进的部分,比如能够一键导出流水表,这让管理员更加方便了。
附件
程序代码详情见源程序文件。
参考文献
[1]郭克华.Java语言程序设计