Card类记录IC卡信息,具体情况如表4-6所示。

                1. Card类功能表
class="table-box">

类功能描述

处理IC卡相关业务

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Card_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Card_id

int

进入IC卡信息中,点击编辑,可修改IC卡信息

public

Delete

string Card_id

Void

进入IC卡信息中,点击删除,可删除IC卡信息

Seat类记录车位信息,具体情况如表4-7所示。

                1. Seat类功能表
class="table-box">

类功能描述

处理车位信息相关业务

所在包名称

DAL

继承对象

实现对象

类属性

保护属性

类型

名称

描述

备注

Public

String

Seat_id

记录编号

长度限制20位

主要实现方法

保护属性

方法名

输入参数

输出参数

方法功能描述

Public

Update

string Seat_id,string Seat_name

int

进入车位信息中,点击编辑,可修改车位信息

public

Delete

string Seat_id

Void

进入车位哦信息中,点击删除,可删除车位信息

    1. 关键业务设计
      1. 系统登录

管理员通过UI界面输入用户名,密码,调用USERLOGIN方法,在LOGIN方法中调用DATABASE的checklogin方法,最后返回成功。

    1. 数据库设计
      1. 数据需求分析

系统E-R图表明了实体与实体之间的关系,根据系统的功能需求,系统有用户、IC卡、临时车主、固定车主、车位、收费信息六个实体。一个固定车主拥有一张IC卡和一个车位,一个临时车主拥有一个车位和临时IC卡。固定车主和临时车主产生收费信息。实体关系属性图如图4.3所示[11]

图4.3停车场管理系统E-R图

      1. 数据库的实现

根据系统需求确定系统有如下7张表。

用户表:储存用户信息。

角色表:储存角色信息。

车位管理表:管理车位信息以及车位状态。

IC卡管理表:管理IC卡信息。

临时车辆记录表:记录临时车辆的信息。

固定车主表:记录固定车主信息及出入场信息。

收费表:记录用户们的收费信息。

用户表用于记录用户的编号、姓名、电话等属性信息,如表4-8所示。

表4-8用户表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

user_id

Varchar2

50

0

2

role_id

Varchar2

50

0

3

user_name

Varchar2

50

0

4

real_name

Varchar2

50

0

5

user_pwd

Varchar2

20

0

6

user_phone

Varchar2

50

0

角色表储存角色的编号、名字等信息,如表4-9所示。

表4-9角色表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

role_id

Varchar2

50

0

2

role_name

Varchar2

50

0

车位管理表记录车位的编号、ID、状态等属性信息,如表4-10所示。

表4-10车位管理表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

seat_id

Varchar2

50

0

2

seat_num

Varchar2

50

0

3

seat_setion

Varchar2

50

0

4

seat_state

int

11

0

5

seat_tag

Varchar2

50

0

IC卡表记录IC卡的ID、车位ID、姓名、车牌号等属性信息,如表4-11所示。

表4-11 IC卡表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

card_id

varchar2

50

0

2

seat_id

Varchar2

50

0

3

user_name

Varchar2

50

0

4

user_gender

Varchar2

1

0

5

user_addr

Varchar2

50

0

6

car_num

Varchar2

50

0

临时车辆记录表,用于记录临时车主的编号、车牌号、出入场时间等属性信息,用户如表4-12所示。

表4-12临时车辆表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

temp_id

Varchar2

50

0

2

card_id

Varchar2

50

0

3

car_num

Varchar2

50

0

4

entry_date

date

0

0

5

entery_time

time

0

0

6

out_date

date

0

0

7

out_time

time

0

0

8

temp_money

float

0

4

固定车主表用于记录固定固定车主的编号、IC卡编号、出入场时间等属性信息,如表4-13所示。

表4-13固定车主表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

fixed_id

Varchar2

50

0

2

card_id

Varchar2

50

0

3

entry_date

date

0

0

4

entery_time

time

0

0

5

out_date

date

0

0

6

out_time

time

0

0

收费表用于记录收费的编号、车主姓名、车牌号、收费金额等属性信息,如表4-14所示。

表4-14收费表

class="table-box">

序号

列名

数据类型

长度

小数位

标识

主键

允许空

外键

说明

1

role_id

Varchar2

25

0

2

role_name

Varchar2

