大学毕业论文-—基于web的城市公交查询系统设计与实现.doc

上传人:知****量 文档编号:91611709 上传时间:2023-05-27 格式:DOC 页数:30 大小:1.03MB
返回 下载 相关 举报
大学毕业论文-—基于web的城市公交查询系统设计与实现.doc_第1页
第1页 / 共30页
大学毕业论文-—基于web的城市公交查询系统设计与实现.doc_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《大学毕业论文-—基于web的城市公交查询系统设计与实现.doc》由会员分享,可在线阅读,更多相关《大学毕业论文-—基于web的城市公交查询系统设计与实现.doc(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、淮阴师范学院毕业论文(设计)毕业设计说明书学生姓名学 号学院 专 业计算机科学与技术(软件工程)题 目基于web的城市公交查询系统设计与实现指导教师 讲师/硕士 (姓 名) (专业技术职称/学位)2013年5月27毕业论文独创性声明本人郑重声明:本论文是我个人在导师指导下进行的研究工作及取得的研究成果。本论文除引文外所有实验、数据和有关材料均是真实的。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。作者签名: 日 期: 摘 要:随着信息化时代的推进,各个行业都在采用信息化的管理方式

2、。城市公交的查询也可以依托计算机技术,来更好的为乘客提供信息服务,提高工作效率,降低乘客出行成本。如此才能提高公交在各出行方式中的竞争力。本设计是以Microsoft SQL Server 2005作为后台数据库开发,以Visual Studio 2008作为开发平台,开发的基于ASP.NET的城市公交查询系统。该系统主要包括以下功能模块:乘客前台查询和管理员后台管理。前台查询包括换乘查询、线路查询、站点查询、评价统计,后台管理模块则通过管理员登录后分别实现对站点、线路的添加、删除、修改。本论文详细介绍了各模块的设计与实现。关键词:公交,ASP.NET,查询,数据库Abstract:With

3、the advancement of the information age, all industries in information management. Urban public transport queries can rely on computer technology, to provide passengers with a better service, improve efficiency, reduce the cost of passenger travel.The design is based on Microsoft SQL Server 2005 as t

4、he back-end database development as a development platform, Visual Studio 2008, the development of urban public transport query system based on ASP.NET. The system includes the following functional blocks: Passengers front and administrators Admin. The front desk query includes: Transfer Inquiry lin

5、e inquiry, site for the evaluation of the statistics, the background management module added to the site, line by the administrator login, delete, modify. This paper introduces the design and implementation of each module.Keywords:BUS,ASP.NET, Inquiry, Database目 录1 前言41.1 课题背景42 系统的开发工具与环境42.1 ASP.N

6、ET简介42.2 系统的开发要求53 需求分析53.1 功能需求分析54 设计准备64.1 功能模块划分64.2 数据库设计64.2.1 数据库概念结构设计64.2.2 数据库逻辑结构设计85 详细设计与实现105.1 关于数据库操作105.2 功能实现115.2.1 主界面115.2.1 站点查询115.2.2 线路查询125.2.3 换乘查询145.3 后台管理175.3.1 管理员登录175.3.2 添加、修改、删除站点185.3.3 添加、修改、删除车次205.4 评价管理236 测试246.1 开发过程遇到问题246.2 进一步研究工作25结束语26参考文献27致谢281 前言1.1

7、 课题背景交通是每个城市发展的标志,便捷通达的交通系统能合理有效的改善交通拥塞、能源紧张、噪声干扰、废气污染等一系列问题,推动城市的建设与进步。当下城际轻轨、地铁最快捷便利,但是运营成本过高,只能在一些发达城市运行,老牌公交车则经久不衰,以其低成本高亲民度,健硕存在于各个级别的城市,服务着广大群众。为了更好的了解城市的公交运行系统,方便人们的出行,开发了本系统。该系统,有利于公交公司随时将公交最新信息发布到网上,乘客能够无门槛登录该系统查询公交信息。系统分为前台和后台,前台能够供登录系统的用户访问,后台由公交公司管理人员进行维护。该系统的核心功能为公交车信息的查询,查询分为站点换乘查询、公交站

8、点查询、公交线路查询。站点换乘查询是用户输入起止站点名称,查询出如何乘车到达,要求能够查询出所有直达车次与二次换乘可到达的车次;公交站点查询是用户输入公交站点,查询出经过此站点的所有车次,并能够查看该车次详细信息;公交线路查询是用户输入指定车次,查询出此车次的详细信息。2 系统的开发工具与环境2.1 ASP.NET简介ASP.NET是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。ASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,并且包含使生成 ASP Web 应用程序变得简单的控件集

9、和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员可以编写自己的业务逻辑并使用 ASP.NET 结构通过

10、 SOAP 交付该服务。Visual Studio 2008 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic 2008、Visual C+ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。2.2 系统的开发要求该公交查询系

11、统对操作系统的要求如下:硬件要求:1.CPU:最低Intel Pentium II 500MHz2.磁盘空间:250MB(完全安装),155MB(快速安装)。3.内存:512MB(最好1GB以上)。4.显示:1024*768,256色。软件要求:1.操作系统:Windows2000以上的操作系统。2.开发平台:Visual Studio 2008,Microsoft SQL Server 2005。3 需求分析3.1 功能需求分析本公交查询系统以淮安作为背景城市,其余城市可参照修改同样适用。本系统不仅能给广大熟悉淮安路线的本地市民提供便利,更加能为其他来到淮安出差、旅游的朋友带来方便。开发本系

12、统的目标就是立足广大乘客的实际,着眼于公交业的未来发展,规范公交管理,提高服务质量,方便乘客查询。本系统采用结构化设计的方法以实现系统总体功能,即将整个系统划分为各个功能模块,正确处理模块之间和模块内部的联系以及和数据库的联系,通过对各模块的设计和模块之间关系的安排;来系统实现整个系统的功能。前台主要有4个模块:换乘查询、线路查询、站点查询、评价统计,后台管理模块则通过管理员登录后分别实现对站点、线路的添加、删除、修改。前台主要向用户提供换乘查询、车次查询、站点查询等查询方式,具体实现如下功能:1.换乘查询:输入起始站名与终点站名,系统会输出所有的公交路线方案;2.车次查询:输入已知的车次,系

13、统会输出该车次经过的所有站点名;3.站点查询:输入已知的站点名,系统会输出经过该站点的所有车次。数据库会提供给用户全部的信息,用户可以根据自己的实际情况进行选择,另外,用户可以在系统左下角的评价栏投出自己宝贵的一票,系统将对结果进行统计分析,实现用户与公交公司的良好互动。后台由管理员输入其指定账号与密码对数据库进行管理,实现站点的添加、删除、修改,线路的添加、删除、修改。系统模块如图3-1所示:图 3-1 系统模块图4 设计准备4.1 功能模块划分通过需求分析,可以确定该系统应完成的功能包括:1.前台功能:主要实现乘客对车辆信息的查询,包括站点间换乘查询、车次查询、站点查询;其次通过评价统计来

14、实现乘客与公交公司的互动。2.后台功能:主要实现公交公司管理员对车辆信息的维护,包括线路信息的添加、删除、修改和站点信息的添加、删除、修改。4.2 数据库设计通过需求分析,本系统在概要设计阶段得到五个数据实体:公交车次、公交站点、公交线路、管理员、评价。这些实体的属性均按照用户需求中的输入输出数据设定,故应该根据这五个实体设计五种类型的数据库表:公交车次表、公交站点表、不同车次线路表、管理员表、评价统计表。4.2.1 数据库概念结构设计所谓概念结构设计,就是将需求分析得到的用户需求抽象为信息结构。概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定,它是整个数据库的

15、关键。概念结构设计的特点:1.能真实、充分地反映现实世界,是对现实世界的一个真实模型。2.易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成果的关键。3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。4.易于向关系、网状、层次等各种数据模型转换。在系统设计的开始,首先应该考虑如何用数据模型来描述数据库的结构和语义,以对现实世界进行抽象。“实体联系模型”(E-R模型)独立于计算机系统用的较为广泛,本系统也充分应用了它。E-R模型直接从现实世界抽象出实体类型及实体间联系,然后用E-R图来表示数据模型。它更接近人都思维,容易理解;与计算机无关,用户更

16、容易接受,但它只是数据库设计的第一步。E-R图是直观表示概念模型的工具,它有三个基本成分:1.矩形框,表示实体类型(考虑问题的对象)。2.菱形框,表示联系类型(实体间的联系)。3.椭圆形框,表示实体的属性。该系统实体和属性的定义如下:管理员表E-R图(登录ID,登录姓名,登录密码)图4-1 管理员表E-R图各站集合表E-R图(站名ID,站名)图4-2 各站集合表E-R图各条线路表E-R图(站名ID,次序,站名)图4-3 各条线路表E-R图各条线路集表E-R图(车辆ID,车次,始发站,末站,运行区间,线路描述,IC卡类型,票价,首班车时间,服务类型,末班车时间) 图4-4 各条线路集表E-R图评

17、价表E-R图(评价程度,票数) 图4-5 评价表E-R图4.2.2 数据库逻辑结构设计本系统采用Microsoft SQL Server 2005数据库管理系统,该系统不仅能满足最大的数据处理系统和商业Web站点存储数据的需要,还能为个人或小企业提供易于使用的数据存储服务。之所以使用Microsoft SQL Server 2005就是因为它是一个企业级的集成商业智能的全面的数据库平台,Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使设计者可以构建和管理用于业务的高可用和高性能的数据应用程序。本系统创建的SQL数据库名称为城市公

18、交查询系统,并将数据文件和日志文件保存在APP_DATA文件夹中。此数据库包含5类表,分别是管理员表、各站集合表、各条线路表、各条线路集合表、评价表。(1)管理员表管理员表存放管理员登录系统所需要的用户名和密码,管理员登录后台时需要访问此表。 表4-1 管理员表字段名数据类型长度是否允许空是否为主键说明AdminIdint3否是登录IDAdminNamenchar(3)20否否登录姓名AdminPasswordnchar(6)20否否登录密码(2)各站集合表各站点集合表存放所有站点名、编号及描述,此表中的站点是各条线路表中的站点的集合即所有线路中的站点。 表4-2 各站集合表字段名数据类型长度

19、是否允许空是否为主键说明SiteIDint10否否站点IDSiteNamenchar(10)10否否站点名SiteDescribenchar(50)50是否站点描述(3)各条线路表各条线路表是存放各线路信息的表。 表4-3 各条线路表字段名数据类型长度是否允许空是否为主键说明SiteIdint10否否站点IDSiteNamenchar(10)10否否站名SiteDescribenchar(50)50是否站点描述cixuint5否否线路中站点次序(4)各条线路集合表各条线路集合表是所有线路的集合表,存储了所有线路的ID和一些基本信息。 表4-4 各条线路集合表字段名数据类型长度是否允许空是否为主

20、键说明LineIdint10否是线路IDLineNamenchar(10)10否否线路名称LineAreanchar(10)10否否线路区间LinePricenchar(10)10否否票价LineStartPlacenchar(10)10否否始发站LineEndPlacenchar(10)10否否末站LineStartTimenchar(10)10否否早班车时间LineEndTimenchar(10)10否否末班车时间LineICbit5否否IC卡类型LineDescribenchar(80)80是否线路描述(5)评价表评价表用于用户对本系统的评价统计,存储不同评价的票数,饼图统计时调用这张表

21、。 表4-5 评价表字段名数据类型长度是否允许空是否为主键说明评价程度nchar(10)10否是评价程度票数int5是否票数5 详细设计与实现5.1 关于数据库操作在动态网站中,调用数据库中的数据是十分频繁的,为了数据库的安全性,本程序将所有数据库的操作封装到DBConnect类中并放于DBConnect.cs文件中。开发人员在实现其他功能时,可以在此类中写函数然后调用,避免零散的重复的操作数据库。本系统的数据库的连接代码如下:public static SqlConnection createConnection() SqlConnection con = new SqlConnection

22、(Data Source=SUNNANYUN;Initial Catalog=Bus;Integrated Security=True); return con;为了不反复的访问数据库,记录了一些基本信息,声明了以下成员变量: private int SiteCount;/记录站点的总个数 private int LineCount;/记录线路的总个数 private int line;/保存每条线路5.2 功能实现5.2.1 主界面任意乘客、用户都可以登录这个公交查询系统的主界面进行查询。该界面简洁、方便,一目了然的可以进入三大主要查询模块、管理员登录模块、评价模块,为各类用户提供便利。主界

23、面见下图5-1: 图5-1 主界面图5.2.1 站点查询任意用户登录该公交查询网站均可进行站点查询。用户需输入站点全称,点击查询按钮后,系统会在数据库中检测该站点是否存在,如果存在,将显示经过该站点所有的公交线路情况,如果不存在将提示该站点不存在。该站点查询界面如图5-2所示: 图5-2 站点查询图该功能的实现,从textbox获取站点名称sitename,获取到sitename后,首先查询站点总表里是否存在该站点,若不存在,则count赋值为0,显示提示信息。若存在站点,则遍历所有的线路表查找站点,若某路线存在该站点,则记录该线路,存于数组Line。count用于统计经过该站点的线路的个数。

24、ref 关键字使参数count按引用传递。其效果是,当控制权传递回调用方法时,在方法中的count所做的任何更改都将反映在该变量中。主要实现代码如下: public void GetSiteLine(string Line, string sitename, ref int count) SqlConnection cn = createConnection(); cn.Open(); string str = select count(*) from site where sitename = + sitename + ; SqlCommand cmd = new SqlCommand(st

25、r, cn); if (Convert.ToInt32(cmd.ExecuteScalar().ToString() = 0) count = 0; cn.Close(); else int i = 0; for (int j = 0; j 0) Linei+ = linej.ToString(); count = i; cn.Close(); 5.2.2 线路查询任意用户登录该公交查询网站均可进行线路查询。用户可以在下拉列表显示的所有线路中找到自己想查询的线路,点击查询,系统就会显示该线路去程、回程及一些相关信息。该线路查询界面如图5-3所示: 图5-3 线路查询图该功能的实现,首先从dro

26、pdownlist获取线路名称linename,然后从线路集合表中获取该线路的信息存于数组sLineTotal中,并通过线路集合表LineID,获取该路线的所有站点,存于数组line中,count用于统计该线路所有站点的个数。主要实现代码如下:public void GetLine(string sLineTotal, string line, string linename, ref int count) SqlConnection cn = createConnection(); cn.Open(); string str = select * from linetotal where l

27、inename = + linename + ; SqlCommand cmd = new SqlCommand(str, cn); SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows)/从linetotal中获取信息 if (reader.Read() sLineTotal0 = reader.GetValue(0).ToString().Trim(); sLineTotal1 = reader.GetValue(1).ToString().Trim(); sLineTotal2 = reader.GetValue(2

28、).ToString().Trim(); sLineTotal3 = reader.GetValue(3).ToString().Trim(); sLineTotal4 = reader.GetValue(4).ToString().Trim(); sLineTotal5 = reader.GetValue(5).ToString().Trim(); sLineTotal6 = reader.GetValue(6).ToString().Trim(); sLineTotal7 = reader.GetValue(7).ToString().Trim(); sLineTotal8 = reade

29、r.GetValue(8).ToString().Trim(); sLineTotal9 = reader.GetValue(9).ToString().Trim(); reader.Close(); cmd.CommandText = select sitename from Line + sLineTotal0.ToString().Trim() + ; reader = cmd.ExecuteReader(); if (reader.HasRows)/从具体的公交线路中获取站点顺序信息 int n = 0; while (reader.Read() linen+ = reader.Get

30、Value(0).ToString().Trim(); count = n; else cn.Close(); 5.2.3 换乘查询任意用户登录该公交查询网站均可进行换乘查询。用户可输入出发站和到达站,系统会检测是否存在该站点,若存在则会检测这两个站点是否有直达车,如果没有则会进行一次换乘。该换乘查询界面如图5-4所示: 图5-4 换乘查询图该功能首先从textbox里获取出发站点名StartSite和到达站点名EndSite,然后判断是否存在这两个站点,若不存在,则给出提示,否则,分别搜索包含StartSite、EndSite的路线存于临时数组StartSiteLineId和EndSiteL

31、ineId中。分两种情况讨论,1.直达,遍历两条线路的所有组合,判断,如果存在路线相同的,则表示可直达。2.需换乘一次,在遍历两条线路的所有组合的前提下,若经过StartSite的路线中有和经过EndSite的路线有相同的站点,则表示可换乘一次到达。主要实现代码如下:/count用于记录方案个数 其中 -1表示不存在StartSite站点,-2表示不存在EndSite -3表示直达/ Linem, m是表示换成的方案个数的,Linem,0 车次1,Linem,1 StartSite到中转站点的站数, Linem,2中转站点 ,Linem,3车次2 ,Linem,4中转站点到EndSite的站数

32、 public void GetSiteLineHuanCheng(string, Line, string StartSite, string EndSite, ref int count) int StartSiteLineId = new int21;/记录包含StartSite的路线 int EndSiteLineId = new int21;/记录包含EndSite的路线 SqlConnection cn = createConnection(); cn.Open(); /判断是否存在StartSite站点 string str = select count(*) from site

33、 where sitename = + StartSite + ; SqlCommand cmd = new SqlCommand(str, cn); if (Convert.ToInt32(cmd.ExecuteScalar().ToString() = 0) count = -1; cn.Close(); return; /判断是否存在EndSite站点 cmd.CommandText = select count(*) from site where sitename = + EndSite + ; if (Convert.ToInt32(cmd.ExecuteScalar().ToSt

34、ring() = 0) count = -2; cn.Close(); return; /搜索包含StartSite的路线 int i = 0; int j = 0; for (j = 0; j 0) StartSiteLineIdi+ = linej; StartSiteLineIdi = -1;/用于终止判断 /搜索包含EndSite的路线 i = 0; j = 0; for (j = 0; j 0) EndSiteLineIdi+ = linej; EndSiteLineIdi = -1;/用于终止判断 /当两个站点处于同一条路线时,即直达 for (i = 0; i 20 & Star

35、tSiteLineIdi != -1; i+) for (j = 0; j 20 & EndSiteLineIdj != -1; j+) if (StartSiteLineIdi = EndSiteLineIdj) count = -3; Line0, 0 = StartSiteLineIdi.ToString().Trim();/记录第几路车 cmd.CommandText = select cixu from Line + Line0, 0 + where SiteName= + EndSite + ;/获得EndSite的次序 int end = Convert.ToInt32(cmd.

36、ExecuteScalar().ToString(); cmd.CommandText = select cixu from Line + Line0, 0 + where SiteName= + StartSite + ;/获得StartSite的次序 int start = Convert.ToInt32(cmd.ExecuteScalar().ToString(); Line0, 1 = Math.Abs(end - start).ToString(); cn.Close(); return; int k = 0;/用于记录当前的方案个数,用于数组Linek, /用于判断换乘的,换乘一次

37、 for (i = 0; i 20 & StartSiteLineIdi != -1 & k 8; i+) int startsite = new int35;/用于记录每条路线的站点id cmd.CommandText = select siteid from Line + StartSiteLineIdi + ; SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) int num = 0; while (reader.Read() startsitenum+ = Convert.ToInt32(reader.GetValue(0).ToString().Trim(); startsitenum = -1; reader.Close(); for (j = 0; j 20 & EndS

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