ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:1.33MB ,
资源ID:6754467      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6754467.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(公交查询系统数据库课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

公交查询系统数据库课程设计报告.docx

1、公交查询系统数据库课程设计报告公交查询系统数据库课程设计报告数据库课程设计报告 班级:序号: 姓名: 地球科学学院地信系2013-06-28一、概述1.1背景说明软件名称:公交线路查询系统 项目提出者: 项目开发者: 用户:广大需要乘坐公交车的人群 1.2开发环境操作系统:Windows XP软件配置:visual stutio2010,Microsoft SQL Server 2008 R2数据库配置:Microsoft SQL Server 2008 R2在PC机中新建数据库,建立各个数据表、关系图。二、需求分析2.1用户需求城市的扩张使得公交线路越来越复杂,为了使得用户更加方便地能够获得

2、最新公交线路,“公交线路查询工具”帮助人们解决这个问题。本系统面向的对象是普通乘客,对于普通乘客来说,他们最关心的就是查询。系统也只对用户提供信息查询功能,并不对用户开放对数据的编辑权限。对于任何用户,只要浏览本系统的首页,就可以根据自己的需求进行查询。数据的修改、删除、及时更新工作只能由管理人员实现并对系统进行定期的维护,保证其运行的稳定性。2.2主要功能本系统从用户的需求出发,可实现以下功能: 1、线路具体情况查询:输入线路名称就可得到该线路的途经站点,发车和末班车时间,票价等相关信息。2、经过此站点的所有路线查询:输入站点名称即可得出经过该站点的所有线路名称。3、站点间的点到点路线查询:

3、输入出发站点和目的站点即可输出可选择的线路,包括中间站的转乘。2.3数据流图2.4数据字典1、数据项名称数据类型长度字段描述namevarchar5公交车的名称start_timetime8公交车每天的最早发车时间end_timetime8公交车每天的收班时间buslength1int2公交线路去程的站点数buslength2int2公交线路回程的站点数pt_pricefloat3普通车的票价gd_pricefloat3高等级车的票价disprice_ptfloat3普通车刷卡后的价格disprice_gdfloat3高等级车刷卡后的价格companyIDint1公司编号company_nam

4、evarchar30公司名称station_idint3站点的编号station_namevarchar30站点的名称orderidint2站点在一条线路中的位置typeIDint2线路类型编号,共12类type_namevarchar5线路类型名directionchar4公交行驶方向,“去程”或“回程”linevarchar500公交行驶途径的站点2、数据流名称说明数据流来源数据流去向用户查询公交线路记录信息记录公交车线路查询信息线路+站点查询结果输出3、处理过程名称简述输入的数据流处理输出的数据流线路查询根据公交线路查询该线路上的所有站点公交车编号根据编号查询查询出该线路上的所有公交车站

5、点站点查询根据站点查询出经过该站点的所有公交车编号站点名称根据站点查询公交车的编号路过该站点的所有公交车编号站站查询根据两个站点查询出所有线路两个不同的站点根据站点查询出所有线路输出查询出的线路三、数据库概念结构设计根据需求分析,可知本系统有以下E-R图:1、公交站点E-R图 3、公交公司E-R图2、公交车E-R图 4、公交线路类型E-R图5、合并E-R图四、数据库逻辑结构设计4.1 关系表设计根据ER模型,对本系统设计出5个关系表:1、公交车表bus(name,start_time,end_time,buslength1,buslength2,pt_price, dis_price,gd_p

6、rice,company_id,type_id)列名数据类型NULL约束说明namevarchar(5)not nullprimary key公交车的名称start_timetimenot null最早发车时间end_timetimenot null收班时间buslength1intnot null去程的站点数buslength2intnot null回程的站点数pt_pricefloatnull普通车的票价disprice_ptfloatnull普通车刷卡gd_pricefloatnull高等级车的票价disprice_gdfloatnull高等级车刷卡companyIDintnot nul

7、lforeign key references company(id),typeIDintnot nullForeignkey references bus_type(id)2、公交站点station(id,name)列名数据类型NULL约束说明idintnot nullprimary key站点的编号namevarchar(30)not null站点的名称3、线路与站点关联表bus_station(bus_name,station_id,orderid)记录公交线路经过站点的信息,并且按顺序记录各站点,以此记录线路与站点的关联信息。列名数据类型NULL约束说明bus_namevarchar(

8、5)not nullprimary key参照bus(name)station_idintnot null参照station(id)orderidintnot null站点在一条线路中的位置4、公交公司表company(id,name)列名数据类型NULL约束说明idintNot nullprimary key公司编号nameVarchar(5)Not null公司名称5、公交线路类型表bus_type(id,name)列名数据类型NULL约束说明idintNot nullprimary key线路类型编号,共12类nameVarchar(10)Not null线路类型名6、公交线路表busl

9、ine(bus_name,direction,line) 此表主要是为了方便依据线路来查询站点信息。 列名数据类型NULL约束说明bus_namevarchar(4)Not nullprimary key公司编号directionvarchar(4)Not null公交行驶方向,“去程”或“回程”linevarchar(500)Not null公交行驶途径的站点4.2 数据表关系图五、创建数据库及其对象5.1 建数据库和表下面是创建数据库和表的过程,数据通过手动输入。1、创建数据库create database buson(name = bus_data1,filename = C:Docum

10、ents and SettingsAdministrator桌面busbus_data1.mdf)log on(name = bus_log,filename = C:Documents and SettingsAdministrator桌面busbus_log.ldf)2、创建表公交公司表create table company(id int primary key not null,name varchar(30) not null)公交线路类型表create table bus_type(id int primary key not null,name varchar(5) not nu

11、ll)公交站点create table station(id int primary key not null,name varchar(15) not null)公交线路表create table busline(bus_name varchar(5),direction char(2) not null,line varchar(200) not null,primary key(bus_name,direction), foreign key(bus_name) references bus(name)公交车表create table bus(name varchar(5) primar

12、y key not null,start_time datetime not null,end_time datetime not null,buslength int not null,price float not null,companyID int not null,typeID int not null,foreign key(companyID) references company(id),foreign key(typeID) references bus_type(id)线路与站点关联表create table bus_station(bus_name varchar(5),

13、station_id int,orderid int not null,primary key(bus_name,station_id), foreign key(bus_name) references bus(name),foreign key(station_id)references station(id)5.2 查询实现这里只介绍线路查询和站站查询的存储过程实现,其它涉及到的功能通过SQLCommand或SqlDataAdapter实现,在后面的应用程序设计中实现。1、线路具体情况查询:if exists(select name from sysobjects where name

14、= busline_info) drop procedure busline_infogocreate procedure busline_info input varchar(5),output varchar(700) outputasbegin select output = line from busline where busline.bus_name = input end go2、站点间的点到点路线查询:if exists(select name from sysobjects where name = station_station) drop procedure statio

15、n_stationgocreate procedure station_station input1 varchar(30),input2 varchar(30), output1 varchar(5) output,output2 varchar(5) output,output3 varchar(5) output,output4 varchar(30) output,output5 varchar(30) outputasbegin declare stationID1 int,stationID2 int -换乘过程中的中间站点 declare id1 int,id2 int -记录起

16、点和终点的ID select id1 = id from station where name = input1 select id2 = id from station where name = input2 -查找直达线路 select output1 = a.bus_name from (select bus_name from bus_station where station_id = id1 ) a, (select bus_name from bus_station where station_id = id2 ) b where a.bus_name = b.bus_name

17、-若不存在直达线路,则搜寻一次换乘路线 if not exists(select * from bus where name = output1) begin -查找中间站点 select stationID1 = c.station_id from -input1能直达的站点集合c ( select distinct station_id from bus_station where bus_name in(select bus_name from bus_station where station_id = id1 ) c, -input2能直达的站点集合d ( select distin

18、ct station_id from bus_station where bus_name in(select bus_name from bus_station where station_id = id2) d where c.station_id= d.station_id select output1 = a.bus_name from (select bus_name from bus_station where station_id = id1 ) a, (select bus_name from bus_station where bus_station.station_id =

19、 stationID1 ) b where a.bus_name = b.bus_name select output2 = a.bus_name from (select bus_name from bus_station where station_id = id2) a,(select bus_name from bus_station where bus_station.station_id = stationID1 ) b where a.bus_name = b.bus_name end -若不存在直达和一次换乘线路,则搜寻二次换乘路线 if not exists(select *

20、 from bus where name = output1) and not exists(select * from bus where name = output2) begin -查找中间线路 select output2 = a.bus_name from (select distinct bus_name from bus_station where station_id in(select station_id from bus_station where bus_name in(select bus_name from bus_station where station_id

21、= id1)a, (select distinct bus_name from bus_station where station_id in (select station_id from bus_station where bus_name in(select bus_name from bus_station where station_id = id2)b where a.bus_name = b.bus_name -查找起点到中间线路的公交车 select stationID1 = a.station_id from (select distinct station_id from

22、bus_station where bus_name in(select bus_name from bus_station where station_id = id1)a, (select station_id from bus_station where bus_name = output2) b where a.station_id = b.station_id select output1 = c.bus_name from (select bus_name from bus_station where station_id = id1 ) c, (select bus_name f

23、rom bus_station where station_id = stationID1) d where c.bus_name = d.bus_name -查找中间线路到终点的公交车 select stationID2 = a.station_id from (select distinct station_id from bus_station where bus_name in(select bus_name from bus_station where station_id = id2)a, (select station_id from bus_station where bus_

24、name = output2) b where a.station_id = b.station_id select output3 = c.bus_name from (select bus_name from bus_station where station_id = id2 ) c, (select bus_name from bus_station where station_id = stationID2) d where c.bus_name = d.bus_name end select output4 = name from station where id = statio

25、nID1 select output5 = name from station where id = stationID2end 五、软件功能设计软件共实现了3个大功能,即站点查询、线路查询、站站查询,其完成情况如下:(一):检查用户是否输入了站点或线路信息,如果没有录入,则提示:请输入站点!或请输入线路名!(二):检查用户是否输入的站点或线路是否存在,如果不存在,则提示:此站点不存在!或此线路不存在!(三):如果信息都填写正确,则根据选定的查询条件进行查找,查找的具体实现为: (1)站点查询:返回经过此站点的所有线路,并提供一条线路经过的所有站点。 如果没有结果,则提示:找不到此站点! (2

26、)线路查询:返回此线路的类型、最早和最晚时间、票价、经过站点等信息。 (3)站站查询:返回从起点到终点的可行的一条线路,此线路可直达,如果没有直达,则最多换乘两次,并提示在哪里下车换乘,以及所有车辆的站点信息。六、界面设计七、应用程序7.1 站点查询/查询经过给定站点的公交线路 protected void station_info(string input) SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open(); SqlCommand cmd = new SqlCommand

27、(select bus_station.bus_name as 公?交?线?路名?,busline.direction as 方?向,line as 途?径?站?点? from bus_station,station,busline where station.name = + input + and dbo.station.id = bus_station.station_id and bus_station.bus_name = busline.bus_name, myConnection); SqlDataAdapter da = new SqlDataAdapter(); da.Sel

28、ectCommand = cmd; System.Data.DataSet ds = new System.Data.DataSet(); da.Fill(ds); this.GridView1.DataSource = ds.Tables0; GridView1.DataBind(); cmd = null; myConnection.Close(); 7.2 线路查询/ 查询给定线路的公交车所经过站点 protected string busline_info1(string input) string connectionString = server=TXJM1FW3L1GYIC6;d

29、atabase = bus;Integrated Security = true; SqlConnection myConnection = new SqlConnection(connectionString); myConnection.Open(); SqlCommand myCommand = new SqlCommand(busline_info, myConnection); myCommand.CommandType = System.Data.CommandType.StoredProcedure; /创建参数 SqlParameter bus_name = new SqlParameter(input, System.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1