255

0

3

role_type

Varchar2

255

0

4

car_num

Varchar2

25

0

5

car_money

Varchar2

255

0

6

car_time

Varchar2

255

0

>

5. 系统详细设计与实现

5.1 用户登录

登录模块界面如图5.1所示:

                                图5.1  用户登录

     代码流程如图5.2。

                           图5.2  用户登录

功能描述:登陆页面需要用户名、密码进行登录。登录的同时对输入的用户名和密码进行验证,首先我们要保证用户名和密码不能为空。其次是对数据库的验证,系统在数据库中搜索用户输入的用户名是否存在,若不存在,则提示出错。并且重新登录,系统不允许两个用户同时登录,该操作在一定程度上使系统的安全性有所提高。

登录主要代码位置:TestPark/src/DAL/login.java。主要封装了对登录数据的操,该类中有三个方法分别用于检查用户登录信息是否合法,根据用户编号和角色编号获取用户名和角色信息。

publicclass Login {

publicboolean checkLogin(String user_id,String user_pwd)

{

String sqlCmd="select count(*) from user where user_id=? and user_pwd=?";

Object[] objList=new Object[2];

objList[0]=user_id;

objList[1]=user_pwd;

String result=SQLUtil.excuteScalar(sqlCmd,objList).toString(); if(result.equals("1"))

{

returntrue;

}

else {

returnfalse;

}

}

public String  getName(String user_id)

{

String sqlCmd="select user_name from user where user_id='"+user_id+"'";

String result=SQLUtil.excuteScalar(sqlCmd, null).toString();

return result;

}

public String  getSysLevel(String user_id)

{

String sqlCmd="select role_id from user where user_id='"+user_id+"'";

String result=SQLUtil.excuteScalar(sqlCmd, null).toString();

return result;

}

}

5.2 系统信息管理

添加角色信息如图5.3所示:

图5.3 添加角色信息

管理角色如图5.4所示:

图5.4 管理角色信息

添加用户信息界面如图5.5所示:

图5.5 添加用户信息

管理用户信息界面如图5.6所示:

图5.6 管理用户信息

功能描述:该模块是对系统信息的一个管理,添加角色输入编号和名称,后台数据库进行验证,若角色没有存在则添加数据成功,跳转到管理界面。管理角色信息可以根据用户的编号,角色名称进行查询操作、编辑、和删除操作。添加用户信息输入用户编号、名称、昵称、姓名、密码电话点击确定进行后台数据库的验证,若成功添加则跳转到管理界面。管理用户界面可根据用户编号、角色名称、用户名称、真实姓名进行查询、编辑和删除操作。

系统信息模块流程图如图5.7所示:

图5.7 停车场管理系统信息流程图

5.3 车位信息管理

添加停车位信息如图5.8所示:

图5.8

添加车位

管理车位信息如图5.9所示:

图5.9 管理车位信息页面

功能描述:该模块是对车位的一个管理。点击添加车位信息,输入编号选择是A区还是B区,添加成功则会跳转到管理界面。管理界面可根据车位ID、车位编号、所属区域、车位备注进行查询,还可对车位信息进行编辑和删除。

对车位数据的操作封装在:seat.java类中。该类中主要封装了分页和对车位信息的增、删、改、查等方法。首先获取车位信息列表,然后获取未分配的车位列表,根据查询条件获取获取分页后的信息列表,数据的更新、插入、删除,获取分页总数,根据查询条件获取分页总数。

