公交查询系统—数据库课程设计分析研究方案
公交查询系统分析和设计
目录一、需求分析 (2)1.系统目标 (2)2.系统功能需求 (2)功能描述: (2)对性能的一般性规定: (3)3.数据流图 (3)1)系统的上下文数据流图(如图1) (3)2)客户查询的数据流图(如图2) (4)4.数据字典 (5)二、系统的概念模型: (6)三、将概念模型转换成关系模型 (8)1.将E-R模型转换为关系模式 (8)2.数据库表结构设计: (10)3.实现数据完整性: (12)一、需求分析1.系统目标实现一个公交车查询系统,完成通过车次、站点、起点和终点查询来选择合适的乘车方案的功能。
2.系统功能需求本系统的用户包括用户和管理员两类,其中管理人员对此系统进行数据的修改、删除、查找、添加路线以及发布公交动态等功能。
而用户则可运用本系统合理有效的查询路线、安排行程。
功能规划:本系统有两大功能:查询功能以及更新维护功能。
其中查询功能包括站站查询功能、车次查询功能、公交站点车次查询三项基本功能。
功能描述:a.站站查询:乘客通过输入起点和终点的站名,那么通过这两个车站的所有车次就会显示出来供乘客选择合适的乘车路线b.车次查询:乘客通过输入公交车车次就可以查询出该车次经过的所有站点,乘客可以根据站点来选择自己的乘车路线c.公交站点车次查询:这种方案一般针对不城市公交不熟悉的人,通过输入站点或者车次就可以同时显示站点和车次两种信息,根据这个就可以选出最佳的乘车方案。
d.更新维护:管理员负责对公交路线修改和更新,以及系统的维护,同时公布最新的变动信息(包括车次变动和价格变动等)或者有关城市公交的新闻对性能的一般性规定:1灵活性:当要对系统进行添加数据或删除、更新等操作时,可以容易地对系统进行操作,并且不影响系统的正常运行,更不会有任何出错的现象。
2数据精确度:因为此数据为系统内部数据,所以要求不能有误差。
3时间特性:系统应有即时性,能尽快查询出所需结果。
3.数据流图公交查询系统的简单信息流如下:1)系统的上下文数据流图(如图1)图1公交查询系统的上下文数据流图2)客户查询的数据流图(如图2)图2公交查询系统的数据流图4.数据字典数据项名:客户说明:使用本系统的人类型:char长度:10数据流名:站点信息说明:将经过指定车次的站点名全部列出来来自过程:无流至过程:查询处理数据流名:车次站点信息说明:记录公交车经过的个站点名和各站点所具有的公交车次来自过程:无流至过程:查询处理处理过程:查询说明:显示合适的公交站点和车次输出:起点和终点所有路线或者公交车次所有站点处理过程:查询验错说明:当查询不到输入的站点或者车次是启用此功能,若验证错误,则返回客户文件:各站点详述信息说明:列出经过某站点的所有车次大小:100M文件:各次公交车描述信息说明:列出某车次的车所经过的所有站点大小:100M文件:各个站点所经过的公交描述信息说明:将站点和车次结合给出,使信息更加完善大小:200M二、系统的概念模型:上图是公交查询系统的概念模型的E/R图,该系统涉及的实体集有:a.公交车次实体集:具有属性公交车次ID、起点和重点站、线路名称、首末班车时间、普通票价、空调票价和可用IC卡类型。
公交查询系统的设计_课程设计材料
指导教师签字
系主任签字
年 月 日
课程设计评审表
指导教师评语
成绩
评定
指导教师签字:
年 月 日
答辩教师评语
成绩
评定
答辩教师签字:
年 月 日
二级学院工作小组意见
成绩
评定
二级学院领导签字(盖章):
年 月 日
课程设计材料
(2016-----2017学年度 第一学期)
题 目:公交查询系统的设计
学生姓名:
学生学号:1608220203
专 业:
班 级:
指导教师:
学院制
二0一六年十月十五日
课程设计任务书
学 号
1608220203
学生姓名
专业(班级)
题目
公交查询系统的设计
设
计
技
术
参
数
选择Visual Studio,选择查询信息。并且运用GDI+编程绘制,利用C#语言作为前台编程,对前台进行相应的编写和实现
设
计
要
求
在Visual Studio平台开发一个基于C#的对用户查询公交信息的查询软件
工
作
量
两周左右
工
作
计
划
首先设计查询面板的样式和信息内容,将具体信息录入数据库,转换对数据库信息的读取,通过主外键的约束确定系统表的信息
参
考
资
料
[1]周之英.现代软件工程[M].北京:科学出版社,2000
[2]Jesse Liberty.Programming C#中文版[M].北京:电子工业出版社,2006
公交查询系统的最佳乘车方案研究与设计(包含程序)
公交查询系统的最佳乘车方案研究与设计
【摘要】
本文将站点实体间的线路选择抽象为图论最短路模型采用 0-1 整数规划表述。建 立直达数据库 Q 作为数据基库,根据用户需求建立不同目标的 0-1 规划模型运用邻接 算法与 Lingo 分别求解,最终方案集通过多目标分层序列排序输出到用户终端。 第一问,在数据处理阶段将直行、环行线路分别抽象为 2、4 条路线(见 5.0)。建 立查询系统时考虑服务器要同时响应多个请求,计算任务繁重,采用空间换取时间的 策略,先建立站点至站点直达数据库 Q 来描述两两可直达站点的所有线路,用户查询 时,系统首先查询 Q,得到所有直达车方案。 在没有直达车情况下,针对不同用户需求,目标考虑:转乘次数、总耗时、总费 用、转站车辆是否始发、转乘站点负载量;在 Q 的基础上,量化不同目标为有向赋权 图的不同权矩阵(见 5.2.0),以所求顶点 u 到顶点 v 的路径是否包含 xij 弧为决策变量, 上述 5 项用户需求为目标,始、终点连通为约束建立 0-1 整数线性规划模型(见 5.2.3 模型Ⅰ)。 为了能够为用户提供多种备选方案, 我们首先使用基于 Dijkstra 的邻接算法求解, 得到不同目标下的多种优化方案;对于邻接算法不易求解的多次转乘最优方案,我们 采用 Lingo 软件直接求得全局最优解; 两种方法求解步骤见(5.3.1), 综合方案集见(5.3.2 表 1.1~1.6),其中 6 条线路时间最短目标分别为 67、102、106、62、105、49(分钟); 两种求解方法的优劣在 5.4 中给出了详细评价。 第二问考虑公汽与地铁混排方案,首先把各地铁站点 Di 和周围的公汽站点集 R( si ) 抽象为同一新站点 S k ,把已知公汽线路到达 R( si ) 都映射到 S k ,计算新直达数据 库 Q D ,再结合地铁的费用与地汽换乘等待时间就可以把地铁线与公汽线结合,建立 多目标 0-1 整数线性规划模型(见 6.2.3 模型Ⅱ);对于转乘次数少于等于 2 次的方案仍 可通过邻接算法求解;对于邻接算法不易求解的多次转乘最优方案,虽然模型规模较 大但约束与目标线性程度较好,还可用 Lingo 软件求解得出 6 条线路的全局最优解; 综合方案集(见 6.3.2 表 2.1~2.6), 其中 6 条线路时间最短目标分别为 65、 102、 98、 56.5、 89.5、30(分钟);随后我们在 6.4 与 6.5 中给出了模型具体的评价与应用。 第三问综合考虑所有站点间步行与乘车情况,将其抽象为最短路问题下的叠加有 向赋权图,在此基础上以换乘次数为主要约束,以总行程时间(包括步行)最短、转站 车辆始发数最大、转乘站点负载量最小、费用最低为目标,建立多目标 0-1 整数线性 规划模型(见 7.3 模型Ⅲ),并给出了求解的一般步骤与算法。 最后本文还对实现查询系统的具体方案给出了建议,对各模型在实际中的应用价 值进行了详细讨论,并提出了改进方案。
公交信息查询系统课程设计
公交信息查询系统课程设计一、课程目标知识目标:1. 让学生理解公交信息查询系统的基本原理和功能。
2. 使学生掌握运用编程语言设计简单的公交信息查询系统。
3. 帮助学生了解数据结构在公交信息查询系统中的应用。
技能目标:1. 培养学生运用所学知识,独立设计并实现一个简单的公交信息查询系统。
2. 提高学生分析问题、解决问题的能力,学会运用编程语言解决生活中的实际问题。
3. 培养学生的团队协作能力,学会在项目中进行有效沟通和分工。
情感态度价值观目标:1. 培养学生关注社会热点问题,关心公共交通事业发展。
2. 引导学生树立环保意识,倡导绿色出行。
3. 培养学生勇于尝试、不断探索的精神,增强自信心。
课程性质:本课程为信息技术学科课程,结合编程语言、数据结构等知识,以项目为导向,培养学生实际操作能力和团队协作能力。
学生特点:六年级学生,已具备一定的信息技术基础,对编程有一定了解,好奇心强,善于合作。
教学要求:结合学生特点,注重理论与实践相结合,关注学生个体差异,提高学生的实践操作能力和创新能力。
在教学过程中,注重引导学生关注社会问题,培养其社会责任感。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提高解决问题的能力。
二、教学内容1. 理论知识:- 计算机编程基础:变量、数据类型、控制结构等。
- 数据结构:数组、链表、树等在公交信息查询系统中的应用。
- 算法:排序、查找等算法在公交信息查询系统中的运用。
2. 实践操作:- 利用编程语言(如Python)设计并实现一个简单的公交信息查询系统。
- 分析并解决实际项目中遇到的问题,如数据存储、查询优化等。
3. 教学大纲:- 第一周:介绍公交信息查询系统基本原理,学习编程基础。
- 第二周:学习数据结构,分析公交信息查询系统中可能用到的数据结构。
- 第三周:学习算法,探讨如何优化公交信息查询系统。
- 第四周:实践操作,分组进行项目开发,设计并实现公交信息查询系统。
公交查询系统实验报告
目录1 公交查询系统需求分析 .................................................. 错误!未定义书签。
1.1开发背景 .............................................................. 错误!未定义书签。
1.2系统主要业务分析(对系统业务进行描述,可画数据\业务流图)错误!未定义书签。
1。
2.1 个人帐户管理业务分析...................................................... 错误!未定义书签。
1.2。
2 转账管理业务分析.............................................................. 错误!未定义书签。
1。
2.3 缴费管理业务分析.............................................................. 错误!未定义书签。
1.2。
4 支付管理业务分析.............................................................. 错误!未定义书签。
1。
2。
5 投资理财管理业务分析................................................... 错误!未定义书签。
1。
2.6 信息通知管理业务分析...................................................... 错误!未定义书签。
1.2。
7 挂失管理业务分析.............................................................. 错误!未定义书签。
1.2。
8 系统安全管理业务分析...................................................... 错误!未定义书签。
公交查询系统课程设计
一.可行性分析报告 (3)1.引言 (3)2.可行性研究的前提 (3)3.对现有系统的分析 (5)4.所建议的系统的可行性分析 (6)5.经济可行性分析 (7)6.法律方面的可行性 (7)7.结论 (7)二.需求分析 (7)1.引言 (7)2.信息描述 (7)3.功能描述 (9)4.性能需求 (10)5.开发工具与开发环境 (11)三.概要分析 (11)1.结构系统 (11)2..数据库表 (12)3.个人总结 (13)四.详细设计 (13)1.线路查询模块的设计 (13)2.站点查询模块的设计 (15)3.站站查询模块的设计 (16)五.单元测试 (17)1.测试方案 (17)2.测试项目 (17)一、可行性分析报告1.引言1.1编写目的随着我国经济的高速发展,人们生活水平的提高,越来越多的人开始热衷于到外地旅游。
那么对于这些外来旅游者,首先搞清这个城市的公交路线显的很重要!因此,开发一个城市的公交车查询系统就显得十分必要。
1.2背景所开发的软件系统名称:公交车查询系统。
1.3定义本系统是在完成《软件工程》课程后,在老师的的指导下由本人独立所完成的,系统中可能还存在不少待完善的地方,因此仅能做为自己研究所用。
1.4参考资料《软件工程》钱乐秋、赵文耘、牛军钰编著清华大学出版社2.可行性研究的前提2.1要求所开发的公交车查询系统可以向公交车用户提供公交的相关信息查询,可以根据公交线路,公交停靠的站点提供详细的公交的信息,并且提供最短的路程以及所花费的最短的时间。
而且能够提供在线更新,以便此系统能够更好的发挥作用。
公交查询系统的流程图:在安全与保密方面的要求;用户做为非管理员只能查询公交的相关信息。
而管理员则可以对其中的公交线路、站点做一些删改。
当然本系统只站在用户的角度来研究。
2.2目标2.3条件、假定和限制本系统做为课题来研究,大多数都是由本人独立完成的,并不需要任何经费的投入,而且并未与法律或是有关政策相抵触。
公交查询系统分析报告
西安市公交查询系统学生姓名:____学号:—专业: 计算机科学与技术班级:_____________目录1 •引言.................................1.1设计目标..............................1.2采取的策略............................1.3设计依据..............................1.4参考资料..............................2 •系统总体结构设计............................2.1系统逻辑结构设计..........................2.2系统物理结构设计..........................3. ..................................................................................... 子系统设计(模块设计)............................4 •数据库系统设计..................4.1设计要求....................4.2数据库设计..................5 .网络通信设计....................5.1设计要求....................5.2网络设计方案..................6. 信息编码设计....................7. 关键技术......................7.1提高查询速度..................7.2系统安全....................8. 系统配置..............................8.1 硬件和网络配置........................8.2 数据库和软件配置.........................9. 限制.................................9.1通信线路选择............................111111246 错误!未定义书签。
公交查询系统的最佳乘车方案研究与设计
公交查询系统的最佳乘车方案研究与设计摘要本文要求设计一个公交线路计算机自助查询系统,针对不同需求的出行者推荐相应的最佳路线。
这是一个多目标决策的网络优化问题,并且随着问题的深入逐层递进,我们建立了三个多目标优化模型解决此问题。
针对问题一,将三种不同的公汽线路抽象化,建立站点间直达线路信息存储元胞结构。
调查分析得出,尽管乘客对公交线路的需求侧重点各有不同,但都包括乘车次数少、时间短、费用少和拥挤程度低,以前三个量为目标,拥挤程度为约束,建立多目标整数规划模型,根据多目标分层序列法,出于对乘客不同需求的考虑,采用3种对每个需求侧重程度不同的策略,利用局部搜索算法,求出6条线路在3种不同策略下的最优线路(最佳线路见表(1)至(3))。
针对问题二,同时考虑公汽与地铁线路,将地铁站点与邻接的公汽站点抽象为同一新站点,重新建立站点间直达线路信息存储元胞结构。
在问题一的基础上增加考虑地铁站对费用、换乘时间和行驶时间的影响,仍然以乘客对线路的三种主要需求为目标,以拥挤程度为约束,建立多目标整数规划模型,利用MATLAB 软件编程求解得到3种不同策略下的最优路线(最佳线路见表(4)至(6))。
针对问题三,增加考虑步行的出行方式,在公汽站点间当站点数目不超过2时,可以以步行代替,从而减少换乘次数。
在此基础上,按换乘次数少、时间短、费用少的顺寻建立多目标整数规划模型,利用MATLAB软件编程求解得到相应的最佳路线。
以线路S1557→S0481和S0148→S0485为例,最佳路线分别为:S1557→步行2站→S2143-L084-S1919-L043-S3077-L273,需3元,92分钟;S0148→步行1站→S3182-L308-S36-L157-S0722→步行1站→S0485,需2元,69分钟。
关键字元胞结构多目标整数规划多目标分层序列法局部搜索算法1.问题重述1.1问题背景传承华夏五千年的文明,梦圆十三亿华夏儿女的畅想,我国人民翘首企盼的第29届奥运会明年8月将在北京举行!在观看奥运的众多方式之中,现场观看无疑是最激动人心的。
公交路线查询系统的设计和实现
公交路线查询系统的设计和实现
目录
1.引言
2.公交路线查询系统分析
公交路线查询系统需求分析
公交路线查询系统功能分析
公交路线查询系统开始使用的技术
公交路线查询系统的可行性
3.公交路线查询系统设计
3.1 公交路线查询系统概要设计
3.2 公交路线查询系统详细设计
4.公交路线查询系统实现
4.1 公交路线查询系统使用相关技术
4.2 公交路线查询系统的具体实现
4.3 公交路线查询系统实现遇到的问题
4.4 公交路线查询系统实现遇到问题解决方案
5.公交路线查询系统测试
5.1 公交路线查询系统测试用例
5.2 公交路线查询系统测试报告
6.小结。
大学课程设计报告公交查询系统的设计-课程设计报告
2016-2017学年第一学期《Windows程序设计》课程设计报告题目:公交查询系统的设计专业:班级:姓名:指导教师:成绩:二0一六年十一月十五日目录1需求分析: (3)2概要设计: (3)2.1设计思想: (3)2.2实现模块: (4)2.2.1普通用户登录,车次查询: (4)2.2.2站站查询: (6)2.2.3两次转车: (10)2.3管理员登录: (12)2.4程序中的创新点: (17)3详细设计: (17)3.1站站查询系统流程图 (17)3.2车次查询系统流程图 (17)3.3 管理员身份登录系统流程图 (18)4测试结果: (18)5小结: (25)6参考文献 (26)1需求分析:随着现在社会的发展,旅游和出差是避免不了的事。
身处一个并不熟悉的城市里,你的出门就会举步维艰。
或许你可以选择坐出租车,但高额的费用并不是一个普通的工薪阶级可以负担的起的。
这时,公交车便成了代步的最佳工具。
因此,开发一个城市的公交车查询系统就显得十分必要,可以说是关系到一个城市的形象问题。
本系统是利用C#语言开发的,结构紧凑、运行速度快、操作简单,更因为拥有自己的源代码,所以保证了软件具有高度的保密、安全性,将帮助出行人士方便、高效的安排自己的行程。
◆该软件为用户提供公交查询的基本功能,用户可以根据需要输入起始地点以及终止地点来查询公交路线。
◆当用户输入起始站时,公交查询系统根据用户输入的起始站和终止站对所有公交线路逐一查询。
若有起始站与终止站存在于同一线路的公交则系统显示出相应的公交线路号,否则,系统显示“没有这路公交车”。
◆如果用户没有找到可以直达的公交路线号,则可以通过中间转车来实现所要到达的地点。
中间转车可能会出现转一次不成功需要转两次车的情况。
故系统需要考虑到转一次车和转两次车的问题。
◆该软件还为用户提供了按照车辆编号来查询该编号下的公交车运行时所经过的路线;如果用户输入的车辆编号超过了系统所给的,则提示“数组越界!”,否则给出正确的行车路线。
公交查询系统 数据库课程设计
公交查询系统详细设计说明书一、需求分析1.1系统总功能需求首先需要对公交查询系统进行详细的了解和分析,一个功能完全满足基本需要的系统需要包括以下几个模块:1.1.1公交信息提取功能模块在这个功能模块中,提供了开发者从客运公司获取数据并添加至数据库服务器的途径。
比如在这个模块中可以提取站点的信息,也可以对这些信息做修改、更新。
1.1.2数据库管理功能模块在公交查询系统中,对所有的站点、路线信息都要进行统一管理,数据导入和站点、路线的变更等情况也要进行详细的登记,以便能对整个系统运作有全面的了解,并根据实际情况补充不足的部分。
1.1.3信息查询功能模块在对公交查询系统进行全面信息化管理的过程中,查询是一项非常重要的功能。
比如站点换乘查询、公交路线查询功能、公交站点查询等,这项功能能使用户得到即时乘车得各项信息,方便乘车需求人员根据实际情况选择乘车方式。
1.1.4安全/使用管理功能模块这是任何一个公交查询系统都需要的部分,操作只能由专人进行,只有开发人员和系统管理人员才能拥有权限,特别是数据的导入进度和站点、路线的更改,如果没有安全管理部分,后果难以想象,可能每次登录都需要用户身份的验证。
1.1.5帮助功能模块这是软件不可缺少的部分,为了方便使用者实用软件,应该有一个详细的帮助模块。
公交查询系统的需求功能需求图如图1-1所示。
图1-1 系统功能需求框图1.2基本数据维护功能需求基本数据模块的具体功能如图1-2所示。
基本查询信息包括:(1)站点换乘查询功能;(2)公交线路查询功能;(3)公交站点查询功能。
图1-2 基本数据维护功能需求框图(1)站点的添加,如图1-3所示图1-3 增加站点信息这个功能实现把站点信息输入到数据库中,站点信息包括站点号、站点名、站点的首写字母。
(2)站点的修改,如图1-4所示,这个功能实现把站点信息修改后输入到数据库中。
(前置条件:已存在站点)图1-4修改站点信息(3)路线的增加,如图1-5所示。
公交查询系统毕业设计调研(开题)报告
公交查询系统毕业设计调研(开题)报告第一篇:公交查询系统毕业设计调研(开题)报告实习(调研)报告一、课题来源及意义随着改革开放的迅猛展开,中国的交通方式变得越来越完善,公交车几乎可以遍及大城市的每一个角落,在繁华忙碌的大城市里各式各样的公交车成为了其中一道亮丽的风景,错综复杂的公交车线路网让人们的出行,上下班获得了巨大的方便和实惠。
城市公交是专门服务于市民出行的客运企业,它是城市社会和经济活动的重要组成部分。
伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。
城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而成为城市交通的主体。
复杂的交通也给人们的出行带来难题,我国城市公交信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少, 随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。
随着社会的不断发展,互联网已经被千千万万的家庭所接收,网络替人们解决了如何找到快速、便捷的道路通往目的地这个问题。
网络的生活化使得很多的事情无需远行,就能够很快的解决,生活上的信息很多都能从网络中获得。
海量信息是现代网络的特点,在海量的公交线路和公交站点中提取出想要的公交车信息就需要一个公交车信息管理系统。
通过这样的系统,可以使人们方便、快捷的查询到所需要的交通信息,从而节省时间,提高效率。
公交信息管理系统作为城市公众信息服务平台的一部分,它的建立不仅为广大公众的出行提供所需的公交信息,而且对于缓解城市的交通压力和降低城市的环境污染都有很大意义。
近年来,由于计算机编程技术和Internet技术的发展,国内外各大城市纷纷推出了基于Internet的城市公交查询系统。
这些查询系统的推出为人们获得所需的公交信息提供了方便。
但鉴于当时技术和开发人员自身能力的限制,这些公交查询系统都或多或少地存在着一些问题。
公交查询系统报告资料
北京化工大学北方学院课程设计报告
课程名称数据结构课程设计
设计题目公交查询系统
专业、班级软件工程0901 学号 090203018 姓名高博
指导教师周建敏老师
设计时间2012年9月10日-2012年9月23日
2012 年9 月25 日
1 2
3
*Kij
(3)查看所有线路的情况。
由于数据太多,近500多条线路,所以一开始会出现类似闪屏
(5)接下来进入乘客菜单,先输入乘客想查询的起点和终点。
(7)然后乘客可以选择查看需要换乘多次的所有路线,结果如下。
(9)如果此时乘客担心时间最快的路线人数太多,会拥挤,可以选择查看几条最快线路。
公交路线查询系统数据库设计方案
1. 公交车路线信息在数据库中的存储方式显然,如果在数据库中简单的使用表bus_route(路线名,路线经过的站点,费用>来保存公交车路线的线路信息,则很难使用查询语句实现乘车线路查询,因此,应该对线路的信息进行处理后再保存到数据库中,考试大使用的方法是用站点-路线关系表stop_route(站点,路线名,站点在路线中的位置>来存储公交车路线,例如,如果有以下3条路线R1:S1->S2->S3->S4->S5R2:S6->S7->S2->S8R3:S8->S9->S10则对应的站点-路线关系表stop_route为Stop Route PositionS1 R1 1S2 R1 2S3 R1 3S4 R1 4S5 R1 5S6 R2 1S7 R2 2S2 R2 3S8 R2 4S8 R3 1S9 R3 2S10 R3 3注:Stop为站点名,Route为路线名,Position为站点在路线中的位置2.直达乘车路线查询算法基于表stop_route可以很方便实现直达乘车路线的查询,以下是用于查询直达乘车路线的存储过程InquiryT0:create proc InquiryT0(@StartStop varchar(32>,@EndStop varchar(32>> asbeginselectsr1.Stop as 启始站点, sr2.Stop as 目的站点, sr1.Route as 乘坐线路, sr2.Position-sr1.Position as 经过的站点数fromstop_route sr1, stop_route sr2 wheresr1.Route=sr2.Routeand sr1.Position<sr2.Position and sr1.Stop=@StartStopand sr2.Stop=@EndStop end3.查询换乘路线算法(1>直达路线视图直达路线视图可以理解为一张存储了所有直达路线的表(如果两个站点之间存在直达路线,那么在直达路线视图中就有一行与之相对应>create view RouteT0 asselectsr1.Stop as StartStop, --启始站点sr2.Stop as EndStop, --目的站点sr1.Route as Route, --乘坐线路sr2.Position-sr1.Position as StopCount --经过的站点数fromstop_route sr1, stop_route sr2 wheresr1.Route=sr2.Routeand sr1.Position<sr2.Position(2>换乘路线算法显然,一条换乘路线由若干段直达路线组成,因此,基于直达路线视图RouteT0可以很方便实现换乘查询,以下是实现一次换乘查询的存储过程InquiryT1:create proc InquiryT1(@StartStop varchar(32>,@EndStop varchar(32>> asbeginselectr1.StartStop as 启始站点, r1.Route as 乘坐路线1, r1.EndStop as 中转站点, r2.Route as 乘坐路线2, r2.EndStop as 目的站点, r1.StopCount+r2.StopCount as 总站点数fromRouteT0 r1, RouteT0 r2 wherer1.StartStop=@StartStopand r1.EndStop=r2.StartStop and r2.EndStop=@EndStop end同理可以得到二次换乘的查询语句create proc InquiryT2(@StartStop varchar(32>,@EndStop varchar(32>> asbeginselectr1.StartStop as 启始站点, r1.Route as 乘坐路线1, r1.EndStop as 中转站点1, r2.Route as 乘坐路线2, r2.EndStop as 中转站点2, r3.Route as 乘坐路线3, r3.EndStop as 目的站点, r1.StopCount+r2.StopCount+r3.StopCount as 总站点数fromRouteT0 r1, RouteT0 r2, RouteT0 r3 wherer1.StartStop=@StartStopand r1.EndStop=r2.StartStop and r2.EndStop=r3.StartStop and r3.EndStop=@EndStop end(3>.测试exec InquiryT0 ’S1’,’S2’exec InquiryT1 ’S1’,’S8’exec InquiryT2 ’S1’,’S9’运行结果:那么有没有方法可以提高筛选第2段路线的效率呢?答案是肯定的。
公交查询系统的分析报告
目录1.引言.................................................... .. (1)1.1设计目标....................................................11.2采取的策略..................................................11.3设计依据....................................................11.4参考资料....................................................1 2.系统总体结构设计 (1)2.1系统逻辑结构设计 (2)2.2系统物理结构设计 (4)3.子系统设计(模块设计) (6)4.数据库系统设计 (14)4.1设计要求...................................................144.2数据库设计 (15)5.网络通信设计...................................................175.1设计要求...................................................175.2网络设计方案 (17)6.信息编码设计....................................................18 7.关键技术.................................................... . (18)7.1提高查询速度 (18)7.2系统安全...................................................19 8.系统配置.................................................... . (20)8.1硬件和网络配置 (20)8.2数据库和软件配置 (20)9.限制.................................................... .. (20)9.1通信线路选择 (20)9.2数据库在线容量限制 (20)10.组织机构和人员配置 (20)11.参考和引用资料 (20)1.引言1.1设计目标在网络环境的支撑下建立城市公交信息查询系统,实现管理者对车辆信息、站点信息、线路信息、公交新闻、用户建议等进行管理的能力,方便管理者在后台对公交运营情况的掌握和管理,做出未来发展的决策;为用户提供实时更新的公交信息,可以让用户迅速了解准确的公交动态;为用户提供车次查询、站点查询、站站查询三种查询模式,利于用户选择最优的乘车路线及方案,方便用户出行,节约乘车时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计报告班级:序号:姓名:地球科学学院地信系2013-06-28目录数据库课程设计0目录1一、概述21.1背景说明21.2开发环境2二、需求分析22.1用户需求22.2主要功能22.3数据流图22.4数据字典2三、数据库概念结构设计3四、数据库逻辑结构设计14.1 关系表设计14.2 数据表关系图1五、创建数据库及其对象15.1 建数据库和表15.2 查询实现2五、软件功能设计4六、界面设计5七、应用程序57.1 站点查询57.2 线路查询67.3 站—站查询7八、实验数据示例9九、心得10一、概述1.1背景说明软件名称:公交线路查询系统 项目提出者: 项目开发者:用户:广大需要乘坐公交车地人群1.2开发环境操作系统:Windows XP软件配置:visual stutio2010,Microsoft SQLServer 2008 R2数据库配置:Microsoft SQL Server 2008 R2在PC 机中新建数据库,建立各个数据表、关系图.二、需求分析2.1用户需求城市地扩张使得公交线路越来越复杂,为了使得用户更加方便地能够获得最新公交线路,“公交线路查询工具”帮助人们解决这个问题.1nowf 。
本系统面向地对象是普通乘客,对于普通乘客来说,他们最关心地就是查询.系统也只对用户提供信息查询功能,并不对用户开放对数据地编辑权限.对于任何用户,只要浏览本系统地首页,就可以根据自己地需求进行查询.数据地修改、删除、及时更新工作只能由管理人员实现并对系统进行定期地维护,保证其运行地稳定性.2.2主要功能本系统从用户地需求出发,可实现以下功能:1、线路具体情况查询:输入线路名称就可得到该线路地途经站点,发车和末班车时间,票价等相关信息.2、经过此站点地所有路线查询:输入站点名称即可得出经过该站点地所有线路名称.3、站点间地点到点路线查询:输入出发站点和目地站点即可输出可选择地线路,包括中间站地转乘.1、数据项2、数据流3、处理过程三、数据库概念结构设计根据需求分析,可知本系统有以下E-R图:1、公交站点E-R图 3、公交公司E-R图2、公交车E-R图 4、公交线路类型E-R图5、合并E-R图四、数据库逻辑结构设计4.1 关系表设计4.2 数据表关系图五、创建数据库及其对象5.1 建数据库和表下面是创建数据库和表地过程,数据通过手动输入. 1、创建数据库 createdatabase bus on (name ='bus_data1',filename ='C:\Documents and Settings\Administrator\桌面\bus\bus_data1.mdf') log on (name ='bus_log',filename ='C:\Documents and Settings\Administrator\桌面\bus\bus_log.ldf') 2、创建表公交公司表 createtable company (id intprimarykey notnull, name varchar (30)notnull公交线路类型表 createtable bus_type (id intprimarykey notnull, name varchar (5)notnull))公交站点createtable station(id intprimarykey notnull, name varchar(15)notnull ) 公交线路表createtable busline(bus_name varchar(5),direction char(2)notnull,line varchar(200)notnull,primarykey(bus_name,direction), foreignkey(bus_name)references bus(name))公交车表createtable bus(name varchar(5)primarykey notnull,start_time datetime notnull,end_time datetime notnull,buslength int notnull,price float notnull,companyID int notnull,typeID int notnull,foreignkey(companyID)references company(id), foreignkey(typeID)references bus_type(id)) 线路与站点关联表createtable bus_station(bus_name varchar(5),station_id int,orderid int notnull,primarykey(bus_name,station_id),foreignkey(bus_name)references bus(name), foreignkey(station_id)references station(id) )5.2 查询实现这里只介绍线路查询和站站查询地存储过程实现,其它涉及到地功能通过SQLCommand或SqlDataAdapter实现,在后面地应用程序设计中实现.1、线路具体情况查询:if exists(select name from sysobjects where name='busline_info')dropprocedure busline_infogocreateprocedure busline_info@input varchar(5),@output varchar(700)outputasbeginselect@output=linefrom buslinewhere busline.bus_name=@inputendgo2、站点间地点到点路线查询:if exists(select name from sysobjects where name='station_station')dropprocedure station_stationgocreateprocedure station_station@input1varchar(30),@input2varchar(30),@output1varchar(5)output ,@output2varchar(5)output,@output3varchar(5)output,@output4varchar(30)output,@output5varchar (30)outputasbegindeclare@stationID1int,@stationID2int--换乘过程中地中间站点declare@id1int,@id2int--记录起点和终点地IDselect@id1=id from station where name=@input1select@id2=id from station where name=@input2--查找直达线路select@output1=a.bus_namefrom(select bus_name from bus_station where station_id=@id1)a,(select bus_name from bus_station where station_id=@id2)bwhere a.bus_name=b.bus_name--若不存在直达线路,则搜寻一次换乘路线if notexists(select*from bus where name=@output1)begin--查找中间站点select@stationID1=c.station_id from--@input1能直达地站点集合c(selectdistinct station_idfrom bus_stationwhere bus_name in(select bus_name from bus_station where station_id=@id1))c,--@input2能直达地站点集合d(selectdistinct station_idfrom bus_stationwhere bus_name in(select bus_name from bus_station where station_id=@id2))dwhere c.station_id=d.station_idselect@output1=a.bus_namefrom(select bus_name from bus_station where station_id=@id1)a,(select bus_name from bus_station where bus_station.station_id=@stationID1)bwhere a.bus_name=b.bus_nameselect@output2=a.bus_namefrom(select bus_name from bus_station where station_id=@id2)a,(select bus_name from bus_station where bus_ station.station_id=@stationID1)bwhere a.bus_name=b.bus_nameend--若不存在直达和一次换乘线路,则搜寻二次换乘路线if notexists(select*from bus where name=@output1)andnotexists(select*from bus where name=@output2)begin--查找中间线路select@output2=a.bus_namefrom(selectdistinct bus_namefrom bus_stationwhere station_id in(select station_id from bus_stationwhere bus_name in(select bus_name from bus_station where station_id=@id1)))a,(selectdistinct bus_name from bus_stationwhere station_id in(select station_id from bus_station where bus_name in(select bus_name from bus_station where station_id =@id2)))bwhere a.bus_name=b.bus_name--查找起点到中间线路地公交车select@stationID1=a.station_idfrom(selectdistinct station_id from bus_station where bus_name in(select bus_name from bus_station where st ation_id=@id1))a,(select station_id from bus_station where bus_name=@output2)bwhere a.station_id=b.station_idselect@output1=c.bus_namefrom(select bus_name from bus_station where station_id=@id1)c,(select bus_name from bus_station where station_id=@stationID1)dwhere c.bus_name=d.bus_name--查找中间线路到终点地公交车select@stationID2=a.station_idfrom(selectdistinct station_id from bus_station where bus_name in(select bus_name from bus_station where st ation_id=@id2))a,(select station_id from bus_station where bus_name=@output2)bwhere a.station_id=b.station_idselect@output3=c.bus_namefrom(select bus_name from bus_station where station_id=@id2)c,(select bus_name from bus_station where station_id=@stationID2)dwhere c.bus_name=d.bus_nameendselect@output4=name from station where id=@stationID1select@output5=name from station where id=@stationID2end五、软件功能设计软件共实现了3个大功能,即站点查询、线路查询、站站查询,其完成情况如下:(一):检查用户是否输入了站点或线路信息,如果没有录入,则提示:请输入站点!或请输入线路名!(二):检查用户是否输入地站点或线路是否存在,如果不存在,则提示:此站点不存在!或此线路不存在!(三):如果信息都填写正确,则根据选定地查询条件进行查找,查找地具体实现为:(1)站点查询:返回经过此站点地所有线路,并提供一条线路经过地所有站点.如果没有结果,则提示:找不到此站点!(2)线路查询:返回此线路地类型、最早和最晚时间、票价、经过站点等信息.(3)站站查询:返回从起点到终点地可行地一条线路,此线路可直达,如果没有直达,则最多换乘两次,并提示在哪里下车换乘,以及所有车辆地站点信息.六、界面设计七、应用程序7.1 站点查询//查询经过给定站点地公交线路protectedvoid station_info(string input){SqlConnection myConnection = new SqlConnection(connectionString);myConnection.Open();SqlCommand cmd = new SqlCommand("select bus_station.bus_name as 公?交?线?路¡¤名?,busline.direction as 方¤?向¨°,line as 途ª?径?站?点Ì? from bus_station,station,busline where = '" + input + "'and dbo.station.id = bus_station.station_id andbus_station.bus_name = busline.bus_name", myConnection);SqlDataAdapter da = new SqlDataAdapter();da.SelectCommand = cmd;System.Data.DataSet ds = new System.Data.DataSet();da.Fill(ds);this.GridView1.DataSource = ds.Tables[0];GridView1.DataBind();cmd = null;myConnection.Close();}7.2 线路查询//查询给定线路地公交车所经过站点protectedstring busline_info1(string input){string connectionString = @"server=TXJM1FW3L1GYIC6;database = bus;Integrated Security = true";SqlConnection myConnection = new SqlConnection(connectionString);myConnection.Open();SqlCommand myCommand = new SqlCommand("busline_info", myConnection);mandType = mandType.StoredProcedure;//创建参数SqlParameter bus_name = new SqlParameter("@input", System.Data.SqlDbType.VarChar, 5);bus_name.Direction = System.Data.ParameterDirection.Input;bus_name.Value = input;myCommand.Parameters.Add(bus_name);//添加输出参数SqlParameter Result1 = new SqlParameter("@output", System.Data.SqlDbType.VarChar, 700);Result1.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result1);myCommand.ExecuteNonQuery();string str = Result1.Value.ToString();return str;}7.3 站—站查询//查询给定起点和终点地公交车线路protectedvoid station_station(string input1, string input2){string connectionString = @"server=TXJM1FW3L1GYIC6;database = bus;Integrated Security = true";SqlConnection myConnection = new SqlConnection(connectionString);myConnection.Open();//利用SQL中已有地存储过程实现站站查询SqlCommand myCommand = new SqlCommand("station_station", myConnection);mandType = mandType.StoredProcedure;//创建参数SqlParameter station_name1 = new SqlParameter("@input1", System.Data.SqlDbType.VarChar, 30);station_name1.Direction = System.Data.ParameterDirection.Input;station_name1.Value = input1;myCommand.Parameters.Add(station_name1);SqlParameter station_name2 = new SqlParameter("@input2", System.Data.SqlDbType.VarChar, 30);station_name2.Direction = System.Data.ParameterDirection.Input;station_name2.Value = input2;myCommand.Parameters.Add(station_name2);//添加输出参数SqlParameter Result1 = new SqlParameter("@output1", System.Data.SqlDbType.VarChar, 5);Result1.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result1);SqlParameter Result2 = new SqlParameter("@output2", System.Data.SqlDbType.VarChar, 5);Result2.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result2);SqlParameter Result3 = new SqlParameter("@output3", System.Data.SqlDbType.VarChar, 5);Result3.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result3);SqlParameter Result4 = new SqlParameter("@output4", System.Data.SqlDbType.VarChar, 30);Result4.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result4);SqlParameter Result5 = new SqlParameter("@output5", System.Data.SqlDbType.VarChar, 30);Result5.Direction = System.Data.ParameterDirection.Output;myCommand.Parameters.Add(Result5);myCommand.ExecuteNonQuery();string str1, str2, str3, str4, str5;str1 = Result1.Value.ToString();str2 = Result2.Value.ToString();str3 = Result3.Value.ToString();str4 = Result4.Value.ToString();str5 = Result5.Value.ToString();myConnection.Close();//界面提示信息if (str1 == "" && str2 == "" && str3 == ""){lab4_text.Text = "没有找到合适地路线";} elseif (str1 != "" && str2 != "" && str3 == ""){lab4_text.Text = "您可以先乘坐 "+ str1 + " 在 "+ str4 + " 下车,"+ " 再乘坐 "+ str2;lab5_name.Text = str1 + " 公交线路:";lab5_line.Text = busline_info1(str1);lab6_name.Text = str2 + " 公交线路:";lab6_line.Text = busline_info1(str2);}elseif (str1 != "" && str2 == "" && str3 == ""){lab4_text.Text = "您可以直接乘坐 " + str1;lab5_name.Text = str1 + " 公交线路:";lab5_line.Text = busline_info1(str1); }elseif (str1 != "" && str2 != "" && str3 != ""){lab4_text.Text = "您可以先乘坐 " + str1 + " 在 " + str4 + " 下车," + " 再乘坐 " + str2 + "在 " + str5 + " 下车," + " 最后再转乘 " + str3 + "即可";lab5_name.Text = str1 + " 公交线路:";lab5_line.Text = busline_info1(str1);lab6_name.Text = str2 + " 公交线路:";lab6_line.Text = busline_info1(str2);lab7_name.Text = str3 + " 公交线路:";lab7_line.Text = busline_info1(str3);}}八、实验数据示例1、bus表(存放公交车次有关信息数据)2、bus_type表(存放公交车类型数据)3、bus_type表(存放公交公司数据)4、bus_station表(存放公交线路上地各个站点)5、station表(存放公交站点数据)6、bus_line表(存放公交线路,便于站点查询)九、心得通过这次为期2个星期地数据库地课程设计实习,我从中学习到了一个数据库程序地设计地基本步骤,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计等,同时加强了关系型数据库管理方面地部分知识.B6JgI。