校园停车场管理系统
设计说明书
课程名称: 软件工程课程设计
小组成员:---—-—---——-—--—-—-——-——--—-----——-———-—-—--—---—
指导教师: -—------- 课程时间: 2013。08。27—-09.06
目录
第一章 1.1 1.2
问题定义 .......................................................................................................................................... 1 引言 ...................................................................................................................................................... 1 系统名称及概况 .................................................................................................................................. 1
第二章 可行性研究 ........................................................................................................................................... 1 2.1 2.2
系统分析 .............................................................................................................................................. 1 系统组成 .............................................................................................................................................. 3
第三章 需求分析 ............................................................................................................................................... 3 3.1 3.2
功能需求分析 ...................................................................................................................................... 3 数据库需求分析 .................................................................................................................................. 6
数据库的概念模型 ...................................................................................................................... 6 数据库的逻辑模型 ...................................................................................................................... 7
3.2.1 3.2.2
第四章 总体设计 ............................................................................................................................................. 11 4.1 4.2 4.3 4.4 4.5 4.6
总体设计 ............................................................................................................................................ 11 数据流图 ............................................................................................................................................ 11 业务流程分析 .................................................................................................................................... 12 系统功能模块 .................................................................................................................................... 13 系统模块设计 .................................................................................................................................... 14 数据库的实现脚本 ............................................................................................................................ 15
I
4.6.1 定义SQL模式 ................................................................................................................................ 15 4.6.2 创建基本表 ..................................................................................................................................... 15 4.6.3 创建SQL索引 ................................................................................................................................ 19 4.6.4 SQL数据控制——授予权限 ........................................................................................................... 19 第五章 详细设计 ............................................................................................................................................. 20 5.1
软件结构功能模块 ............................................................................................................................ 20
5.2 程序流程图 ............................................................................................................................................ 22 第六章 编码与测试 ......................................................................................................................................... 26 6.1 身份验证C++源程序代码 ..................................................................................................................... 26 6.2 身份验证MFC窗口实现 ..................................................................................................................... 27 6.3 身份验证模块软件测试 ........................................................................................................................ 28 结语 ................................................................................................................................................................... 28 附件1:伸缩门改造目标样式 ........................................................................................................................ 29 附件2:校园停车场分布示意图 .................................................................................................................... 30
II
第一章 问题定义
1.1 引言
近年来,随着我国经济的快速发展,人们生活水平的不断提高,物质需求和生活方式也发生着深刻的变化,以前属于奢侈品的汽车己经逐步走入了人们的日常生活。伴随汽车消费大众化,校园内车辆数迅速增加,迫切需要规范化的校园停车场管理系统对校园停车进行高效管理。
停车是”速度为零的交通”,停车场及附属相关设施是静态交通的重要组成部分。目前的多数停车场存在着以下几个问题,管理漏洞、系统的可靠性、性强、收费过程比较繁琐、劳动强度高、停车场利用率低下、票款易流失等.针对这些问题,该停车场管理系统从以下几方面进行设计:针对管理进行了优化,采用划卡消费和现金支付相结合,系统计时收费;采用关系数据库标准语言SQL,借助VC++ 6.0软件进行窗口设计。优化后的系统使用方便、服务高效、收费透明、可防止票款的流失,提高可靠性的同时也提高了操作者的工作效率.
1.2 系统名称及概况
系统名称:校园停车场管理系统
建设性质:新建系统及校园出入口伸缩门改造(目标样式见附件1) 建设地点:吉林大学南岭校区
系统概况:
在校园东门和西门安装停车管理及实时监控系统,主要功能包括泊位引导、停车收费、实时监控跟踪等。将校园内停车泊位划分为几个停车场区(见附件2),车辆在入口可以清楚地知道各停车区的泊位利用情况,经过信息登记,在道路标志引导下进入相应停车区的空闲泊位。车辆在入口进行信息登记后,系统可以对车辆进行实时监控,直到车辆在出口进行信息核对并缴费后离开校园。
第二章 可行性研究
2.1 系统分析
系统采用感应卡实施管理,在停车场的出入口各设置一套出入口管理设备,使停车场形成一个相对封闭的场所,进出车辆只需将感应卡在读卡箱前轻晃一下,系统即能瞬时完成检验、记录、核算、收费等工作,挡车道闸自动启闭,实现方便快捷的停车场管理。
停车卡可根据车主身份的不同,分别发行月租卡、免费卡和临时卡三种类型的卡.系统支持三种卡类的不同收费方式,以满足按车主身份分别收费的要求。电脑自动计时、计费,免费卡和月租卡
1
自动识别,临时卡人工收取现金,服务快捷高效,电脑显示屏及收费显示屏同时显示停车时间与应收费用,卡上余额或有效期限,收费透明度高,票箱显示屏还提示指导住户使用停车场,并以文明语言问候致意.
软件管理实行分级权。对出口值班员来讲,其登录后可进入收费管理,期间该出口所有收费均自动记入该值班员名下并存入电脑数据库。由于值班员受权限,不能进入系统中更高的软件菜单项,所以对电脑所记录的数据无法干涉;上级管理者可以随时查询,核对或打印一个值班段或任何一段时间乃至整个停车场的工作记录.这样就从根本上杜绝了停车费用流失和财务统计的失误,同时系统自动运行,杜绝了人情车、霸王车造成的经济损失。
系统还可在停车场的出入口各安装的1台高解像度彩色固定摄像机、固定支架、自动光圈手动对焦镜头,可24小时监视车辆出入情况,看清车牌号码。当有车辆驶入车场时,摄像机将信号通过视频电缆传输到停车场管理系统中,存入数据库中;当有车辆驶离车场时,车辆除应交纳必要的管理费用外,驶离车辆的所有资料(车牌、型号、颜色等)都必须与驶入车场时的资料对比相同(为人工识别),闸杆才升起,让车辆通过.
综上分析,停车场管理系统的车辆进出工作流程为:
进场时,驾驶员驱车到入口控制机处,如果是月租卡或免费卡(称为固定卡)用户,直接刷卡就能进入.读卡后,系统会判断卡是否在有效限期内,是否有余额,并且判断是否有在停车场内部未出的记录。如果满足预设条件,则开闸放行,否则语音提示不放行.如果是临时卡,则驾驶员自己取卡,道闸开启,车辆通行。
出场时,固定卡,直接刷卡进出;临时卡,操作员收费后,开闸放行。
车辆不论是进或者出,在开启道闸的瞬间,摄像系统拍照记录并保存。车辆通过道闸后,道闸自动落杆.
停车场管理系统分为入场停车和出场取车两部分。系统流程图如图2—1所示。
入场 卡审核停车数据中心出场收费图 2—1 系统流程图
出场审核 A.入场停车流程 (1)入场
根据车位实时统计显示系统给出的停车场实时利用信息来控制车辆的入场,停车场在有车位的情况下方能停车。 (2)卡审核
刷卡或者发放临时卡,系统自动记卡编号、卡号、卡类型、余额、发卡时间、有效时间、卡状态(已发或挂失)等基本信息,刷卡时并判断卡的有效性,若有效,图像系统自动摄录一幅车辆进场图像于电脑,播放欢迎词,并放行车辆。
2
(3)停车
系统为用户分配停车位,用户在道路泊位引导标志的指引下,到指定停车位置停车。 B。出场取车流程
若用户需要查找停放位置,拨打卡面上提供的帮助电话,操作员在系统中帮忙查找车辆停放位置信息.
(1)出场审核
车辆在出口处刷卡或交还临时卡,系统自动记录卡信息。同时系统自动显示该车进场图像,收费
员确认无误后收费. (2)收费
系统根据车辆信息、卡类型以及停车时间等,依据收费标准计算收费额度实施收费环节.(划卡或人工收取现金) (3)出场
交费之后,操作员按确认键,图像系统自动摄录一幅车辆出场图像于电脑,语音系统提示“谢谢,祝您一路平安!\"等声音,电动栏杆升起。车辆通过埋在车道下的车辆检测线圈后,电动栏杆自动落下。
2.2 系统组成
系统分为软件部分和相应的硬件设施。
软件部分:停车计费系统、车位实时统计显示系统。
硬件设施:感应卡(具备GPS定位功能)、泊位引导标志、校园泊车实时监控摄像系统、自动挡车道闸、
车辆检测器(环型感应线圈检测器、超声波检测器、红外检测器、雷达检测器、视频检测器等)、刷卡机箱、控制主板、票据打印机、停车场嵌入式计算机、自动发卡机、自动收卡机。
第三章 需求分析
3.1 功能需求分析
根据停车场管理系统的需求,确定了该系统的用例图如下图所示。
3
图3—1 停车场管理系统用例图
图3—2 客户用例图
4
图3-3 系统管理员用例图
图3-4 操作员用例图
如图3—1所示,该系统主要有超级管理员、管理员和操作员三种角色,不同角色的基本任务如下所述。 超级管理员具有最高权限,即对本系统所有权限的操作权和授予权.超级管理员授权给管理员,并赋予管理员应有的权限.
管理员可根据需要来维护角色信息,并授权给相应的操作员,进行系统的基本参数设置、权限设置、数据管理和操作员的档案管理.
操作员行使管理员赋予的权限,进行档案管理(车辆档案、卡档案管理、用户档案管理)、入场管理、收费管理和出场管理。
根据用例图得到的部分类图,如图 3-5
5
administrator+name : String+password : String+accredit()manager-name : String-password : String+setting()operator-name : String-password : String-age : int-operator_no : string+charge()
图 3-5 类图
3.2 数据库需求分析 3.2.1 数据库的概念模型
如图 3-6所示的系统数据库ER图,制定一个收费标准,要根据卡的类型以及收费的标准(时收费或次收费)来确定。停车场的每一个用户都有唯一的一条卡信息与自己的车信息绑定.停车场的总车位数决定了车位表的总车位,一个车位只能存放一辆车。根据入场时的信息和出场时的信息以及收费标准,综合得出收费金额。记录要记下该员工的上、下班时间以及在这段时间内的所有操作.
次收费表1包含n收费标准表 1n包含1时收费表包含停车场参数表1 1用户表 11拥有1卡表 11出场1出场表 1属于nn1拥有1入场 11计费 11车位表存放车表包含1入场表 n计费1收费表 n签名 1记录 11员工表上班n表 图 3—6 系统数据库ER图
6
根据系统需求,本系统需要设计13张表。 卡信息表:存放卡的相关信息。 停车场参数表:存放停车场的基本参数。 用户表:存放用户的基本信息。 车信息表:存放车的基本信息。
权限表:存放对应的权限信息和对应的行使该权限人员的相关信息。 时收费表:存放按时收费的时间段。 次收费表:存放按次收费的时间段。 入场表:存放入场时候的一些信息。 出场表:存放出场时的相关信息. 表:存放操作员交的相关信息. 收费表:存放停车一段时间的收费信息。 车位表:用于存放每一个车位上的停车状态。 收费标准表:存放收费的统一标准.
3.2.2 数据库的逻辑模型
针对ER模型中对表的要求,下面给出各个表的详细结构.
表3-1 卡信息表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cardid 卡编号 var char 20 否 是 cardno 卡号 var char 20 是 否 cardtype 卡类型 var char 20 是 否 cardmoney 余额 money 8 是 否 sendtime 发卡时间 timestamp 8 是 否 activetime 有效时间 timestamp 8 是 否 sendflag 已发 boolean 1 是 否 loseflag
挂失
boolean
1
是
否
表3—2 停车场参数表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 parkname 停车场名字 var char 20 是 否 parktotal
总车位
int
4
是
否
7
entertotal 入口车道数 int 4 是 否 exittotal 出口车道数 int 4 是 否 parktel 停车场电话 var char 20 是 否 parkadd
停车场地址
var char
20
是
否
表3—3 用户表
字段名 描述 类型 长度 是否为空 是否主键 id 编号 var char 20 否 是 username 用户名 var char 20 是 否 usersex 性别 char 2 是 否 usertel 电话 var char 20 是 否 cardno 卡号 var char 20 是 否 carno 车牌 var char 20 是 否 address
地址
var char
20
是
否
表3-4 车信息表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 carid 编号 var char 20 否 是 carno 车牌号 var char 20 是 否 cartype
车类型
var char
20
是
否
表3-5 权限表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 poperatorid 编号 var char 20 否 是 poperatorname 姓名 var char 20 是 否 poperatorsex 性别 char 10 是 否 poperatorpsw 密码 var char 20 是 否 poperatorright
权限
var char
20
是
否
表3-6时收费表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 timeno
时间号
int
4
否
是
8
starttime 开始时间 char 10 是 否 endtime
结束时间
char
10
是
否
表3—7 次收费表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 timesno 次号 int 4 否 是 starttime 开始时间 char 10 是 否 endtime
结束时间
char
10
是
否
表3-8 入场表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 encardid 入场编号 var char 20 否 否 encardno 卡号 var char 20 是 否 encarno 车牌 var char 20 是 否 enway 入场车道 var char 20 是 否 entime 入场时间 timestamp 8 是 否 enposition
占用车位
var char
20
是
否
表3—9 出场表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 exited 出场编号 var char 20 否 否 excardno 卡号 var char 20 是 否 excarno 车牌 var char 20 是 否 exway 出场车道 var char 20 是 否 extime 出场时间 timestamp 8 是 否 exposition
腾出车位
var char
20
是
否
表3—10 表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 tnoperator 操作员 var char 20 否 否 tnlogintime
登录时间
timestamp
8
是
否
9
tnturntime 时间 timestamp
8 是 否 entimes 进场次数 int 4 是 否 extimes 出场次数 int 4 是 否 totalmoney
金额总计
money
8
是
否
表3—11 收费表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargeid 收费编号 var char 20 否 否 chcardno 卡号 var char 20 是 否 chcarno 车牌 var char 20 是 否 chmoney
收费金额
money
8
是
否
表3-12 车位表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 cpcarno 车牌 var char 20 是 否 positionstate
车位状态
var char
20
是
否
表3—13 收费标准表
字段名 描述 类型 长度 是否为空 是否主键 id 自增 int 4 否 是 chargestid 标准编号 int 4 是 否 cardtype 卡类型 var char 20 是 否 cartype 车类型 var char 20 是 否 chargetype 收费类型 var char 20 是 否 timeno 时间编号 int 4 是 否 unittime 单位时间 int 4 是 否 unitsum 单位金额 int 4 是 否 maxsum
最大金额
int
4
是
否
10
第四章 总体设计
4.1 总体设计
首先判断登录的身份,进入相应的操作页面进行需要的操作,最终完成目的操作的功能。本系统UML活动图如图4-1所示。
它们的内在关系由数据库和程序来控制。
图4—1 UML活动图
4.2 数据流图
本软件的顶层数据流图如图4—2所示:
11
密码库管理员权限库管理员权限密码信息反馈用户账号和密码身份验证身份1超级管理员界面授权处理授权管理管理员权限身份2管理员界面操作员权限操作员权操作员限库权限身份3操作员界面档案管理档案信息档案库入场管理收费管理收费信息收费记录库出场管理出场信息出场记录库
入场信息入场纪录库图4—2 顶层数据流图
4.3 业务流程分析
本系统的使用者是停车场的工作人员,为了便于管理并借鉴现有停车场的管理模式,划分成三个角色的用户.工作人员首先登陆系统,经过一系列的身份验证,登陆成功之后进入相应的操作界面,实现各自的管理功能。总体功能分析业务流程图。如图 4-3业务流程图
12
管理员登录登录成功NY超权限判断操作员级管管理员理 员授系权数档入权统限据案场出收费管设管管管管场管管理置理理理理理理图4—3 业务流程图
其中各模块有对应的添加、修改及删除功能.
4.4 系统功能模块
如图 3-3 系统功能模块划分
13
超级管理员授权管理系统设置管理员操作员档案管理停车场管理系统数据管理档案管理入场管理操作员出场管理收费管理
图 4-4 系统功能模块划分
4.5 系统模块设计
(1)授权管理模块 具有最高管理权限超级管理员对该模块进行操作,对管理员进行授权,添加、删除、修改管理员。
(2)系统设置 由超级管理员授权的管理员行使该功能,主要是对停车场的参数进行设置。
(3)操作员档案管理 由管理员行使修改功能,对停车场业务操作员进行管理,添加、删除、修改操作员的信息.
(4)数据管理模块 该模块显示了停车场日常运行所产生的数据,场内车辆,进出数据,收费金额以及记录的相关信息.
(5)档案管理 该部分功能为操作员所使用,主要是对停车场发放的卡进行管理、车档案的管理以及停车场顾客的信息档案管理。他们都有自己的添加、删改、修改的功能。
(6)入场管理 该模块是本系统的一个重要的功能模块,主要采集汽车入场时候的一些必要的参数,对参数进行处理和判断,这些获得的参数提交到后台进行相关的处理。
(7)出场管理 汽车离场之前对其进行的离场验证和停车时间的数据收集,为下一收费模块提供数据。
14
(8)收费管理 该模块是本系统最重要的一个模块,根据出入场提供的参数结合该模块收费标准的设置计算出收费的金额,完成收费并打印出收费清单。
4.6 数据库的实现脚本 4。6。1 定义SQL模式
为停车场管理系统定义一个SQL模式,其拥有者为超级管理员.
CREATE SCHEMA PARK AUTHORIZATION administrator;
4.6。2 创建基本表
1 卡信息表
CREATE TABLE PARK。pcard
(
id int IDENTITY (1, 1) NOT NULL ,
cardid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , cardno var char (20) ,
cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cardmoney money NULL , sendtime timestamp NULL , activetime timestamp NULL ,
sendflag var char (10) COLLATE Chinese_PRC_CI_AS NULL , loseflag var char (10) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,cardid));
2 停车场参数表
CREATE TABLE PARK。 parkparameter
(
id int IDENTITY (1, 1) NOT NULL ,
parkname var char (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,parktotal int NULL , entertotal int NULL , exittotal int NULL ,
parkadd var char (50) COLLATE Chinese_PRC_CI_AS NULL , parktel var char (20) COLLATE Chinese_PRC_CI_AS NULL,
15
PRIMARY KEY (id),);
3 用户表
CREATE TABLE PARK。users
(
Id int IDENTITY (1, 1) NOT NULL ,
userid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , username var char (20) COLLATE Chinese_PRC_CI_AS NULL , usersex var char (20) COLLATE Chinese_PRC_CI_AS NULL , usertel var char (20) COLLATE Chinese_PRC_CI_AS NULL , usercarid var char (20) COLLATE Chinese_PRC_CI_AS NULL , usercardid var char (20) COLLATE Chinese_PRC_CI_AS NULL , useradd var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id)
FOREIGN KEY (usercarid) REFERENCES car(carid),
FOREIGN KEY (usercardid) REFERENCES pcard(cardid));
4 车信息表
CREATE TABLE PARK.car
(
id int IDENTITY (1, 1) NOT NULL ,
carid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , carno var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,carid));
5 权限表
CREATE TABLE PARK。rateright
(
Id int IDENTITY (1, 1) NOT NULL ,
poperatorid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,poperatorname var char (20) COLLATE Chinese_PRC_CI_AS NULL , poperatorsex char (10) COLLATE Chinese_PRC_CI_AS NULL , poperatorpsw var char (20) COLLATE Chinese_PRC_CI_AS NULL, poperatorright var char (20) COLLATE Chinese_PRC_CI_AS NULL , PRIMARY KEY (id,poperatorid));
6 时收费表
CREATE TABLE PARK。ptime
16
(
Id int IDENTITY (1, 1) NOT NULL , timeno int NOT NULL ,
starttime var char (50) COLLATE Chinese_PRC_CI_AS NULL , endtime var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id,timeno));
7 次收费表
CREATE TABLE PARK。ptimes
(
id int IDENTITY (1, 1) NOT NULL , timesno int NOT NULL ,
starttimes char (8) COLLATE Chinese_PRC_CI_AS NULL , endtimes char (8) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id, timesno));
8 入场表
CREATE TABLE PARK。entrance
(
id int IDENTITY (1, 1) NOT NULL ,
encardno var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,encardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , encarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , encartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , enway var char (20) COLLATE Chinese_PRC_CI_AS NULL , entime timestamp NULL ,
enposition var char (20) COLLATE Chinese_PRC_CI_AS NULL , enchargetype var char (50) COLLATE Chinese_PRC_CI_AS NULL , enoperator var char (50) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id));
9 出场表
CREATE TABLE PARK.pexit
(
id int IDENTITY (1, 1) NOT NULL ,
excardno var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,excarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , exway var char (20) COLLATE Chinese_PRC_CI_AS NULL ,
17
extime timestamp NULL,
exposition var char (20) COLLATE Chinese_PRC_CI_AS NULL , PRIMARY KEY (id));
10 表
CREATE TABLE PARK.turn
(
id int IDENTITY (1, 1) NOT NULL ,
tnoperator var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , tnlogintime timestamp NULL , tnturntime timestamp NULL , entimes int NULL , extimes int NULL ,
totalmoney money NULL, PRIMARY KEY (id));
11 收费表
CREATE TABLE PARK。charge
(
id int IDENTITY (1, 1) NOT NULL ,
cardid var char (20) COLLATE Chinese_PRC_CI_AS NOT NULL , cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , carno var char (50) COLLATE Chinese_PRC_CI_AS NULL , money money NULL, PRIMARY KEY (id));
12 车位表
CREATE TABLE PARK.carposition
(
Id int IDENTITY (1, 1) NOT NULL ,
cpcarno var char (20) COLLATE Chinese_PRC_CI_AS NULL , positionstate var char (20) COLLATE Chinese_PRC_CI_AS NULL, PRIMARY KEY (id));
13 收费标准表
CREATE TABLE PARK。standardcharge
(
id int IDENTITY (1, 1) NOT NULL ,
18
chargestid int NOT NULL ,
cardtype var char (20) COLLATE Chinese_PRC_CI_AS NULL , cartype var char (20) COLLATE Chinese_PRC_CI_AS NULL , chargetype var char (20) COLLATE Chinese_PRC_CI_AS NULL , timeno int NULL , unittime int NULL , unitsum int NULL , maxsum int NULL, PRIMARY KEY (id));
4。6。3 创建SQL索引
为了方便用户电话查询车辆停放位置信息,建立入场车辆车牌号索引。
CREATE CLUSTER INDEX encarno_index ON entrance(encarno);
4。6.4 SQL数据控制—-授予权限
超级管理员将对数据库的一部分控制权限授予给管理员角色,并把管理员角色授予给所有管理员。
GRANT ALL PRIVILEGES
ON TABLE pcard, parkparameter, users,car, rateright, ptime, ptimes, entrance,
pexit, turn, carposition TO manager;
GRANT SELECT,INDEX ON TABLE charge , standardcharge TO manager;
GRANT manager TO PUBLIC;
19
第五章 详细设计
软件结构功能模块
图3—2所示,软件结构功能中操作员功能模块图如图5—1所示:
身份验证 初始化 重新验证 消息循环 非正常退出车值用软信退出 位班户件息 管管管介查理 理 理 绍 询 正常退出 取入值值记删添关查查查车场班班事 除加于询询询并停历管用用,某以账算车 史理 户 户 帮个前本 取查助 日的费询 期入用 的车情情况 况 图5-1 操作员功能模块图
20
5.1
管理员功能模块图如图5-2所示:
身份验证 初始化 重新验证 消息循环 非正常退出停权数操作信退出 车限据员档息 场设管案管查管置 理 理 询 正常退出 理 停停操操数打增加、查查查车车作作据印删除、询询询场场员员分数修改某以账基使权权类据操作个前本 本用限限统报员档日的参权授更计 表 案 期入数限予 改 的车设管情情置 理 况 况 图5-2 管理员功能模块图
21
5。2 程序流程图
5。2.1 用户登录模块程序流程图
开始m=0输入用户名和密码对m进行重新赋值调用身份识(m=1表示超级管理员身份;别程序m=2表示管理员身份;m=3表示操作员身份;)提醒用户名Y或密码错误m=0NY调用超级管m=1理员界面控处理程序1制程序NY调用管理员m=2界面控制程处理程序2序NY调用操作员m=3界面控制程处理程序3序N停止图5—3 用户登录模块程序流程图
22
授权管理模块程序流程图
超级管理员对管理员的授权和管理员对操作员的授权,调用同一授权管理模块。
图5—4 授权管理模块程序流程图
23
5.2。2
5。2。3档案管理模块程序流程图
管理员对操作员档案进行管理和操作员对卡、车、顾客等档案进行管理,调用同一档案管理模块。
开始t=0调用管理员档案管理界面控制程序Yq=1N调用操作员档案管理界面控制程序对c进行赋值(c=1表示卡管理;c=2表示车管理;c=3表示顾客信息管理)选择管理方式对t进行重新赋值(t=1表示添加;t=2表示删除;t=3表示修改)N选择管理内容Yt=0处理程序1添加操作员详细信息控制程序删除操作员详细信息控制程序修改操作员详细信息控制程序Yt=1NNYc=1卡管理界面控制程序处理程序4Yt=2NYt=3NN处理程序2c=2Y车管理界面控制程序处理程序5处理程序3c=3NY顾客信息管理界面控制程序处理程序6停止 图5-5 档案管理模块程序流程图
24
收费管理模块程序流程图 开始卡信息读取记录程序对card进行赋值卡类型识别(card=1表示免费卡;程序card=2表示临时卡;card=3表示月租卡;)card=1YPrice=0调用免费卡收费处理程序NYcard=2调用收费金调用临时卡收额计算程序费处理程序Ncard=3Y调用收费金调用月租卡收额计算程序费处理程序N停止图5-6 收费管理模块程序流程图
25
5。2。4
第六章 编码与测试
本章主要对用户登录模块的实现及测试展开研究,其他模块方法相同。
6。1 身份验证C++源程序代码
#include ”PasswordDlg.h\"
BOOL CMyDialog2App::InitInstance() {
int nCount=0,m=0; while(nCount<3) {
CPasswordDlg PassDlg; if(PassDlg。DoModal()==IDOK)
if((strcmp(PassDlg。m_strUserName,”441004”))&&(strcmp(PassDlg。m_strPassword,\"jluedu”))!
=0)
{
if((strcmp(PassDlg。m_strUserName,”171004”))&&(strcmp(PassDlg。
m_strPassword,\"rjgcks\"))!=0)
=0)
{
if((strcmp(PassDlg.m_strUserName,”353533”))&&(strcmp(PassDlg。m_strPassword,”class4\"))!
else {
}
{
MessageBox(NULL,”用户名或密码错误,请重新输入!\
”错误信息\",MB_OK|MB_ICONERROR);
nCount++; }
else {m=3;break;} }
else {m=2;break;}
else{ m=1;break; }
return FALSE;
26
}
}
if(nCount>=3) { MessageBox(NULL,\"输入已经超过3次,请退出!”,
\"错误信息”,MB_OK|MB_ICONERROR);
return FALSE;
}
6。2 身份验证MFC窗口实现
借助Visual C++ 6。0 编程软件,实现用户登录身份验证,如图6—1。
图6-1 用户登录界面
当用户名或密码输入有误时,会弹出相应提示信息,并重新输入,如图6-2。
图6-2 登录信息错误提示
为了确保安全,当用户名和密码输入三次都错误时,系统将自动退出登录,如图6—3所示。
27
图6—3 登录次数
6.3 身份验证模块软件测试
本模块在设计过程中建立三个用户,分别为超级管理员(441004,jluedu,m=1)、管理员(171004,rjgcks,m=2)和操作员(353533,class4,m=3).只有用户名和密码同时正确且匹配时,才能打开相应界面。当用户名和密码输入错误时,给出提示信息并重新登录。错误登陆次数超过三次,系统将自动退出。为此设计软件测试方案设计,测试报告如表6-1所示。 测试编号 1 2 3 4 5 6 7 8
用户名 441004 171004 353533 441004 171004 111111 222222 441004 密码 jluedu rjgcks class4 rjgcks mimaaa class4 class1 jluedu m=? 1 2 3 0 0 0 0 1 结果 正常登录 正常登录 正常登录 登录失败,重新登录 登录失败,重新登录 登录失败,自动退出 登录失败,重新登录 正常登录 结语
通过本次课程设计,对《软件工程》所学知识进行了进一步学习,并将理论知识结合专业知识进行了校园停车场设计,加深了对交通工程专业的认识.
在课程设计过程中,由于受到专业,对数据库和MFC窗口设计等相关知识了解不深,因此在设计过程中对问题的探讨没有进一步深入,需要在今后进行进一步学习。
28
附件1:伸缩门改造目标样式
29
附件2:校园停车场分布示意图
30
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务