还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
城市客运管理系统的设计与实现摘要城市公共交通是城市经济生活的命脉,是实现城市现代化的主要标志,是国家经济发展的重要基础随着我国国民经济的高速发展以及城镇化、机动化发展的加快,交通工具种类及数量越来越多然而交通问题也日趋严重,主要表现在交通不便、交通秩序混乱、交通环境污染交通问题已越来越受到人们的重视,如今交通管理的水平和质量与我们的日常生活紧密相连,并且直接影响着发展城市的发展和面貌优先发展公共交通,鼓励推广公共交通是一个好的解决方法随着社会的进步、计算机技术的飞速发展,利用计算机实现客运交通的管理势在必行为了充分发挥计算机技术和网络技术的优越性、开发智能管理系统已成为城市交通发展的必然选择必须依靠现代科技,对传统的公交运营模式进行改造,将智能交通技术运用于城市公共交通,才能从根本上解决上述问题关键词:城市公共交通;管理系统;计算机技术DESIGNANDREALIZATIONOFURBANPASSENGERTRANSPORTMANAGEMENTSYSTEMAbstractUrbanpublictrafficisthelifebloodoftheeconomiclifeofthecitythemainsymboltorealizetheurbanmodernizationtheimportantbasisforthedevelopmentofthenationaleconomy.Withtherapiddevelopmentofthenationaleconomyandtheaccelerationofthedevelopmentofmotorizationandurbanizationthetypeandquantityoftransportisincreasing.Howeverthetrafficproblemisbecomingmoreseriouseverydaymainlyintrafficinconveniencechaotictrafficandtrafficpollution.Trafficproblemshavebeenattentionfrommoreandmorepeopleandnowthelevelandqualityoftrafficmanagementarecloselylinkedwithourdailylifeandadirectimpactonthedevelopmentofurbanandtheappearanceofthecity.Prioritytothedevelopmentofpublictransportandencouragethepromotionofpublictransportisagoodsolution.Withsocialprogressandtherapiddevelopmentofcomputertechnologytheuseofcomputer-implementedpassengertrafficmanagementisimperative.Inordertogivefullplaytotheadvantagesofcomputertechnologyandnetworktechnologythedevelopmentofintelligentandfriendlymanagementsystemhasbecomeaninevitablechoiceforurbantransportdevelopment.Mustrelyonmoderntechnologytoreformtraditionaloperationmodeofpublictransportanduseintelligenttransporttechnologyinurbanpublictransportinordertofundamentallysolvetheaboveproblem.Keyword:Urbanpublictransport;managementsystem;computertechnology目录TOC\o1-3\h\z\u第1章序言
11.1开发背景及目的
11.2开发相关简介
11.
2.1ASP.NET
11.
2.2C#简介
21.
2.3MicrosoftVisualStudio简介
21.
2.4SQLServer简介
31.
2.5IIS简介
31.
2.5相关英语缩写介绍3第2章系统分析
42.1问题定义
42.
1.1开展工程的原因
42.
1.2该工程基本目标
42.2可行性分析
42.
2.1可行性研究所采用的方法和步骤
42.
2.2对现有产品的分析
42.
2.3经济可行性
42.
2.4技术可行性
42.3需求分析
52.
3.1系统功能需求
52.
3.2系统非功能需求6第3章概要设计
73.1限制和约束
73.
1.1技术条件
73.
1.2开发环境
73.
1.3时间限制
73.2系统模块设计
73.
2.1总体模块
73.
2.2公交业务模块
73.
2.3客运业务模块
83.
2.4用户相关模块
83.3用例图
93.4E-R图
103.
4.1实体模型
103.5数据库设计13第4章详细设计
164.1系统流程图
164.2数据库相关操作
164.
2.1相关定义
164.
2.2数据库连接语句
174.
2.3数据库查询
174.
2.4数据库插入、更新、删除
174.
2.5主要函数
174.3系统部分功能的实现24结论35致谢37参考文献38前言随着我国城市的建设和发展,交通发展越来越发达,城市客运直接或间接的影响着居民的日常生活与城市的经济发展,它现在已成为城市生活和经济活动的重要组成部分城市客运交通以其方便、快捷、移动成本低而逐步发展成为城市交通的主体,但是随着客运系统信息的复杂化,人们想要从传统的管理方式中得到比较准确的客运信息比较困难,这样会给一大部分市民的出行带来不便随着近几年的信息技术的发展,越来越多的领域引入了信息技术传统的客运管理方式已渐渐的被取代本人在选题时通过网络查找了相关信息,了解了我国客运交通管理的现状通过访问现有的网上购票系统,了解了城市客运管理系统的大致功能想要在这次毕业设计之际,依靠自身对客运交通管理的理解以及自身的逻辑思维与编程能力,编写一个相对简单的简化的客运管理系统来加深本人对客运管理的了解以及加强自身的编程水平本系统将在最新发布的windows
8.1平台上通过VisualStudio2012编写系统将采用B/S结构,在IIS上发布网站,允许用户通过浏览器访问,实现基本的客运交通管理功能考虑到本系统只是实现基本的功能,数据容量不会特别大,所以使用SQLServer2012进行数据库管理工作第1章序言
1.1开发背景及目的随着信息技术的发展、国内互联网的飞速普及,基于互联网的应用开发正在飞速发展,各种网络服务因可靠、安全、便捷等因素越来越受到群众的亲睐许多国有私营企业也已相继引进、采用各种应用软件来作为日常管理工作的辅助工具客运公司也已开发引入各种软件系统,开通了网上查询业务、网上购票业务等服务这些服务方便了人民群众,使得交通出行不再单一繁琐软件系统开发既是脑力劳动又是体力劳动,开发过程中或多或少会出现一些失误导致软件系统存在漏洞或者不合理的地方并且软件系统开发者不是客运管理人员,即使完全按照要求制作系统,仍有可能存在或多或少开发人员发现不了的逻辑问题这些不合理不完善的地方,只有专业人员以及通过基数巨大的使用者实际使用后才有可能发现因此开发出一个完美的系统是很困难的为了体验一下不同于学校教学的较为正式的、完整的系统开发,通过正式的开发流程,经历并体验一下软件开发的困难与辛苦,同时也为将来从事软件开发行业积累经验,本人选择了当今热门系统之一的客运管理系统来作为这次的毕业设计
1.2开发相关简介
1.
2.1ASP.NETASP.NET是一个应用于服务器端的Web应用程序框架,专门为了在Web开发中制作动态网页它是由微软为了使程序员可以构建动态网站、Web应用程序和Web服务而开发的ASP.NET首次于2002年1月发布.NETFramework的
1.0版本,是微软的ActiveServerPages(ASP)技术的后继者ASP.NET是建立在公共语言运行库(CLR)上的,它允许程序员使用任意一个支持.NET语言编写ASP.NET代码ASP.NETSOAP扩展框架允许ASP.NET组件来处理SOAP消息ASP.NET已经能够将HTML知识与HTTP通信的机制、浏览器与服务器之间数据的传输进行抽象化,根据GUI模型开发应用在页面设计方面,不仅和过去的ASP一样能够直接书写HTML,还可以通过使用VisualStudio等开发环境开发基于GUI的页面设计并且根据使用了一种利用了HTTPPOST机制的,名叫PostBack的机制,实现了事件驱动型编程方式尽管内部机制被抽象化了,但是实际上和过去的HTML、HTTP和JavaScript一样,拥有和通常的Web应用一样能够在Web浏览器表示的优点不过相对的,因为和过去一样在开发时需要考虑Web浏览器和HTTP的制约,ASP.NET决不是一把能够让完全不懂Web应用开发的程序员开发出Web应用的魔法棒此外,在执行时生成HTML的同时,会与前回执行时生成的东西进行比较仅仅在有变更的情况下,才进行编译,生成缓存因此,与ASP相比处理速度提高了ASP可以从SSI调用,但ASP.NET无法被调用
1.
2.2C#简介C#是由微软推出的一种多范型编程语言它是和微软的软件框架.NETFramework一起根据EcmaInternational和国际标准化组织(ISO)标准化后开发出来的它是基于.NET框架的、面向对象的高级编程语言C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架类库作为基础,拥有类似VisualBasic的快速开发能力因为基本格式和C语言风格类似,初看语法和Sun公司的Java惊人的相似,它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程实际的语法是基于Delphi,与Java有着明显的不同,C#直接集成了COM(组件对象模型)和拥有C语言风格的C++Builder自己的扩展语法的内容非常的相似另外有很多机能(如property、delegate),和Delphi的语法一样或者是仅仅是将名称变更了的而已C#拥有委托、属性、索引、自定义属性、指针运算、结构体、多维数组等机能另外和Java一样实现了如不依赖大量的库文件和处理器架构的运行形式、垃圾回收和根据JIT编译实行的高速化它是放在.NET构想中心的开发语言,也被用来描述XMLWeb服务和ASP.NET虽然别的.NET语言也能够描述,在生产效率和机能上C#是最优秀的在微软的开发环境中,MicrosoftVisualC#与C#相对应,因为CLS的关系,能够与其他符合CLS的语言(如VisualBasic.NET、VisualC++C++/CLI等)相互联结在一起使用能够继承其他语言的类或也能被其他语言继承C#是一种简单的、稳定的、安全的面向对象的编程语言在去掉了一些C与C++的复杂特性的同时综合了VB简单的可视化操作和C++的高运行效率,成为.NET开发的首选语言
1.
2.3MicrosoftVisualStudio简介MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具套件系列产品VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、集成开发环境(IDE)、代码管理控制工具等等所写的目标代码适用于微软支持的所有平台,包括MicrosoftWindows、WindowsPhone、WindowsCE、.NETFramework、.NETCompactFramework和MicrosoftSilverlight而VisualStudio.NET是用于快速生成企业级ASP.NETWeb应用程序和高性能桌面应用程序的工具VisualStudio包含基于组件的开发工具(如VisualC#、VisualJ#、VisualBasic和VisualC++),以及许多用于简化基于小组的解决方案的设计、开发和部署的其他技术
1.
2.4SQLServer简介MicrosoftSQLServer是由美国微软公司所推出的关系数据库管理系统(RDBMS)简称SQLServer或者是MSSQL主要的查询语言是采用美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言ANSISQL和微软公司对它进行了部分扩充而成为作业用SQL语言Transact-SQL如今广泛的应用于从内置的小规模系统到面向企业级服务器的高性能的系统中与MicrosoftWindows兼容性高,可以通过ADO与ADO.NET来构建一个最合适的后端数据库
1.
2.5IIS简介InternetInformationServices(IIS,互联网信息服务),是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务IIS是一个WorldWideWebserverGopherserver和FTPserver全部包容在里面IIS意味着你能发布网页,并且有ASP(ActiveServerPages)、JAVA、VBscript产生页面,有着一些扩展功能IIS支持一些有趣的东西,像有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEXSERVER)、有多媒体功能的(NETSHOW)其次,IIS是随WindowsNTServer
4.0一起提供的文件和应用程序服务器,是在WindowsNTServer上建立Internet服务器的基本组件它与WindowsNTServer完全集成,允许使用WindowsNTServer内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事
1.
2.5相关英语缩写介绍
(1)Asp ActiveServerPages;它是由微软开发的一种通过如HTML的标记语言以及如VBScript或JavaScript的脚本语言组合而成的能够动态制作网页的技术使用与其相同技术的还有JavaServlet,JSP和PHPAsp是一个位于Windows服务器端的脚本运行环境,因为能够比较容易地进行页面间的数据交换,如今或用在如网购等电子商务方面
(2)ADO ActiveXDataObjectActiveX;它是介于编程语言与OLEDB之间的用于访问数据源的一组COM对象开发者可以通过ADO编写代码而无需知道数据库的执行情况
(3)SQL StructuredQueryLanguage;它是在关系型数据库管理系统(RDBMS)中进行数据库定义和操作的数据库语言它一定程度上是基于关系数据库的关系模型以及关系代数和关系演算第2章系统分析
2.1问题定义
2.
1.1开展工程的原因开展该工程的原因如下
(1)体验并经历正式的工程项目的流程,为自己积累经验
(2)网上存在的例子较少,编写具有一定挑战性
(3)网络上已有成熟的系统,将之与自己编写的程序对比,衡量自己的编程水平
(4)将此工程作为毕业设计
2.
1.2该工程基本目标通过开展该工程,提高自身的面向对象编程思想及水平,加强本身的工程化思想,锻炼逻辑思维能力使用一门没有学过的语言,将之作为此工程的语言培养自己在陌生语言陌生环境下的适应能力、新事物接受以及学习能力为不久之后的实际工作积累经验,使得今后能快速融入到新的环境、新的工作中
2.2可行性分析
2.
2.1可行性研究所采用的方法和步骤通过网络调查分析客运管理运行的流程结构,确定主体结构,利用现阶段自身的逻辑思维能力及编程能力,以最简单、最容易的方法边开发系统边做测试,实现一个具有基本功能的初级系统
2.
2.2对现有产品的分析目前网上存在的客运管理系统主要都是铁道部、各车站的使用的系统,并且没有源代码网上几乎找不到多少有关客运管理的系统,可以说明该系统市场是被独占了如今编写该系统的人较少,编写具有一定的挑战性
2.
2.3经济可行性该系统为个人开发开发费用为0,无需系统安装维护、人员培训等费用
2.
2.4技术可行性开发使用迭代模型,参考关于JS、CSS以及C#的技术书籍,编写类库开发系统为Windows8系统,开发软件使用VS2012,数据库工具使用SQLServer2012网站发布使用IIS采用B/S结构,使用C#语言进行编写
2.3需求分析
2.
3.1系统功能需求
1.公交相关与公交业务相关的主要功能如下所示
(1)公交列表:用户可以查看已存在的所有公交的简单信息信息包括“公交名、站台数、总路程、说明”其中“公交名”即公交号,“站台数”为该公交所停靠的站台数,“总路程”为该公交所行驶的总路程,“说明”为该公交起始站与终点站的简述
(2)公交详细信息用户可以查看公交的详细信息信息包括“公交名、总站台数、起始站”“终点站、总路程、高峰时发车间隔时间、平时发车间隔时间、公交行驶路线”
(3)线路查询用户可以查询特定出发地与目的地的公交换乘路线该线路查询可以查询直达与一次换乘的路线
(4)站台列表用户可以查看所有的站台以及该站台停靠的公交数
(5)查看停靠公交在站台列表中,用户可以查看特定站台的公交列表及简单信息在该列表中,用户也能查看某一公交的详细信息
(6)发车班次用户可以查看特定公交的发车时刻表
(7)添加公交管理员可以添加新的公交车通过输入公交名、总路线、高峰时发车间隔时间、平时发车间隔时间、首班车发车时间、末班车发车时间以及详细的公交行驶路线,自动生成该公交车的发车时刻表
(8)公交修改管理员可以修改已存在的公交信息可总路线、高峰时发车间隔时间、平时发车间隔时间、首班车发车时间、末班车发车时间以及详细的公交行驶路线自动生成该公交车的新的发车时刻表
2.客运相关与客运业务相关的功能如下所示
(1)购票用户可以查看所有未发车的客运班次信息可以通过查找始末站或是发车日期查找相关客运班次进行网上购票并将订单信息保存
(2)班次查询查看所有现在以及过去的客运班次信息
(3)统计查看今年客运相关统计信息
(4)添加班车管理员可以添加新的班车信息
(5)添加班次管理员可以选择已存在的班车信息,设置发车时间生成新的班次
3.用户相关与用户相关的功能如下所示
(1)用户信息用户可以查看自己的信息,并且可以修改新的密码以及电话号码
(2)订单查询用户可以查看自己所有的订单信息管理员则可以查看所有用户的订单信息
(3)余额充值用户可以进行充值,并且查看充值记录
2.
3.2系统非功能需求
1.系统界面需求界面应清晰简洁考虑到如今显示器分辨率各不相同,虽然高分辨率是当今的潮流,但仍有不少用户使用着低分辨率的显示器,所以将系统界面大小统一设置为1024×768,方便各类显示器设备显示系统界面布局不宜太花哨,要让用户一眼就能了解系统的功能
2.系统性能需求系统相应时间的长短是用户经常抱怨的问题为了提高系统响应速度,提高用户体验,系统页面上不宜存在大量的控件元素,服务端数据处理等不宜太复杂系统的可维护指数应较高,类耦合较低,易于维护圈复杂度不宜太高,会影响系统的响应时间同时应具有一定的继承深度,防止用户可以通过网页源代码等查看到系统操作信息每次操作,系统响应时间不宜超过3秒
3.系统灵活性需求系统应有出错信息处理,在用户或是管理员输入了不正确、不符合规定的数据时,系统应将显示相应的提示,并中止当前处理,以减少系统崩溃的可能性提示信息应符合以下规范
(1)提示信息应有视觉上的提示,用比较显眼的颜色表示出错信息
(2)提示信息应该使用容易理解的语句进行问题描述
(3)提示信息不能带有指责色彩
4.运行环境需求
(1)运行设备环境操作系统win7/win8/win
8.1CPU
1.8GHz以上32位或64位处理器内存2GB(基于32位)或4GB(基于64位)硬盘空间100MB以上可用空间作为数据存储数据库工具SQLserver2008以上版本
(2)访问设备环境操作系统win7/win8/win
8.1CPU
1.5GHz以上32位或64位处理器内存2GB(基于32位)或4GB(基于64位)浏览器InternetExplorer7以上版本网络下行最低带宽512K推荐带宽1M以上第3章概要设计
3.1限制和约束
3.
1.1技术条件能较熟练使用VisualStudio,精通SQL语句的使用有一定的C语言和VB基础,了解并能使用C#进行代码编写能熟练编写HTML,熟悉CSS,有一定JS脚本的编写能力
3.
1.2开发环境系统环境为Windows
8.1编程环境为VisualStudio2012数据库工具使用SQLServer
20123.
1.3时间限制因正在实习的原因,除周末编写时间为
1.5小时/天,周末10小时/天工程时间从2014年3月1日起至5月20日预计总工时为300小时,平均工时
3.7小时/天
3.2系统模块设计
3.
2.1总体模块系统有三大模块,分别是公交业务模块、客运业务模块和用户模块图3-1 总体模块图
3.
2.2公交业务模块公交业务模块的子模块有公交列表模块、线路查询模块、站台列表模块和发车班次模块其中实现的功能有添加公交信息功能、修改公交信息功能、查询公交信息功能、查询公交线路功能、站台列表显示功能、查询站台经过的公交功能、查询公交发车班次功能图3-2 公交业务模块图
3.
2.3客运业务模块客运业务模块的子模块有购票模块、班次查询模块、统计模块其中实现的功能有用户购票功能、班车添加功能、班次添加功能、班次查询功能、统计功能图3-3 客运业务模块图
3.
2.4用户相关模块用户相关模块的子模块有用户信息模块、订单查询模块、余额充值模块实现的功能有用户信息查询功能、用户信息修改功能、订单查询功能、余额充值功能、充值记录查询功能图3-4 用户相关模块图
3.3用例图图3-5 用户用例图图3-6 管理员用例图
3.4E-R图
3.
4.1实体模型
1.用户实体模型用户实体的属性包括用户名、密码、权限、姓名、身份证号码、电话号码、余额用户实体的实体模型图如下图所示图3-7 用户实体模型图
2.公交发车班次实体模型公交发车班次实体的属性包括班次顺序、公交编号、发车时间公交发车班次实体的实体模型图如下图所示:图3-8 公交发车班次实体模型图
3.公交实体模型公交实体的属性包括公交编号、公交经过的站台数、起始站台、终点站台、总距离、高峰发车间隔时间、平峰发车间隔时间、首班车发车时间、末班车发车时间、描述公交实体的实体模型图如下图所示图3-9 公交实体模型图
4.订单实体模型订单实体的属性包括:订单号、用户名、客运班车编号、座位、座位号、购票人姓名、购票人身份证号码、购票人手机号码、订单时间订单实体的实体模型图如下图所示:图3-10 订单实体模型图
5.公交站台实体模型公交站台实体的属性包括站台编号、站台名称公交站台实体的实体模型图如下图所示图3-11 公交站台实体模型图
6.充值余额记录实体模型充值余额记录实体的属性包括用户名、充值记录、充值日期充值余额记录实体的实体模型图如下图所示图3-12 充值余额记录实体模型图
7.公交路线实体模型公交线路实体的属性包括公交编号、当前站台、下站站台公交路线实体的实体模型图如下图所示图3-13 公交线路实体模型图
8.客运班次实体模型客运班次实体的属性包括客运班车编号、出发地、目的地、发车日期、发车时间、到达日期、到达时间、一等座位数、二等座位数、一等座位价格、二等座位价格、班次发车时间客运班次实体的实体模型图如下图所示图3-14 客运班次实体模型图
9.公交站点实体模型公交站点实体的属性包括站点编号、站点名称公交站点实体的实体模型图如下图所示:图3-15 客运站点实体模型图
10.客运班车实体模型客运班车实体的属性包括客运班车编号、出发地、目的地、一等座位数、二等座位数、一等座位价格、二等座位价格客运班车实体的实体关系图如下图所示图3-16 客运班车实体模型图
3.5数据库设计表3-1 用户信息表account字段名称数据类型是否为主键是否允许为空说明userNamenvarchar30是否用户名userPassnvarchar30否否密码levelint否否权限Namenvarchar5否是姓名IDnvarchar18否是身份证号Telephonenvarchar11否是手机号码balancedecimal61否是账户余额表3-2 客运班车信息表train字段名称数据类型是否为主键是否允许为空说明ShiftNonvarchar10是否客运班车编号StationFromint否是出发地StationToint否是目的地seat1int否是一等座位数seat2int否是二等座位数price1decimal41否是一等座位价格price2decimal41否是二等座位价格表3-3 公交信息表Bus字段名称数据类型是否为主键是否允许为空说明BusNoint是否公交编号StopCountint否是经过站台数StartStopnvarchar15否是起始站台编号EndStopnvarchar15否是终了站台编号Distancenvarchar10否是距离FrequencyHint否是高峰时发车间隔时间FrequencyLint否是平峰时发车间隔时间FirstTimechar5否是首班车发车时间LastTimechar5否是末班车发车时间Discriptionnvarchar30否是描述表3-4 公交发车班次表Frequency字段名称数据类型是否为主键是否允许为空说明BusNoint是否公交编号OrderNoint是否班次顺序Timesdatetime否是发车时间表3-5 订单信息表OrderSheet字段名称数据类型是否为主键是否允许为空说明OrderNonvarchar50是否订单号userNamenvarchar20否是用户名ShiftNonvarchar10否是客运班车编号Seatnvarchar15否是座位Noint否是座位号Namenvarchar10否是购票人姓名IDnvarchar18否是购票人身份证号Telephonenvarchar11否是购票人手机号码OrderDatenvarchar20否是订单时间表3-6 用户充值余额记录表record字段名称数据类型是否为主键是否允许为空说明userNamenvarchar20否否用户名moneydecimal61否否充值金额ChargeTimedatetime是否充值日期表3-7 公交路线表route字段名称数据类型是否为主键是否允许为空说明BusNoint是否公交编号nowStopint是否当前站台nextStopint否否下站站台表3-8 客运班次信息表Shift字段名称数据类型是否为主键是否允许为空说明ShiftNonvarchar10是否客运班车编号StationFromint否是出发地StationToint否是目的地DateFromdatetime是否发车日期TimeFromdatetime否是发车时间DateTodatetime否是到达日期TimeTodatetime否是到达时间seat1int否是一等座位数seat2int否是二等座位数price1decimal41否是一等座位价格price2decimal41否是二等座位价格lanchTimedatetime否是班次发车时间表3-9 公交站台信息表station字段名称数据类型是否为主键是否允许为空说明StationNoint是否站台编号StationNamenvarchar20否是站台名称表3-10 客运站点信息表station1字段名称数据类型是否为主键是否允许为空说明StationNoint是否站点编号StationNamenvarchar20否是站点名称第4章详细设计
4.1系统流程图图4-1 程序系统流程图
4.2数据库相关操作
4.
2.1相关定义
1.引入的命名空间usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;
2.数据库定义
(1)定义新的数据库连接SqlConnectioncon=newSqlConnection;
(2)定义新的数据库命令SqlCommandcmd=newSqlCommand;
(3)定义新的数据集DataSetds1=newDataSet;
(4)定义新的数据接收器SqlDataAdapterda=newSqlDataAdapter;
4.
2.2数据库连接语句con.ConnectionString=DataSource=.;InitialCatalog=Transport;PersistSecurityInfo=True;UserId=sa;Password=123456;其中“DataSource=.”代表数据库服务器名称为“.”,使用“.”的原因是无法保证每台运行该系统的计算机的名称都相同,“.”或“localhost”代表本地服务器,可以有效地预防了运行该系统的服务器名称不统一的问题而数据库连接时的用户名为sa,密码为123456连接的数据库名为Transport
4.
2.3数据库查询建立新的数据库连接,对形参sqlstr传入的sql文进行检索操作并将检索结果放入数据集关闭数据库连接并返回数据集其中部分代码如下publicDataSetSearchStringsqlstr{cmd.CommandType=CommandType.Text;cmd.CommandText=sqlstr;da.SelectCommand=cmd;da.Fillds1;returnds1;}
4.
2.4数据库插入、更新、删除建立新的数据库连接,对形参sqlstr传入的sql文进行插入、更新或者删除操作后关闭数据库连接其中部分代码如下publicvoidExecuteStringsqlstr{cmd.CommandType=CommandType.Text;cmd.CommandText=sqlstr;cmd.ExecuteNonQuery;}
4.
2.5主要函数
1.查询公交编号searchBusNo根据形参BusNo传入的公交编号,调用Database类的Search函数查找公交信息,并返回数据集,函数部分关键代码如下publicDataSetsearchBusNoStringBusNo{str=select*fromBuswhereBusNo=+BusNo+;;ds=db.Searchstr;returnds;}
2.插入公交信息saveBus根据形参传入的公交编号、站台数、起始站编号、终点站编号、距离、高峰发车间隔时间、平峰发车间隔时间、首班车发车时间、末班车发车间隔时间、起始站名、终点站名,调用Database类的Execute函数执行插入操作插入新的公交信息函数部分关键代码如下publicvoidsaveBusStringBusNointcountStringdltSelectedValueStringhiddenValue2StringDistanceStringFrequencyHStringFrequencyLStringFirstTimeStringLastTimeStringdltSelectedItemStringhiddenValue1{str=insertintoBusvalues+BusNo++count++dltSelectedValue++hiddenValue2++Distance++FrequencyH++FrequencyL++FirstTime++LastTime+N由首站 +dltSelectedItem+ 发往末站 +hiddenValue1+;db.Executestr;}
3.插入线路信息saveRoute根据形参传入的公交编号、当前站台编号、下站站台编号,调用Database类的Execute函数执行插入操作插入新的路线信息函数部分关键代码如下publicvoidsaveRouteStringBusNoStringdltSelectedValue1StringdltSelectedValue2{str=insertintoroutevalues+BusNo++dltSelectedValue1++dltSelectedValue2+;db.Executestr;}
4.查询所有公交站台信息searchAllStation调用Database类的Search函数执行查询操作查询所有公交站台信息并返回数据集函数部分关键代码如下publicDataSetsearchAllStation{str=select*fromstation;ds=db.Searchstr;returnds;}
5.插入公交时刻信息saveFrequency根据形参传入的公交编号、站台数、发车时间,调用Database类的Execute函数执行插入操作插入新的公交时刻信息函数部分关键代码如下publicvoidsaveFrequencyStringBusNointcountStringtime{str=insertintoFrequencyvalues+BusNo++count++time+;;db.Executestr;}
6.删除公交时刻信息deleteFrequency根据形参传入的公交编号,调用Database类的Execute函数执行删除操作删除公交时刻信息函数部分关键代码如下publicvoiddeleteFrequencyStringBusNo{str=deletefromFrequencywhereBusNo=+BusNo+;;db.Executestr;}
7.查询站台信息searchStationName根据形参传入的站台编号,调用Database类的Search函数查询站台信息,并返回数据集,函数部分关键代码如下publicDataSetsearchStationNameStringStationNo{Stringstr=select*fromstationwhereStationNo=+StationNo+;;ds=db.Searchstr;returnds;}
8.查询站点信息searchStation1Name根据形参传入的站点编号,调用Database类的Search函数查询站点信息,并返回数据集,函数部分关键代码如下publicDataSetsearchStation1NameStringStationNo{Stringstr=select*fromstation1whereStationNo=+StationNo+;;ds=db.Searchstr;returnds;}
9.查询起始站台编号startRoute根据形参传入的公交编号,调用Database类的Search函数查询起始站台编号,并返回数据集,函数部分关键代码如下publicDataSetstartRouteStringBusNo{str=select*fromroutewherenowStop=0andBusNo=+BusNo+;;ds=db.Searchstr;returnds;}
10.查询下一站台编号searchRoute根据形参传入的公交编号及当前站台编号,调用Database类的Search函数查询下一站台编号,并返回数据集,函数部分关键代码如下publicDataSetsearchRouteStringnextStopStringBusNo{str=select*fromroutewherenowStop=+nextStop+andBusNo=+BusNo+;;ds=db.Searchstr;returnds;}
11.更新公交信息updateBusInfo根据形参传入的公交编号、站台数、起始站编号、终点站编号、距离、高峰发车间隔时间、平峰发车间隔时间、首班车发车时间、末班车发车间隔时间、起始站名、终点站名,调用Database类的Execute函数执行更新操作更新公交信息,函数部分关键代码如下publicvoidupdateBusInfoStringBusNointcountStringdltSelectedValueStringhiddenValue2StringDistanceStringFrequencyHStringFrequencyLStringFirstTimeStringLastTimeStringdltSelectedItemStringhiddenValue1{str=updateBussetStopCount=+count+StartStop=+dltSelectedValue+EndStop=+hiddenValue2+Distance=+Distance+FrequencyH=+FrequencyH+FrequencyL=+FrequencyL+FirstTime=+FirstTime+LastTime=+LastTime+Discription=N由首站 +dltSelectedItem+ 发往末站 +hiddenValue1+whereBusNo=+BusNo+;;db.Executestr;}
12.删除公交线路信息deleteRoute根据形参传入的公交编号,调用Database类的Execute函数执行删除操作删除公交线路信息,函数部分关键代码如下publicvoiddeleteRouteStringBusNo{str=deletefromroutewhereBusNo=+BusNo+;;db.Executestr;}
13.插入客运班次信息saveShift根据形参传入的班车编号、出发地、目的地、出发日期、出发时间、到达日期、到达时间、一等座价格、二等座价格、班次时间,调用Database类的Execute函数执行插入操作插入客运班次信息,函数部分关键代码如下publicvoidsaveShiftStringShiftStringdltFromSelectedValueStringdltToSelectedValueStringDateFromStringTimeFromStringDateToStringTimeToStringPrice1StringPrice2StringTime{str=insertintoShiftvalues+Shift++dltFromSelectedValue++dltToSelectedValue++DateFrom++TimeFrom++DateTo++TimeTo+60120+Price1++Price2++Time+;db.Executestr;}
14.查询所有站点信息searchAllStation1调用Database类的Search函数查询所有站点信息,并返回数据集,函数部分关键代码如下publicDataSetsearchAllStation1{str=select*fromstation1;ds=db.Searchstr;returnds;}
15.查询用户名及密码是否存在searchLogin根据形参传入的用户名和密码,调用Database类的Search函数查询用户名与密码是否存在,并返回数据集,函数部分关键代码如下publicDataSetsearchLoginStringuserNameStringuserPass{str=select*fromaccountwhereuserName=+userName+anduserPass=+userPass+;;ds=db.Searchstr;returnds;}
16.查询用户信息searchUser根据形参传入的用户名,调用Database类的Search函数查询用户信息,并返回数据集,函数部分关键代码如下publicDataSetsearchUserStringuserName{str=select*fromaccountwhereuserName=+userName+;;ds=db.Searchstr;returnds;}
17.查询客运班次信息searchShift根据形参传入的班车编号和发车时间,调用Database类的Search函数查询客运班次信息,并返回数据集,函数部分关键代码如下publicDataSetsearchShiftStringShiftStringDateTime{str=select*fromShiftwhereShiftNo=+Shift+andDateFrom=+DateTime+;;ds=db.Searchstr;returnds;}
18.插入订单信息saveOrderSheet根据形参传入的日期、班车编号、座位号、用户名、座位、姓名、身份证号、电话号码、购票日期,调用Database类的Execute函数执行插入操作插入订单信息,函数部分关键代码如下publicvoidsaveOrderSheetStringdt1StringShiftStringstrLinkStringuserNameStringstrSeatintcountStringnameStringIDStringTelephoneStringdt2{str=insertintoOrderSheetvalues+dt1+Shift+strLink++userName++Shift++strSeat++count++name++ID++Telephone++dt2+;;db.Executestr;}
19.更新座位数updateSeat
1、updateSeat2根据形参传入的座位数、班车编号、发车日期,调用Database类的Execute函数执行更新操作更新一等座位数,函数部分关键代码如下publicvoidupdateSeat1intseatsStringShiftStringDateTime{str=updateShiftsetseat1=+seats+whereShiftNo=+Shift+andDateFrom=+DateTime+;;db.Executestr;}根据形参传入的座位数、班车编号、发车日期,调用Database类的Execute函数执行更新操作更新二等座位数,函数部分关键代码如下publicvoidupdateSeat2intseatsStringShiftStringDateTime{str=updateShiftsetseat2=+seats+whereShiftNo=+Shift+andDateFrom=+DateTime+;;db.Executestr;}
20.查询班车信息searchTrain根据形参传入的班车编号,调用Database类的Search函数执行查询操作查询班车信息,函数部分关键代码如下publicDataSetsearchTrainStringShiftNo{str=select*fromtrainwhereShiftNo=N+ShiftNo+;ds=db.Searchstr;returnds;}
21.更新用户余额信息updateBalance根据形参传入的余额、用户名,调用Database类的Execute函数执行更新操作更新用户余额信息,函数部分关键代码如下publicvoidupdateBalanceDoublebalanceStringuserName{str=updateaccountsetbalance=+balance+whereuserName=+userName+;db.Executestr;}
22.插入充值记录信息saveRecord根据形参传入的用户名、充值金额、充值时间,调用Database类的Execute函数执行插入操作插入新的充值记录,函数部分关键代码如下publicvoidsaveRecordStringuserNameStringRechargeStringstrTime{str=insertintorecordvalues+userName++Recharge++strTime+;db.Executestr;}
23.插入用户信息addUser根据形参传入的用户名、密码、姓名、身份证号码、电话号码,调用Database类的Execute函数执行插入操作插入新的用户信息,函数部分关键代码如下publicvoidaddUserStringuserNameStringuserPassStringNameStringIDStringTelephone{str=insertintoaccountvalues+userName++userPass+2+Name++ID++Telephone+0;db.Executestr;}
24.更新电话号码updateTelephone根据形参传入的用户名、电话号码,调用Database类的Execute函数执行更新操作更新电话号码,函数部分关键代码如下publicvoidupdateTelephoneStringTelephoneStringuserName{str=updateaccountsetTelephone=+Telephone+whereuserName=+userName+;;db.Executestr;}
25.更新用户信息updateUser根据形参传入的用户名、密码、电话号码,调用Database类的Execute函数执行更新操作更新用户信息,函数部分关键代码如下publicvoidupdateUserStringTelephoneStringNewPassStringuserName{str=updateaccountsetTelephone=+Telephone+userPass=+NewPass+whereuserName=+userName+;;db.Executestr;}
26.查询班次信息searchShiftExist根据形参传入的班车编号、发车日期,调用Database类的Search函数执行查询操作查询班次信息,并返回数据集函数部分关键代码如下publicDataSetsearchShiftExistStringShiftStringDate{str=select*fromShiftwhereShiftNo=+Shift+andDateFrom=+Date+;;ds=db.Searchstr;returnds;}
27.插入班车信息saveTrain根据形参传入的班车编号、出发地、目的地、一等座位数、二等座位数、一等座位价格、二等座位价格,调用Database类的Execute函数执行插入操作插入班车信息,函数部分关键代码如下publicvoidsaveTrainStringShiftStringdltFromSelectedValueStringdltToSelectedValueintseat1intseat2DoublePrice1DoublePrice2{str=insertintotrainvalues+Shift++dltFromSelectedValue++dltToSelectedValue++seat1++seat2++Price1++Price2+;db.Executestr;}
28.更新用户密码updateNewPass根据形参传入的用户名、密码,调用Database类的Search函数执行更新操作更新用户密码函数部分关键代码如下publicvoidupdateNewPassStringuserNameStringuserPass{str=updateaccountsetuserPass=+userPass+whereuserName=+userName+;;db.Executestr;db.Executestr;}
4.3系统部分功能的实现
1.首页
(1)描述及实现系统拥有四大模块,分别是公交业务模块、客运业务模块、用户相关模块、登录模块首页提供了上述四大模块的入口系统使用者可以通过首页的菜单进入相应的模块的相应功能
(2)运行界面图4-2 主页a图4-3 主页b图4-4 主页c
(3)部分函数说明单击菜单上的退出系统按钮,清除session,使用javascript调用系统函数关闭退出系统关闭网页,其代码如下protectedvoidbtnExit_ClickobjectsenderEventArgse{Session.Clear;ClientScript.RegisterStartupScriptPage.GetTypescriptlanguage=javascriptwindow.opener=null;window.open_self;window.close;/script;}单击菜单上的公交列表按钮,菜单下方iframe页面跳转至公交列表页面,其代码如下protectedvoidbtnBusList_ClickobjectsenderEventArgse{frame_middle.Attributes[src]=buslist.aspxflag=1;}菜单上的线路查询、站台列表、发车班次、班次查询、购票、统计按钮的函数代码与上述公交列表按钮相似,故不在给出相应函数代码单击菜单上的用户信息按钮,通过判断session中是否存在用户信息若session中存在用户信息,菜单下方iframe页面跳转至用户信息页面;若session中不存在用户信息,系统页面跳转至登录页面其代码如下protectedvoidbtnUserInfo_ClickobjectsenderEventArgse{ifSession[userName]!=null{frame_middle.Attributes[src]=userInfo.aspxflag=1;}else{Response.Redirectlogin.aspx;}}菜单上的订单查询、余额充值按钮的函数代码与上述用户信息按钮相似,故不在给出相应函数代码单击页面上的登录按钮,判断用户名密码是否输入,若未输入,则焦点指向相应文本框;若都输入了,调用自定义类库的searchLogin函数,查询用户名密码是否正确,若正确,则将用户信息存入session,跳转回主页其函数代码如下protectedvoidbtnLogin_ClickobjectsenderEventArgse{iftxtUser.Text==||txtPass.Text=={iftxtUser.Text=={txtUser.Focus;}else{txtPass.Focus;}}else{DataSetds=newDataSet;csFunctioncs=newcsFunction;ds=cs.searchLogintxtUser.Text.ToStringtxtPass.Text.ToString;ifds.Tables
[0].Rows.Count==1{Session[userName]=ds.Tables
[0].Rows
[0][userName].ToString;Session[level]=ds.Tables
[0].Rows
[0][level].ToString;Response.Redirectmain.aspx;}else{txtUser.Focus;txtUser.Text=密码错误;txtPass.Text=;}}}在登陆状态下单击登出按钮,清除session,跳转回主页其代码如下protectedvoidbtnLogoff_ClickobjectsenderEventArgse{Session.Clear;Response.Redirectmain.aspx;}
2.站台停靠公交列表
(1)描述及实现通过站台列表的查看停靠公交按钮跳转时所传的站台编号,在数据库中公交线路表与公交信息表中查找下站站台编号与传入站台编号相同的公交编号和信息将值绑定在gridview上显示出来
(2)运行界面图4-5 站台停靠公交列表
(3)部分函数说明根据传入的站台编号,编写SQL文,进行检索操作后将其与gridview进行绑值str=selectdistinctBus.BusNoStopCountDistanceDiscriptionnextStopfromrouteBus+whereroute.BusNo=Bus.BusNoandnextStop=+Request[no].ToString+;;SqlDataSource
1.SelectCommand=sql;GridView
1.DataSourceID=SqlDataSource1;GridView
1.DataBind;
3.公交列表
(1)描述及实现页面载入时,判断管理员是否登陆,若管理员已登录,显示添加按钮同时在数据库公交信息表中检索所有公交信息并将值绑定在gridview上显示出来查询公交号时,采用模糊查询,将结果绑定到gridview上点击重置按钮,重新查询所有公交信息并绑值
(2)运行界面图4-6 公交列表a图4-7 公交列表b
(3)部分函数说明公交号模糊查询SQL文如下Select*fromBuswhereBusNolike%+txtBusNo.Text.ToString+%;
(4)技术说明执行数据库查询时,有完整查询和模糊查询之分在模糊查询中,SQL提供了四种匹配模式1%可匹配任意类型和长度的字符SELECT*FROMuserWHEREnameLIKE%三%;上述SQL文的执行结果为将name中如“张三”,“张猫三”、“三脚猫”,“唐三藏”等有“三”的记录全找出来如果须要找出name中既有“三”又有“猫”的记录,有两种SQL文写法,如下SELECT*FROMuserWHEREnameLIKE%三%ANDu_nameLIKE%猫%;SELECT*FROM[user]WHEREu_nameLIKE%三%猫%;第二种方法虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”
②_匹配单个任意字符它常用来限定表达式的字符长度语句,例如SELECT*FROMuserWHEREnameLIKE_三_;SELECT*FROMuserWHEREnameLIKE三__;第一个SQL文只找出如“唐三藏”这样name为三个字且中间一个字是“三”的;第二个SQL文只找出“三脚猫”这样name为三个字且第一个字是“三”的;
③[]表示括号内所列字符中的一个(类似正则表达式)指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个例如SELECT*FROMuserWHEREnameLIKE[张李王]三;将找出“张三”、“李三”、“王三”,而不是“张李王三”;如果[]内有一系列字符(
01234、abcde之类的)则可略写为“0-4”、“a-e”
④[^]表示不在括号所列之内的单个字符其取值和[]相同,但它要求所匹配对象为指定字符以外的任一个字符比如SELECT*FROM[user]WHEREu_nameLIKE[^张李王]三;将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等;因为本次在公交号查询中,公交号长度不固定,所以选用%进行模糊查询,而不选用其他几种匹配方式进行模糊查询
4.站台列表
(1)描述及实现页面载入时,在数据库公交信息表中检索所有站台信息并将值绑定在gridview上显示出来点击查看公交按钮时,将所选站台编号传给停靠公交列表页面
(2)运行界面图4-8 站台列表
(3)部分函数说明通过所选行的Index值,获取该行某列的值,并将获取的值传入stopView.aspx代码如下str=GridView
1.Rows[GridView
1.SelectedIndex].Cells
[1].Text;no=int.ParseGridView
1.Rows[GridView
1.SelectedIndex].Cells
[0].Text;Response.RedirectstopView.aspxflag=1no=+no+name=+str;
5.添加公交
(1)描述及实现管理员在输入信息时,系统会根据正则表达式判断输入内容是否符合格式要求输入公交信息后,点击保存按钮,系统生成SQL文,进行数据库插入操作
(2)运行界面图4-9 添加公交
(3)部分函数说明公交行驶路线下拉框绑值代码如下ds=cs.searchAllStation;dltStop
1.DataSource=ds;dltStop
1.DataTextField=StationName;dltStop
1.DataValueField=StationNo;dltStop
1.DataBind;
6.线路查询
(1)描述及实现输入出发地和目的地后点击搜索按钮,根据输入信息生成直达以及一次转乘SQL文,进行数据库检索并绑值
(2)运行界面图4-10 线路查询
(3)部分函数说明直达公交路线SQL文str=SELECTdistinctBus.BusNoa.StationNameb.StationNameASExpr1FROMBusCROSSJOINstationASaCROSSJOINstationASbWHEREa.StationName=+txtFrom.Text.ToString+ANDb.StationName=+txtTo.Text.ToString+ANDBusNoINSELECTx.BusNoFROMstationASnINNERJOINrouteASyONn.StationNo=y.nextStopINNERJOINrouteASxINNERJOINstationASmONx.nowStop=m.StationNoONy.BusNo=x.BusNoWHEREm.StationName=+txtFrom.Text.ToString+ANDn.StationName=+txtTo.Text.ToString+;一次换乘公交路线SQL文SELECTdistinctc.BusNoe.BusNoASExpr1g.StationNamei.StationNameASExpr2j.StationNameASExpr3FROMstationASiCROSSJOINstationASjCROSSJOINSELECTDISTINCTf.BusNof.nowStopf.nextStopff.StationNoff.StationNameff.PositionXff.PositionYFROMrouteASfINNERJOINstationASffONf.nextStop=ff.StationNoWHEREff.StationName=+txtTo.Text.ToString+ASeINNERJOINrouteASdONe.nowStop=d.nextStopINNERJOINstationASgONe.nowStop=g.StationNoINNERJOINrouteAScONd.BusNo=c.BusNoINNERJOINstationAShONc.nowStop=h.StationNoWHEREg.StationName!=+txtFrom.Text.ToString+andi.StationName=+txtFrom.Text.ToString+ANDj.StationName=+txtTo.Text.ToString+ANDh.StationName=+txtFrom.Text.ToString+ANDc.BusNo!=e.BusNoANDc.BusNoINSELECTDISTINCTBusNoFROMrouteASbWHEREnextStopINSELECTDISTINCTa.nowStopFROMrouteASaINNERJOINstationASaaONa.nextStop=aa.StationNoWHEREaa.StationName=+txtTo.Text.ToString+;
7.购票
(1)描述及实现出发地与目的地、出发日,至少输入其中一项后点击搜索按钮,根据输入信息生成SQL文,进行数据库检索并绑值
(2)运行界面图4-11 购票a图4-12 购票b
(3)部分函数说明获取系统现在时间代码如下Stringdt=DateTime.Now.ToStringyyyy-MM-ddHH:mm:ss:fff;载入页面是检索所有符合日期的班次信息并绑值SELECTShift.ShiftNoShift.TimeFromShift.TimeToShift.seat1Shift.seat2Shift.price1Shift.price2x.StationNamey.StationNameASExpr2Shift.DateFromFROMShiftINNERJOINstation1ASxONShift.StationFrom=x.StationNoINNERJOINstation1ASyONShift.StationTo=y.StationNoandlanchTime=+dt.ToString+;;检索只输入目的地和出发地时的所有符合日期的班次信息并绑值SELECTShift.ShiftNoShift.TimeFromShift.TimeToShift.seat1Shift.seat2Shift.price1Shift.price2x.StationNamey.StationNameASExpr2Shift.DateFromfromShiftStation1xStation1ywherex.StationNo=Shift.StationFromandy.StationNo=Shift.StationToandx.StationName=N+txtStationFrom.Text.ToString+andy.StationName=N+txtStationTo.Text.ToString+andlanchTime=+dt.ToString+;;检索只输入出发日时的所有符合日期的班次信息并绑值SELECTShift.ShiftNoShift.TimeFromShift.TimeToShift.seat1Shift.seat2Shift.price1Shift.price2x.StationNamey.StationNameASExpr2Shift.DateFromfromShiftStation1xStation1ywherex.StationNo=Shift.StationFromandy.StationNo=Shift.StationToandDateFrom=+txtDate.Text.ToString+andlanchTime=+dt.ToString+;;检索同时输入出发地与目的地、出发日时的所有符合日期的班次信息并绑值SELECTShift.ShiftNoShift.TimeFromShift.TimeToShift.seat1Shift.seat2Shift.price1Shift.price2x.StationNamey.StationNameASExpr2Shift.DateFromfromShiftStation1xStation1ywherex.StationNo=Shift.StationFromandy.StationNo=Shift.StationToandx.StationName=N+txtStationFrom.Text.ToString+andy.StationName=N+txtStationTo.Text.ToString+andDateFrom=+txtDate.Text.ToString+andlanchTime=+dt.ToString+;;
8.统计
(1)描述及实现页面载入时,根据系统时间,自动生成本年度客运统计SQL文,查询并绑值
(2)运行界面图4-13 统计
(3)部分函数说明根据年度生成年详细统计,SQL文如下SELECTCOUNTShift.ShiftNoASExpr1CASTCASTCOUNTShift.ShiftNoASfloat/12ASdecimal52ASExpr2COUNTShift.ShiftNo*180-SUMShift.seat1-SUMShift.seat2ASExpr3SUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2ASExpr4CASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/12ASdecimal102ASExpr5CASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/COUNTShift.ShiftNoASdecimal102ASExpr6FROMShiftINNERJOINstation1ONShift.StationFrom=station
1.StationNoWHEREShift.lanchTime+start.ToStringyyyy-MM-ddHH:mm:ss:fff+ANDShift.lanchTime+end.ToStringyyyy-MM-ddHH:mm:ss:fff+;根据出发地生成年详细统计,SQL文如下SELECTstation
1.StationNameCOUNTShift.ShiftNoASExpr1CASTCASTCOUNTShift.ShiftNoASfloat/12ASdecimal52ASExpr2COUNTShift.ShiftNo*180-SUMShift.seat1-SUMShift.seat2ASExpr3SUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2ASExpr4CASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/12ASdecimal102ASExpr5CASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/COUNTShift.ShiftNoASdecimal102ASExpr6FROMShiftINNERJOINstation1ONShift.StationFrom=station
1.StationNoWHEREShift.lanchTime+start.ToStringyyyy-MM-ddHH:mm:ss:fff+ANDShift.lanchTime+end.ToStringyyyy-MM-ddHH:mm:ss:fff+GROUPBYShift.StationFromstation
1.StationName;根据月份生成年详细统计,查询信息分别为月份、月总班次数、日均班次数月总乘客数、月车票收入、日均车票收入、班次平均收入,将十二个月的查询结果并联其SQL文如下一月份SELECT1月ASExpr7COUNTShift.ShiftNoASExpr1CASTCASTCOUNTShift.ShiftNoASfloat/30ASdecimal52ASExpr2ISNULLCOUNTShift.ShiftNo*180-SUMShift.seat1-SUMShift.seat20ASExpr3ISNULLSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price20ASExpr4ISNULLCASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/30ASdecimal1020ASExpr5ISNULLCASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/COUNTShift.ShiftNoASdecimal1020ASExpr6查询表名FROMShiftINNERJOINstation1ONShift.StationFrom=station
1.StationNo条件WHEREShift.lanchTime+start.ToStringyyyy-MM-ddHH:mm:ss:fff+ANDShift.lanchTime+year.ToString+-02-0100:00:
00.000二月份UNIONALLSELECT2月ASExpr7COUNTShift_
11.ShiftNoASExpr1CASTCASTCOUNTShift_
11.ShiftNoASfloat/30ASdecimal52ASExpr2ISNULLCOUNTShift_
11.ShiftNo*180-SUMShift_
11.seat1-SUMShift_
11.seat20ASExpr3ISNULLSUM60-Shift_
11.seat1*Shift_
11.price1+120-Shift_
11.seat2*Shift_
11.price20ASExpr4ISNULLCASTSUM60-Shift_
11.seat1*Shift_
11.price1+120-Shift_
11.seat2*Shift_
11.price2/30ASdecimal1020ASExpr5ISNULLCASTSUM60-Shift_
11.seat1*Shift_
11.price1+120-Shift_
11.seat2*Shift_
11.price2/COUNTShift_
11.ShiftNoASdecimal1020ASExpr6查询表名FROMShiftASShift_11INNERJOINstation1ASstation1_11ONShift_
11.StationFrom=station1_
11.StationNo条件WHEREShift_
11.lanchTime+year.ToString+-01-3123:59:
59.999ANDShift_
11.lanchTime+year.ToString+-03-0100:00:
00.000余下月份并联SQL文省略一月份详细出发地统计SQL文如下,其余省略SELECTstation
1.StationNameCOUNTShift.ShiftNoASExpr1CASTCASTCOUNTShift.ShiftNoASfloat/30ASdecimal52ASExpr2ISNULLCOUNTShift.ShiftNo*180-SUMShift.seat1-SUMShift.seat20ASExpr3ISNULLSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price20ASExpr4ISNULLCASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/30ASdecimal1020ASExpr5ISNULLCASTSUM60-Shift.seat1*Shift.price1+120-Shift.seat2*Shift.price2/COUNTShift.ShiftNoASdecimal1020ASExpr6FROMShiftINNERJOINstation1ONShift.StationFrom=station
1.StationNoWHEREShift.lanchTime+start.ToStringyyyy-MM-ddHH:mm:ss:fff+ANDShift.lanchTime+year.ToString+-02-0100:00:
00.000GROUPBYShift.StationFromstation
1.StationName结论多年来,城市客运管理系统的研究开发已经比较相对完善本次毕业设计,通过模仿制作简单的客运管理系统,从客运方的角度来了解客运管理的难度以及了解客运管理系统对城市交通管理的效果有多大结论是制作一个完善的城市客运交通管理系统,在一定程度上能够有效地减缓交通压力、使交通更加顺畅有序但是无法从更本上解除交通压力以及解决交通问题国家想要解决现有的交通问题,只有实行新的政策、发展新的交通工具本系统的优点是系统框架简单、函数复杂度低绝大多数功能均通过SQL文实现数据库操作时将后台生成的SQL文传入到自定义类库中执行,增加了代码安全性在使用该系统时,作为普通用户,能够比较方便快捷的使用该系统;页面布局、模块功能都并不复杂,很容易上手;只是功能较简单,只能做到一般客运系统的基础功能,缺少一些人性化的功能作为管理员,能够实现一些基础功能只是再添加新信息时,每次都要输入比较多的数据,比较繁琐作为开发者,因技术及时间限制,只能说是完成了一个真正客运管理系统的雏形设计时很多细节功能都没有想到,几乎是想到什么功能就做什么,还有很多地方可以改善,还有很多功能可以添加实现同时在自己实际使用自己编写的系统后,也发现了一些不合理的地方和可以改进的地方本人打算在今后添加完善的地方有
(1)公交换乘路线查询时,设置最优路线查询本次设计时,公交换乘路线查询没有设置最优路线查询比如路程最短、时间最少等其原因是系统比较简单,公交站台没有设置坐标,没有实现公交实际的运行情况,无法计算路程与时间在该系统制作初期站台设定了坐标,并且实现了一辆公交车路线模拟情况的功能但该方法无法实现辆数不确定的公交模拟运行,并且不是实时模拟,刷新页面后便重新开始了,无法在其他地方应用,便暂时放弃了该功能在今后的时间里,在可能的情况下,我会抽出时间,研究一些方法,实现实时的公交行驶路线模拟的功能,并在该功能上扩展其他的功能
(2)优化完善管理员信息添加功能例如管理员在客运管理中添加新的班次信息时,每次只能选择一辆班车设置发车时间等信息,比较繁琐、效率不高我打算在数据库中加入一个新的表,表中含有出发地、目的地、距离等信息,可以让管理员事先设置好客运运行路线信息在班车信息中加入平局行驶速度等信息同时编写一个算法,按行驶路程计算票价功能,以便在管理员添加新的客运班次信息时,只需选择班车号、出发地、目的地和输入发车日期及时间后,自动在数据库中查找两地之间距离,根据班车平局速度计算出到站时间,并保存至数据库当完成上述功能后,我将编写批量添加功能可以根据相同出发地、相同目的地、相同发车日期等条件,批量添加班次信息
(3)编写管理员后台管理重新编写新的管理员后台管理页面,将管理员的相关模块全部放入管理员后台管理中去与普通用户分开,使得系统布局分隔更加明确防止用户通过一些方法获取一些关键源代码致使系统瘫痪等问题
(4)编写更多的统计方法增加更多不同条件的不同的统计方法,更全面的了解客运运行情况通过这个的毕业设计,我了解到了个人从策划到开发一个项目的艰难在实习单位实习时,只需要听从领导安排,按照要求就可以比较轻松的完成自己的任务而这次的城市客运管理系统,从选题到可行性研究、需求分析、概要设计、详细设计、编码、测试,全都是由我一个人进行深刻地了解到了在企业中,团结合作是多么的重要,平常做的看似简单项目实际上是多么的麻烦、困难因为本系统只含有客运管理的最基础的功能,并不能和网上现有的客运管理系统相抗衡在今后的时间里,本人想要完善该系统,实现购票时使用网上客运管理系统的接口,不用管理员自己新建信息同时在公交业务中,公交线路查询实现两次、三次转乘路线功能致谢历过这忙碌的两个月,我的毕业设计也将告一段落我要感谢我的指导教师曹老师在曹老师的指导下,在课题选择、方案确立、报告书写上给了我很大的帮助同时曹老师也是我的班导师,在这四年的本科学习生活期间,也在各方面给与了很大的帮助我也要感谢我的同学,帮我解决了在开题报告以及毕业论文的书写过程中遇到了一些问题同时我也要感谢我这几个月实习单位的各位领导在公司实习时让我学到了不少在学校中没有接触过的东西,使我受益匪浅,对我毕业设计的制作有了一定的帮助同时因为得到了领导的理解,在公司项目比较宽松时,能够有自由时间研究编写毕业设计在此向帮助和指导过我的同学、老师和公司的领导表示衷心的感谢!以及向计算机信息工程学院的全体老师表示由衷的谢意感谢他们四年来的辛勤栽培参考文献
[1]JeffreyRichter.Microsoft.NET框架程序设计[M].清华大学出版社.2003
[2]SimonRobinsonChristianNagel.C#高级编程[M].清华大学出版社.2003
[3]AndersHejlsbergScottWiltamuth.C#编程语言详解/.NET技术大系[M].电子工业出版社.2007
[4]StanleyB.Lippman.C#Primer[M].华中科技大学出版社.2003
[5]PatrickSmacchia.C#和.NET
2.0实战:平台、语言与框架[M].人民邮电出版社.2008
[6]KevinE.KlineDanielKline.SQL技术手册第二版[M].东南大学出版社.2008
[7]KalenDelaney.深入解析SQLServer2008[M].人民邮电出版社.2009
[8]卡斯特罗.HTML、XHTML、CSS基础教程(第6版)[M].人民邮电出版社.2007
[9]DickOliverMichaelMorrison.HTML与CSS入门经典[M].人民邮电出版社.2011
[10]DanielSolis.C#图解教程[M].人民邮电出版社.2011
[11]JeffreyRichter.框架设计CLRViaC#第2版[M].清华大学出版社.2006
[12]张立科.ASP.NET信息管理系统开发实例导航[M].人民邮电出版社.2005
[13]使用IIS
6.0配置网站.http://jingyan.baidu.com/article/c1a3101ee43ae9de656debb
4.html
[14]AndrewTroelsen.C#与.NET4高级程序设计[M].人民邮电出版社.2011
[15]徐孝凯贺佳英.数据库基础与SQLServer应用开发[M].清华大学出版社.2008
[16]钱雪忠.数据库原理及应用[M].北京邮电大学.2007
[17]AbrahamSilberschatz.数据库系统概念(第五版)[M].机械工业出版社.2006
[18]王珊,萨师煊.数据库系统概论[M].高等教育出版社.2006。