数据库论文.docx
- 文档编号:2341004
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:32
- 大小:293.95KB
数据库论文.docx
《数据库论文.docx》由会员分享,可在线阅读,更多相关《数据库论文.docx(32页珍藏版)》请在冰点文库上搜索。
数据库论文
学号:
0121210680330
课程设计
课程名称
《数据库系统原理》
论文题目
中原高速股份公司公路收费管理系统设计
学院
计算机科学与技术学院
专业
软件工程
班级
Sy1201
姓名
郭烨华
指导教师
凌咏红
`
2014——2015学年第2学期
数据库系统课程设计指导书
一、目的与要求
本课程设计的目的是通过实践使同学们经历数据库应用系统设计的全过程和受到一次综合训练,以便能较全面地理解、掌握和综合运用所学的知识。
结合具体的开发案例,理解并掌握系统分析、系统设计、系统实施的主要环节和步骤以及软件文档的制作能力。
在实践中培养分析问题和解决问题的能力。
二、课程设计内容
1.对实际系统进行分析,写出需求分析说明。
2.概念结构设计
3.逻辑结构设计
4.实现设计
三、课程设计步骤与方法
1.对实际系统进行分析,间接调查,鼓励直接调研;写出需求分析说明。
2.数据库设计
(1)概念结构设计
说明本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域,建立本数据库的每一幅用户视图和全局视图(E-R图,可以用基本E-R图或扩展E-R图)。
(2)逻辑结构设计
将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。
(3)
以流行的RDBMS为支撑:
a.写出数据库、关系的定义形式包括:
列级约束和表级约束
b.索引、聚簇的设计;
c.视图及查询设计
3.系统的功能模块图
四、课程设计题目
每个学生分配一个设计题计,详见数据库课程设计题目明细表。
五、课程设计说明书
1.概述(设计题目与可行性分析)
2.系统目标和设计原则
3.支撑环境规划
硬件及软件支撑环境及开发工具
4.系统总体结构
4.1总体DFD
4.2功能结构
功能结构图,主要功能(或“处理(Process)”)说明。
4.3数据库结构
数据字典、E-R图,关系数据库模式
5.总体实施计划
6.研制报告
研制过程,本规划的特点、不足,体会等
7.参考文献
六、设计要求:
1.每个学生分配一个设计题。
2.设计报告正文字数不少于0.5万字(不包括附录)
3.设计报告要求打印,层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。
4.明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,积极认真地做好准备工作。
5.课程设计中,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。
严格要求自己,有意识地树立严谨的科学作风,要独立思考,刻苦钻研,按时、独立完成课程设计任务。
目录
1摘要1
2系统分析与设计4
2.1系统分析4
2.1.1车道收费系统功能规定4
2.1.2车道收费处理主要流程分析5
2.2解决方案设计9
2.2.1总体设计9
2.2.2车道系统程序设计13
2.2.3数据上传通信16
2.2.4通信系统设计16
2.2.5数据库设计21
3系统开发与实现33
3.1开发环境及工具33
3.2系统实现33
3.2.1用户界面实现33
3.2.2通信系统实现40
3.2.3高速公路出口费率计算实现42
3.2.4车辆照片查询实现42
3.2.5导出EXCEL报表实现42
4总结50
致谢51
参考文献52
1摘要:
高速公路收费系统是高速公路管理的重要组成部分。
建立智能化的收费系统是加强高速公路管理的一个重要环节。
这个系统的建立将会较好地解决交通收费业务中手工撕票收费这一传统方式所出现的各种问题,提高收费效率,杜绝跑、冒和漏收,能提高高速公路的整体功能。
根据国内外高速公路收费系统的发展经验,结合当今的技术发展趋势,本文详尽地阐述了高速公路联网收费系统的设计、关键技术和部分技术实现。
本文首先介绍了当前国内外高速公路收费系统的发展状况,并讨论了其优缺点,从中选出适用于我国现状的设计方案。
然后对本收费系统进行系统总体分析,对本系统的需求进行了分析。
然后,对系统总体设计进行了阐述,先确定了系统结构,并对系统中用到的数据库进行了分析和选择,对系统进行了总体设计。
在后面的系统程序设计中对车道收费系统和收费站收费系统的设计进行了详细的论述,并对系统的安全性进行了设计。
最后,本文简述了主要研究结果和存在的不足,并对不足给出了进一步改进的建议,展望了我国高速公路收费系统发展的方向。
关键词:
智能交通,车道收费系统,高速公路,费用计算
2系统分析与设计
3.1系统分析
车道收费系统的需求分析主要以新的收费模式下高速公路的实际情况和运营管理方面的要求为基础。
3.1.1车道收费系统功能规定
车道收费软件按功能分为入口和出口两种类型入口车道收费系统通过所配车道设备及收费员对进入高速公路的车辆进行抓拍图像、识别车牌、车型、车情输入。
对黑名单、白名单车辆进行相应的处理。
将车道信息、收费员工号、车情、车型、车牌号、卡盒号、日期时间、抓拍图像等其他信息写入数据库表中,形成一条流水记录;并将相应的入口描述信息写入通行IC卡,发给通行车辆司机,抬起电动栏杆机。
车辆驶出车道,完成入口操作。
出口车道收费系统通过所配车道设备及收费员对驶出高速公路的车辆进行抓拍图像、识别车牌、读出通行IC卡中存储的信息。
对读出的信息进行自动及人工核对,计算出通行费,并用费额显示器显示收费金额,并用语音设备发出礼貌用语;回收通行IC卡、收取通行费。
当出现免费、丢卡、坏卡、违章、黑名单、白名单车辆时,按相应规定进行处理;将出口的路段、站点、车道标识信息、收费标识信息、车型、车种、车牌号、IC卡及卡盒号信息、日期时间等其他信息在车道数据库表中写入一条流水记录,并在该卡中写入使用完毕注销信息;打开电动栏杆机,车辆驶出车道,完成出口操作[2]。
此外,车道收费软件系统还应具有下述功能:
1.对收费人员上下班身份验证的功能;
2.自动检测并记录车道设备的运行状态功能;
3.能够提供一定的安全机制,防止随意删改数据,同时提供数据备份和在网络中断情况导出数据的服务;
4.通过车牌自动识别,系统实现防换卡功能;
5.在非主要设各出现故障的情况下,系统亦能够完成收费处理;
6.尽量减少设备各故障对车道收费的影响。
3.1.2车道收费处理主要流程分析
车道处理流程分析以车道收费业务为中心,分为两部分;入口车道流程分析和出口车道流程分析[3],主要以流程图的形式来体现。
因为涉及的分析流程较多,所以以下画出的是入口、出口主要收费业务分析流程图[4]。
1.车道处理主控流程分析
图2.1车道处理主控流程分析
2.入口发卡处理流程分析
图2.2入口发卡处理流程分析
3.入口车情流程分析
图2.3入口车情流程分析
4.出口车情处理流程
图2.4出口车情处理流程
3.2解决方案设计
3.2.1总体设计
1.基本设计概念和处理流
在收费系统中,存在着各种数据,其中有些是与收费相关的,如收费流水数据、运营参数数据、各类相关的查询数据等[5]。
其他是配合收费工作的,例如短消息、时钟同步等[6]。
根据有关标准和需求分析,整个系统的数据流向如下图所示[7]:
图2.6基本设计概念和处理流程
2.程序组成与结构
根据数据的流向以及需要做的处理工作,系统被设计成许多个子系统和子程序构成。
根据数据的处理需要和程序的部署位置,整个系统的程序组成如下表所示:
表2.1程序组成与结构
位置
程序名称
说明
车道
车道入口程序
-
车道
时钟同步客户端服务程序
-
车道
短消息接受服务程序
-
站级
站级报表管理子系统
-
站级
站级参数浏览子系统
-
站级
站级交班管理子系统
-
站级
站级数据备份与恢复子系统
-
站级
站级IC卡管理子系统
-
站级
人工录入流水程序
-
站级
报警信息转发服务程序
-
站级
监控图象查询代理服务程序
-
站级
时钟同步客户端服务程序
-
站级
时钟同步服务端服务程序
-
站级
车道数据长传服务程序
-
站级
站级参数下发子系统程序
-
路段中心
路段报表管理子系统程序
-
路段中心
路段参数管理子系统程序
-
路段中心
路段票据管理子系统程序
-
路段中心
路段数据备份与恢复系统程序
-
路段中心
路段图象稽查子系统程序
-
路段中心
路段IC卡管理子系统程序
-
路段中心
路段收费监控子系统程序
-
路段中心
报警信息转发服务程序
-
路段中心
收费站数据上传服务程序
-
路段中心
路段参数下发子系统程序
-
路段中心
联网通信客户端程序
-
路段中心
时钟同步客户端服务程序
-
路段中心
时钟同步服务端服务程序
-
区域中心
联网通信服务端程序
-
3.2.2车道系统程序设计
1.车道系统概述
为了实现区域联网收费,车道需要进行国王车辆情况的原始数据采集。
根据湖南省有关联网收费标准和接口规范,通过安装在车道工控机上的收费系统和相应的场外设备来有效完成数据采集工作。
入口流程包括入口发IC卡或粤通卡操作流程、入口倒车操作流程、入口修改操作流程、入口挂车操作流程、入口车队操作流程、入口免费车操作流程、入口发纸卷等。
出口流程包括出口通行卡收费流程、出口公务车收费流程、出口修改收费流程、出口坏卡收费流程、出口丢卡收费流程、出口回头车收费流程、出口车型不符收费流程、出口车型不符操作流程、出口车种不符收费流程、出口车牌收费流程、出口未付车收费流程、出口车队收费流程、出口粤通卡收费流程、出口免费车收费流程、出口挂车收费流程、出口手工收费流程等。
车道收费系统可以有效的控制所有场外设备,以及对各种特殊情况进行处理的功能。
同时车道收费系统的工作方式是完全独立的,当收费站计算机不工作或者网络出现问题时,不影响车道系统的正常工作,系统参数,数据记录均存储在本地。
在通讯中断的情况下,收费车道系统维持正常收费作业,通讯恢复后,积压数据可自动上传。
当车道长期独立工作时,可以通过人工的方式用其他存储介质将数据上传到收费站[9]。
车道收费系统将实时获取系统运营参数,能有效避免各个路段参数使用不统一的问题。
车道收费系统有无人职守功能,当车道上无人上班时,以“无名氏”身份监视车道运行[10]。
出口车道能查询车辆在区域内的入口信息和入口图像。
车道收费系统原始数据存储在本地数据库LaneDB相应的数据流水表中,原始流水数据在车道保留40天。
过期数据将不做保留[7]。
3.2.5数据库设计
采用SQLSERVER数据库。
车道级数据库为LaneDB,主要包括InList等表。
表2.4InList表
列名
数据类型
长度
说明
StationName
varchar
50
收费站名
LaneNo
int
4
车道编码
VehType
varchar
50
车型
VehClass
varchar
50
种类
VehCount
varchar
50
车辆数
VehPlate(PK)
varchar
50
车牌
OperatorNo
int
4
操作员编码
CardNo
varchar
50
操作员卡号
Direction
int
4
方向
InTime(PK)
datetime
8
入站时间
VehStandard
varchar
50
车辆规格
PicPath
varchar
50
车辆照片存储路径
Flag
int
4
数据库上传标识位
【说明】
方向:
0为入站1为出站。
车辆规格:
绿色通道车、客车、货车。
数据库上传标识位:
0为未上传到站级数据库,1为上传到站级数据库。
表2.5OutList表
列名
数据类型
长度
说明
StationName
varchar
50
收费站名
LaneNo
int
4
车道编码
VehCount
varchar
50
车辆数
VehPlate(PK)
varchar
50
车牌
Direction
int
4
方向
OutTime(PK)
datetime
8
出站时间
VehStandard
varchar
50
车辆规格
Money
float
50
收费金额
【说明】
方向:
0为入站1为出站。
车辆规格:
绿色通道车、客车、货车。
表2.6Operator表
列名
数据类型
长度
说明
RoadNo
char
10
路段编码
StationNo
smallint
2
站编码
OperatorNo
int
4
操作员编号
OperatorName
varchar
50
操作员姓名
OpCardID
char
16
操作员编号
OpCardNo(PK)
int
4
操作员卡号
Password
varchar
6
登陆密码
AreaNo
char
10
区域编码
表2.7CardBlackList表
列名
数据类型
长度
说明
CardNo(PK)
char
4
卡号
AreaNo
sallint
2
区域编码
OpTime
datetime
8
失效时间
InValidTypeNo
tinyint
1
失效原因
表2.8Price表
列名
数据类型
长度
说明
InterStation
varchar
50
区间
Miles
int
4
里程
Standard
varchar
50
规格
Rate
float
8
费率
[2吨以下(含2吨)的绿色通道车]
int
4
车型
[2吨以下(含2吨)的各类货车]
int
4
车型
[2吨以上至5吨(含5吨)的各类货车]
int
4
车型
[5吨以上至10吨(含10吨)的各类货车]
int
4
车型
[10吨以上至15吨(含15吨)的各类货车]
int
4
车型
[7座以下(含7座)的客车]
int
4
车型
[8座至9座的客车]
int
4
车型
[20座至39座的客车]
int
4
车型
[40座(含40座)以上的客车]
int
4
车型
表2.9PriceRate表
列名
数据类型
长度
说明
Standard
varchar
50
规格
FeeRate
float
8
费率
3系统开发与实现
3.1开发环境及工具
操作系统:
MicrosoftWindowsXPProfessionalEdition。
开发平台:
MicrosoftVisualC++6.0。
开发语言:
C++。
辅助开发工具:
RationalRose,MicrosoftOffice2003,SQLSERVER2000。
3.2系统实现
3.2.1用户界面实现
1.车道收费系统部分
(1)员工通过员工编号和密码登陆系统
图4.1员工登陆
(2)主界面部分提供了员工操作的按钮等控件
图4.2主界面部分
(3)报表统计部分用来显示一段时间内车流辆信息
图4.3报表统计
(4)导出EXCEL
员工点击导出EXCEL按钮可以导出EXCEL报表,与上图内容相同
图4.4导出EXCEL报表
(5)入口信息入流水
图4.7入口信息入流水
(6)费用计算
当刷卡软件选择“出站”时,弹出该对话框并自动计算费用
图4.8出口费用计算
2.站级系统部分
数据库信息传递
车道级数据库定时(时间可以设置)想站级数据库传递新数据
图4.9站级模块
3.刷卡模块
车辆信息录入
输入有效信息后刷卡模块将信息传送到数据库录入相关的表中
图4.10入口刷卡模块
3.2.2通信系统实现
1.通行卡信息传递
在服务器端,由于accept()函数是阻塞函数,所以员工登陆后自动启动ListenThread(LPVOIDpParam)线程监听本机的80端口,同时不阻塞用户界面进程。
通过SOCKETsockSrv=socket(AF_INET,SOCK_STREAM,0)初始化套接字,通过addrSrv.sin_port=htons(80),bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof
(SOCKADDR))来绑定本地地址。
然后通过SOCKETsockConn=accept(sockSrv,
(SOCKADDR*)&addrClient,&len)循环监听端口80等待信息到来。
刷卡模块首先初始化套接字,通过connect(sockClient,(SOCKADDR*)
&addrSrv,sizeof(SOCKADDR))与服务器连接,当管理员点击确定按钮后,刷卡模块将车辆信息以特殊字符串形式传递到服务器端,即将每个有效信息用特殊字符隔开,将格式化后的字符串传送到服务器端。
服务器端接收到字符串后以特定的顺序用Find()将解析到的字符串存储到全局变量中。
由于线程不能调用非静态的数据成员和成员函数,所以在服务器接收到字符串后同时通过CCardScanDemoSerApp*s=(CCardScanDemoSerApp*)AfxGetApp()获得一个CCardScanDemoSerApp的实例,由于在整个工程中只生成一个该类的实例,所以用来存储真个系统运行期间的全局变量。
全局变量的数据成员主要有:
CStringstandard;//车辆规格
boolblogon;//员工登陆与否标志
CStringOperatorName;//员工姓名
intOperatorNo;//员工编号
CStringcarclass;//车类
CStringcardid;//卡号
intlaneno;//车道编码
CStringstationname;//入站名
CStringoutstationname;//出站名
intcarnum;//车辆数目
CStringcarplate;//车牌
intdirection;//方向,0表示入站1表示出站
在经过有效性验证后,将有效数据付给全局变量后,WriteInList()函数将信息存储至InList表中。
2.数据库信息传递
在InList数据库中flag字段用来标识该条数据是否已经上传到站级数据库,未传递为0,已传递为1。
在员工登陆后系统自动启动SendThread(LPVOIDpParam)每隔30分钟(时间可以设置)向站级数据库传递新信息,并且将标识位置为1。
传递的字符串用特殊字符标识并在站级数据库利用Find()函数解析字符串验证录入数据库(与刷卡模块数据传递相似)。
3.2.3高速公路出口费率计算实现
费率计算算法是设计的核心,高效的算法能够大大提高收费效率和减少错误。
在刷卡过程中,如果选择出站,则根据通行卡号调用GetInStationName(CStringcardid)从InList表中得到入站名。
再调用GetBasicFee(CStringinstationname,CStringoutstationname,CStringstandards)得到起步价格。
然后调用GetTotalFee(CStringintstationname,CStringoutstationname,CStringstandard)得到费用并显示在对话框中。
如果入站名和出站名相同则显示费用0。
如果在InList表中没有该车信息则该车为创关车,此时自动报警。
3.2.4车辆照片查询实现
查询照片时输入车牌,调用HBITMAPhbmp;hbmp=(HBITMAP):
:
LoadImage(AfxGetInstanceHandle(),m_picpath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)加载汽车牌照位图。
然后调用CBitmap*pbmp=CBitmap:
:
FromHandle(hbmp)获得位图指针,调用CStatic*pStatic=(CStatic*)GetDlgItem(IDC_PIC)获得指向CStatic控件的指针,pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);pStatic->SetBitmap(hbmp);在窗口上显示汽车照片。
3.2.5导出EXCEL报表实现
选择Menu->View->ClassWizade,打开ClassWizade窗口,选择AddClass->Fromatypelibrary,选择D:
\ProgramFiles\MicrosoftOffice\office\Excel9.OLB(D:
\ProgramFiles\MicrosoftOffice\是本机上MicrosoftOffice2000的安装目录,可根据个人机器上的实际安装目录修改)。
选择_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,加入新类,分别为_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range,头文件Excel9.h,源文件Excel9.cpp。
在CReportDlg.cpp文件的头部,#include"CReportDlg.h"语句之下,增加:
#include"comdef.h"
#include"Excel9.h"
为“导出EXCEL按钮”添加如下代码:
voidCReportDlg:
:
OnExport()
{
_ApplicationExcelApp;
WorkbookswbsMyBooks;
_WorkbookwbMyBook;
WorksheetswssMysheets;
_WorksheetwsMysheet;
RangergMyRge;
//创建Excel2000服务器(启动Excel)
if(!
ExcelApp.CreateDispatch("Excel.Application",NULL))
{
AfxMessageBox("创建Excel服务失败!
");
exit
(1);
}
ExcelApp.SetVisible(false);
//利用模板文件建立新文档
charpath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
CStr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 论文