publicclass Seat {

public List getEntity()

{

String sqlCmd="select *from Seat";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List getNoUseSeat()

{

String sqlCmd="SELECT *FROM Seat WHERE seat_id NOT IN(SELECT seat_id FROM card)";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List getEntity(int page)

{

int size=(page-1)*15;

String sqlCmd="select *from Seat limit "+size+",15";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

}

public List getEntityByWhere(String sqlWhere,int page)

{

int size=(page-1)*15;

String sqlCmd="select *from Seat where "+sqlWhere+" limit "+ size+",15";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

        }

publicint deleteEntity(String seat_id)

        {

            String sqlCmd="delete from Seat where seat_id='"+seat_id+"'";

return DBUtil.SQLUtil.executeNonQuery(sqlCmd, null);

        }

public List getEntityById(String seat_id)

        {

            String sqlCmd="select *From Seat where seat_id='"+seat_id+"'";

return DBUtil.SQLUtil.executeQuery(sqlCmd, null);

        }

publicint updateEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)

        {

            String sqlCmd="Update Seat set seat_num='" + seat_num + "',seat_section='" + seat_section + "',seat_state='" + seat_state + "',seat_tag='" + seat_tag + "' where seat_id='"+seat_id+"'";

return SQLUtil.executeNonQuery(sqlCmd, null);

        }

publicint insertEntity(String seat_id,String seat_num,String seat_section,String seat_state,String seat_tag)

        {

            String sqlCmd="Insert into Seat values('" + seat_id + "','" + seat_num + "','" + seat_section + "','" + seat_state + "','"+seat_tag+"')";

return SQLUtil.executeNonQuery(sqlCmd, null);

        }

publicboolean checkExist(String seat_id)

        {

            String sqlCmd="select count(*) from Seat where seat_id='"+seat_id+"'";

if(1==Integer.parseInt(SQLUtil.excuteScalar(sqlCmd, null).toString()) )

            {

returntrue;

            }

returnfalse;

        }

public Object getPageCount()

{

String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat ";

return SQLUtil.excuteScalar(sqlCmd, null);

}

public Object getPageCountByWhere(String sqlWhere)

{

String sqlCmd="SELECT CEIL( COUNT(*)/15.0) FROM Seat where "+sqlWhere;

return SQLUtil.excuteScalar(sqlCmd, null);

}

        }

车位信息流程图如图5.10所示:

图5.10 车位信息流程图

5.4 IC卡管理

添加IC卡界面如图5.11所示:

 图5.11  添加IC卡界面

管理IC卡信息界面如图5.12所示:

图5.12  管理IC卡界面

功能描述:该功能模块是对IC卡信息的管理,点击添加IC卡输入如图5.11所示的信息,添加成功后,跳转到图5.12的界面。管理界面可根据IC卡编号、车位编号、用户名称、车牌号码进行查询。也可进行相应的编辑和删除操作。

IC卡管理模块流程图如图5.13所示:

图5.13  IC卡管理流程图

5.5 临时车主管理

临时车主入场信息界面如图5.14所示:

图5.14临时车主入场页面

车主出场信息界面如图5.15所示:

图5.15临时车主出场页面

结算页面如图5.16所示

                         

图5.16 结算页面

功能描述:该模块是对临时车主出入场的管理。点击入场管理,出现如图5.14所示的界面,输入信息,如果输入成功就会跳转到如图5.15的界面,出场日期,日期显示未出场,停车费用显示待结算。点击结算出现如图5.16界面。

临时车主流程图如图5.17所示:

                        图5.17临时车主流程图

5.6 固定车主管理

固定车主出入场设置界面如图5.18所示:

 图5.18 固定车主出入场设置界面

停车信息管理界面如图5.19所示:

图5.19管理停车场信息界面

功能描述:该模块是对固定车主的出入场设置以及停车信息进行管理。如图5.18所示,对车主进行入场设置,点击确定后就会在下面的表格中显示,点击停车信息管理按钮,就会出现如图5.19所示。设置出场,出场时间就会出现在停车信息表中。

固定车主流程图如图5.20所示:

5.6 收费管理

管理收费信息如图5.21所示:

图5.21管理收费信息

功能描述:临时用户是一小时3元收费,固定用户是按次数收费。

5.7 打印管理

查看打印信息如图5.22所示:

图5.22打印信息

功能描述:该模块可以将用户的消费情况进行打印,公开,透明清楚。

5.8系统功能操作

密码修改、退出系统界面如图5.23所示:

5.23 系统功能操作界面

功能描述:该模块是对系统功能的一个操作,可进行修改密码。点击退出系统则会跳转到如图5.1的登录界面。

id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"> class="blog_extension blog_extension_type2" id="blog_extension"> class="extension_official" data-report-click="{"spm":"1001.2101.3001.6471"}"> class="blog_extension_card_cont"> 详细资料请联系我 class="blog_extension_card_cont_r"> 微信名片
注:本文转载自blog.csdn.net的清风絮柳的文章"https://blog.csdn.net/qq_24907431/article/details/143575731"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。

评论记录:

未查询到任何数据!