高速公路收费管理系统的设计与实现.doc
编号:018 计算机系本科毕业(设计)论文课题名称高速公路收费管理系统的设 计 与 实 现专 业计 算 机 科 学 与 技 术姓 名学 号二零零九年六月目 录1引 言21.1开发背景及研究意义21.2 系统简介21.3开发工具介绍21.3.1 PowerBuilder 9.0简介21.3.2 sql server2000简介32 需求分析42.1 需求描述42.2 系统流程42.3 数据字典43 系统设计83.1 系统功能模块设计83.2 数据库设计93.2.1 概念模型的设计93.2.2 数据库逻辑结构的设计93.3 系统详细设计113.3.1车辆收费模块的设计113.3.2信息管理模块的设计123.3.3车辆查询模块的设计133.3.4数据统计模块的设计133.3.5系统维护模块的设计144系统实现154.1功能实现154.1系统登录154.2管理界面154.3车辆收费164.4员工查询175 系统测试205.1测试环境205.2测试步骤205.3测试结果206 结束语21致 谢22参考文献23高速公路收费管理系统的设计与实现摘 要:文章从软件工程的角度,主要阐述了用户需求及系统开发过程,分析了高速公路收费管理系统的基本功能。在此基础上,采用PowerBuilder 9.0编程语言和sql server2000数据库管理系统来完成系统程序设计和数据库管理。系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,设计并开发了车辆收费、车辆查询、数据统计、信息管理、系统维护等功能模块,完成了对车辆收费、管理的全过程,实现了高速公路收费管理工作的规范化、高效化。关键字:高速公路收费管理Abstract:Based on the software engineering, the article mainly elaborates the needs of users and the process of the system development, analyzes the basic functions of the higeway toll management system. According to this, the system adopts the PowerBuilder 9.0 programming language as well as the SQL server2000 database management system to accomplish the procedure design of the system and the management of database. System from the line with the simple, user-friendly, flexible, practical and safety requirements, design and develops the function modules of vehicle fees, vehicle information, statistics, information management, system maintenance and other functional modules , completing the whole process the charging and the managing of vehicles, realizing the standardization,and efficient of a highway toll management.Keywords: Highway Toll Management1引 言1.1 开发背景及研究意义高速公路作为现代化的交通运输基础设施,以其交通流量大,行车速度快,运行舒适等特点和优势,已经成为适合现代产业结构发展需求的重要运输方式。为确保高速公路高效运作,一个高效有序的收费管理系统是必不可少的。就我国目前的情况,按照收费系统中人工参与的收费程度,系统可分为以下几种形式:(1)人工收费(2)半自动收费(3)全自动收费。高速公路人工收费管理由于业务量大,人工管理较为繁重且易出错,在很大程度上影响了工作效率。本文开发的是一个半自动收费管理系统,这种方式采用人工收费、计算机管理,即人工判别车型、计算机收费,收费站计算机对收费数据进行处理、汇总,最终输出各种报表。半自动收费方式在一定程度上提高了收费管理水平,使收费工作更加完善,更加规范,使传统的人工收费朝数字化、无纸化、智能化、综合化的方向发展,从而进一步大大提高了高速公路收费质量。1.2 系统简介本系统是为改善高速公路全人工收费管理的不足而设计开发的软件系统。前端开发工具是PowerBuilder9.0,后台数据库选用的是sql server2000。系统主要包括收费和管理两部分。收费部分主要实现收费员对过往车辆的收费业务;管理部分主要功能有:信息管理、车辆查询、数据统计、系统维护等。它能及时、准确的反映出车辆收费各项工作的当前状态,并利用过去的数据统计分析,方便交通部门管理。系统总体界面友好、窗口风格统一、色调和谐、方便操作。1.3开发工具介绍1.3.1 PowerBuilder 9.0简介本系统采用PowerBuilder9.0作为开发平台,SQL Server2000数据库管理系统,面向对象可视化编程,使系统的开发工作适应目前的流行趋势。设计时采用了常用的自顶向下的瀑布式结构化设计方法1。利用PB9.0能快速地构建各类对象,特别是数据窗口这一能方便而简洁操纵数据库的最具特色的智能化控件,在短时间内快速建立起系统的原型,然后再对原型不断地根据需要进行修正和改进,直到形成用户满意的可行系统为止。1.3.2 sql server2000简介SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能。具有使用方便、可伸缩性好、与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。其最大特点是为用户提供了大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序所需的最新的出色数据库平台。Microsoft SQL Server 2000提供的分析服务显著增强了SQL Server version 7.0引入的联机分析处理(OLAP)服务组件的功能。分析服务引入了数据挖掘功能,可以用来在OLAP多维数据集和关系数据库中发现信息2。2 需求分析2.1 需求描述高速公路收费管理系统主要应满足两种类型用户的需求,这两种类型用户分别为收费员、管理员。通过对高速公路收费站工作程序的了解,初步制定本系统的需求如下: 一、各收费站各车道收费员人工判断车型,输入车型类别自动显示交费金额,同时保存交费记录。二、各收费站管理员对站内各种信息进行录入、修改、删除等。三、应提供简便快捷的查询功能,方便管理人员进行历史数据的分析、查询和比较等。管理站值班员可通过对收费管理计算机的操作,查询了解每个收费员以及各个时间的交通流量及收费情况,并可通过检索随时打印各种报表,且输出的报表要计算准确,符合有关规范;数据通过通信线路上报总管理站,并接受总管理站的信息下传到收费车道。2.2 系统流程在需求分析的基础上得出高速公路收费管理系统的系统流程图如图2.1所示,各个用户先选择自己所工作的站点,输入用户编号、用户类型和密码进行登录,身份验证后进入本系统的具体功能操作界面,否则不允许进入。本系统的具体功能包括车辆收费、信息管理、车辆查询、数据统计等,用户登录成功后即可进行相应的操作。2.3 数据字典收费数据收费序号员工编号+收费日期车牌号码车辆类型进口站名出口站名+收取金额收费序号=* 长度为20的数字串 *员工编号= * 长度为20的数字串 *收费日期=年份+月份+日期年份=* 长度为4的数字串 *月份=* 长度为2的数字串 *日期=* 长度为2的数字串 *TF开 始选择站点用户编号、密码、用户类型用户登录继续结 束F退出登录T信息管理统计数据系统维护车辆收费收费员管理员查询车辆 图2.1 系统流程图数据流图如下所示:数据输入收 费报 表条件报表收费数据基本信息条件报表车 辆查 询管理员信 息管 理收费数据数据管理数据返回数据文件收费数据收费数据收费员车辆收费保存收费数据数据返回图2.2 系统数据流图车牌号码=省简称+城市排位+号码省简称= * 长度为2的字符串 *城市排位=* 长度为1的字符串 *号码=* 长度为5的字符串 *车辆类型= * 长度为1的数字串 *进口站名=* 长度任意的字符串 *出口站名=* 长度任意的字符串 *收取金额=1数字9交费标准车辆类型收费标准+车辆描述收费标准=* 长度为10的字符串 *车辆描述=* 长度为100的字符串 *站点信息站点编号站点名称+站点地址+站点性质联系人+联系电话邮政编码+电子邮箱+开户行开户账号站点编号= * 长度为10的字符串 *站点名称= * 长度为10的字符串 *站点地址= * 长度为20的字符串 *站点性质= * 长度为10的字符串 *联系人= * 长度为10的字符串 *联系电话= * 长度为10的数字串 *邮政编码= * 长度为6的数字串 *电子邮箱= * 长度为20的字符串 *开户行= * 长度为20的字符串 *开户账号= * 长度为20的字符串 *职工信息职工编号身份证号+职工类型站点名称+姓名性别+民族政治面貌+学历+籍贯户口所在地+工作年限联系电话职工编号= * 长度为20的数字串 *身份证号= * 长度为18的数字串 *职工类型= * 长度为8的字符串 *姓名= * 长度为10的字符串*性别= * 长度为2的字符串 *民族= * 长度为10的字符串 *政治面貌= * 长度为10的字符串 *学历= * 长度为10的字符串 *籍贯= * 长度为20的字符串 *户口所在地= * 长度为20的字符串 *工作年限= * 长度为2的数字串*联系电话= * 长度为10的数字串 * 3 系统设计3.1 系统功能模块设计根据数据流图,设计系统功能模块如图3.1所示。图3.1 高速公路收费管理系统的功能模块图高速公路收费管理系统的收费员管理员车辆收费信息管理车辆查询数据统计系统维护一、车辆收费车辆收费模块的设计是各车道收费员根据来车种类,判断来车车型并键入,收取相应费用,并保存所有收费记录且汇入总库,由各站收费员执行此操作。二、信息管理信息管理模块的设计是完成对站内各种原始信息的日常处理,主要包括:站点信息设置、员工信息设置、班次调整和收费标准的设置几个部分。三、车辆查询车辆查询模块的设计是对所有交费记录进行各种不同条件的查询,包括当值查询、日期查询,并显示不同条件下所有车辆记录。其中日期查询是指知道某日或某时段时,具体实现按员工编号查询、按通行车辆类型查询、按车辆入口站名查询;当值查询是指在知道某员工当值时,具体实现通行车辆类型查询、车辆入口站名查询。四、数据统计数据统计模块的设计包括车流量报表和收费额两大类数据的统计,方便管理人员进行数据的比较。五、系统维护系统维护模块的设计包括数据备份、数据还原、操作日志、修改密码。3.2 数据库设计3.2.1 概念模型的设计根据数据流图,设计概念模型(E-R图)如图3.2所示。工作收费职 工mm收费站点n收费标准1 图3.2 E-R图图中各实体的联系和属性如下所示:收费站点(站点名称,站点编号,站点性质,站点地址,联系电话,联系人,电子邮箱,邮政编码,开户行,开户账号)职工(职工编号,身份证号,密码,职工类型,收费站点,姓名,民族,性别,政治面貌,学历,籍贯,户口所在地,工作年限,联系电话)收费(交费序号,车牌号码,交费日期,职工编号,车辆类型,入口站名,出口站名,交费金额)收费标准(车辆类型,收费标准,车辆描述)3.2.2 数据库逻辑结构的设计概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计,也就是要将概念上的结构转化为SQL数据库管理系统支持的实际数据模型。根据数据库的需求分析和概念结构设计,设计数据库表格的组成、字段的属性、表格之间的联系等等。按照概念模型向逻辑结构转换的相关规则并结合规范化理论设计数据库逻辑结构如表3.1、表3.2、表3.3、表3.4、表3.5所示。表 3.1 收费标准字段名称字段类型字段长度备注车辆类型char10主键交费标准char10不为空车辆描述char100不为空表3.2 站点信息字段名称字段类型字段长度备注站点编号char10主键站点名称char20不为空站点地址char20不为空站点性质char10不为空联系人char10不为空联系电话char10不为空邮政编码char10不为空电子邮箱char20不为空开户行char20不为空开户账号char20不为空表3.3 收费表字段名称字段类型字段长度备注收费序号char20主键收费日期datetime8不为空职工编号char20不为空车辆类型char10不为空车牌号码char8不为空入口站名char20不为空出口站名char20不为空收取金额char10不为空表3.4职工信息字段名称字段类型字段长度备注职工编号char20主键身份证号char18不为空密码char10不为空职工类型char10不为空收费站点char10不为空姓名char10不为空民族char4不为空性别char2不为空政治面貌char10不为空学历char10不为空籍贯char20不为空户口所在地char20不为空工作年限char2不为空联系电话char10不为空表3.5 操作日志表 字段名称字段类型字段长度备注用户编号char10主键执行操作char20不为空执行时间datetime9不为空3.3 系统详细设计3.3.1车辆收费模块的设计车辆收费模块由各车道收费员直接进入系统显示终端对过往车辆进行收费并将收费记录汇入管理站。车辆分为免费车辆和收费车辆两大类,免费车辆(军车、紧急车、国家规定其他免费车)直接放行,收费车辆根据收费标准执行(本系统按照忻州公路收费标准执行)。收费过程流程图如3.3图所示。结 束TF显示界面开 始退出返 回T驾驶证?TF军车、紧急、免费车收 费F免费? 选择车型 图 3.3 收费流程图 3.3.2信息管理模块的设计信息管理模块由四个功能模块组成,其各个模块实现的功能如下:1、站点设置:站点管理员设置各站点基本信息,包括站点的录入、修改等,并把修改后信息保存汇入数据库。2、员工设置:站点管理员设置站内员工(管理员和收费员)的个人信息,且可随时更改各个员工信息并汇入数据库,可根据员工编号进行查询,同时自动检索出各个员工的基本信息。3、交费标准设置:站点管理员设置所有过往车辆类型交费标准,站点所有收费按此标准执行,可以随时更改标准。4、当班调整:站点管理员设置各个员工的工作时间,任何时间都可做适当更换。3.3.3车辆查询模块的设计管理员可选择不同查询条件,若满足条件则可进行相应的查询且显示查询内容。通过此模块可对各车道传输的每个通过车辆的原始数据进行查询分析。根据所显示记录管理员可准确快速的了解本站点车辆通行各种情况,可以使决策机构快速全面地了解全站收费运行情况,从而大大减轻管理人员的繁重劳动,提高管理水平。查询过程流程图如3.4图所示。F结 束开 始退出选择条件满足条件查 询返 回TTF 图3.4 车辆查询过程流程图3.3.4数据统计模块的设计根据收费系统的功能和管理的要求,收费站收费管理计算机可输出收费情况报表、交通流量报表两大类报表,选择条件可输出不同站点的日报表、月报表、年报表,通过检索随时打印各种报表。报表采用图形和表格显示各类统计数据,表现直观,便于分析比较。3.3.5系统维护模块的设计此模块由数据备份、数据还原、操作日志、密码设置四部分组成,其中数据备份、数据还原部分的设置用于避免系统使用不当等原因造成数据损坏,对数据进行备份并保存,在特殊情况下将备份数据进行恢复,操作日志的设置主要记录了各种用户的操作时间,方便日后查询,密码设置是为了维护用户安全。 4系统实现4.1功能实现4.1系统登录系统启动后,按照图4.1所示进行用户登录。系统将自动根据输入的站点名、用户编号、用户类型密码进入主界面。系统中设置了两种权限(管理员、收费员)分级管理,在登录时得到判断,系统依据用户类型进入不同界面。 图4.14.2管理界面管理员进入以菜单形式显示的管理界面,界面设计如图4.2所示。图4.24.3车辆收费收费员进入车辆收费界面,如图4.3所示。 图4.3/窗口w_jf的“收费”按钮的clicked()事件,初始化控件,自动生成交费序号dw_1.settransobject(sqlca);string jfxh,sqljfxh=""sql="select jfxh,jfrq,sfybh,cphm,cllx,rkzm,jfje from t_sf where jfxh='"+jfxh+"'"dw_1.setsqlselect(sql)dw_1.retrieve()em_2.text=string(today()long ypbh,yph2string ypbh1ypbh=integer(num1)+1ypbh1=string(ypbh)em_1.text=ypbh1ddlb_1.enabled=trueddlb_2.enabled=truesle_1.enabled=truesle_2.enabled=truesle_3.enabled=trueem_1.enabled=falseem_2.enabled=false/窗口w_jf的“放行”按钮的clicked()事件,保存车辆交费信息string jfxh,jfrq,sfybh,cphm,cllx,rkzm,jfjejfxh=em_1.textrkzm=ddlb_1.textcllx=ddlb_2.textjfrq=em_2.textsfybh=sle_1.textcphm=sle_2.textjfje=sle_3.text/保存数据insert into t_sf(jfxh,jfrq,sfybh,cphm,cllx,rkzm,jfje)values(:jfxh,:jfrq,:sfybh,:cphm,:cllx,:rkzm,:jfje);dw_1.settransobject(sqlca)string sql, rjfxhrjfxh=trim(em_1.text)sql="select jfxh,jfrq,sfybh,cphm,cllx,rkzm,jfje from t_sf where jfxh='"+jfxh+"'"dw_1.setsqlselect(sql)dw_1.retrieve()4.4员工查询窗口的open事件:dw_1.settransobject(sqlca)dw_1.retrieve()rb_1.checked=falserb_2.checked=falserb_3.checked=falserb_5.checked=falserb_6.checked=falseddlb_1.enabled=falseddlb_2.enabled=falsesle_1.enabled=falsesle_2.enabled=falsesle_4.enabled=false“查询”按钮的click事件if rb_1.checked=false and rb_2.checked=false and rb_3.checked=false and rb_5.checked=false and rb_6.checked=false thenmessagebox("提示信息","您还没有选择查询条件!")end ifif rb_1.checked=true then string ygbh ygbh="ygbh='"+sle_1.text+"'" dw_1.settransobject(sqlca)dw_1.settransobject(sqlca) dw_1.retrieve() dw_1.setfilter(ygbh) dw_1.filter() if dw_1.rowcount()<1 then messagebox("提示信息","没有满足条件的记录!") end if sle_record.text=string(dw_1.rowcount()end ifif rb_2.checked=true then string xb xb="xb='"+ddlb_2.text+"'" dw_1.settransobject(sqlca) dw_1.retrieve() dw_1.setfilter(xb) dw_1.filter() if dw_1.rowcount()<1 then messagebox("提示信息","没有满足条件的记录!") end if sle_record.text=string(dw_1.rowcount()end ifif rb_3.checked=true then string xm xm="xm='"+sle_1.text+"'" dw_1.settransobject(sqlca) dw_1.retrieve()and rb_5.checked=false and rb_6.checked=false then messagebox("提示信息","您还没有选择查询条件!")end ifif rb_6.checked=true then string sfzh sfzh="sfzh='"+sle_4.text+"'" dw_1.settransobject(sqlca) dw_1.retrieve() dw_1.setfilter(sfzh) dw_1.filter() if dw_1.rowcount()<1 then messagebox("提示信息","没有满足条件的记录!") end ifsle_record.text=string(dw_1.rowcount()end if5 系统测试5.1测试环境操作系统 windows XP数据库管理系统 sql server2000开发平台 powerbuiler9.0 个人版5.2测试步骤向数据库中输入一些模拟数据,然后运行系统,观察系统各个模块的运行情况。5.3测试结果经过测试系统基本上满足了用户需求,各个功能模块运行基本正常。6 结束语通过这几个月的毕业设计,我学到很多以前没有学到的powerbuilder开发技术,基本掌握了数据库技术和可视化程序设计技术,增加了系统开发方面的经验,在软件工程学上更是取得了很大的进步。系统基本具有了数据管理容易、易于日后程序更新、操作方便等优点,其功能在很大程度上满足了用户的需求。由于本人是初次开发软件,在知识、经验方面都存在不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足,具体表现在:1、系统的安全性设计不够完善,界面设计优化不是很好;2、对于车辆查询统计方面的设置还不是很全面;3、没有完成数据的上传。这些方面有待以后继续完善,也请各位老师和同学提出宝贵意见。致 谢在论文即将完成之际,回顾紧张但又充实的开发过程,我在此向帮助过我的老师和同学们致以最真诚的感谢。在本次毕业设计中,我从指导老师郑志荣老师那里学到了很多东西。她耐心的辅导,严谨的治学精神,深厚的理论水平等都使我受益匪浅。在设计阶段,他花费自己的宝贵时间帮我解决我遇到的疑难问题,并且结合自己的经验,给我提出了许多宝贵意见。可以说没有他的指导,我就不能较好的完成课题设计的任务。 秦艳艳2009年 06 月05日参考文献1 刘振宇.PowerBuilder作为数据库应用开发工具的优势J.计算机系统应用,1999,(2):45-47.2 齐治昌,谭庆平,宁洪软件工程M北京:高等教育出版社,2004.3 (美)Patrick ONeil数据库原理、编程与应用M北京:机械工业出版社,20024 王珊,萨师煊数据库系统概论M北京:高等教育出版社,20065 徐松林,王永皎PowerBuilder数据库应用开发教程(第二版)M北京:清华大出版社,20075 王晟马里杰SQL Server数据库开发经典案例解析M北京:清华大学出版社,20067 林永. Visual Basic 6.0 用户编程手册M北京:人民邮电出版社,19998 周钢,赵永军,方小伟.Powerbuilder 项目开发实践M.北京:中国铁道出版社,2003.6.9 费雅洁,王健PowerBuilder程序设计M北京:高等教育出版社,200410何兴高,张风荔,秦志光.高速公路车道收费控制系统的设计与实现J.电子科技大学学报,2000,09(1):83-86.11 Jim Gray,AndeasTransaction Processing Concepts and TechniquesMMorganKaufmann Publishers,1994