版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、fA饥艸於厅戊毕业设计说明书学生姓名学 号学 院专 业 计算机科学与技术(软件工程)基于web的城市公交查询系统设计与题 目实现指导教师讲师/硕士(姓名)(专业技术职称/学位)2013 年 5 月毕业论文独创性声明本人郑重声明:本论文是我个人在导师指导下进行的研究工作及取得的研究成果。本论 文除引文外所有实验、数据和有关材料均是真实的。尽我所知,除了文中特 别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究 成果。其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表 示了谢意 。 矚慫润厲钐瘗睞枥庑赖。作者签名:日 期:淮阴师范学院毕业论文(设计)摘 要:随着信息化时代
2、的推进,各个行业都在采用信息化的管理方式。城市公交的查询 也可以依托计算机技术,来更好的为乘客提供信息服务,提高工作效率,降低乘客出行成 本。如此才能提高公交在各出行方式中的竞争力。 聞創沟燴鐺險爱氇谴净。本设计是以 Microsoft SQL Server 2005作为后台数据库开发,以 Visual Studio 2008作 为开发平台,开发的基于 ASP.NET的城市公交查询系统。该系统主要包括以下功能模块: 乘客前台查询和管理员后台管理。前台查询包括换乘查询、线路查询、站点查询、评价统 计,后台管理模块则通过管理员登录后分别实现对站点、线路的添加、删除、修改。本论 文详细介绍了各模块的
3、设计与实现。残骛楼諍锩瀨濟溆塹籟。关键词:公交,ASP.NET查询,数据库7Abstract: With the advancement of the information age, all industries in information man ageme nt. Urba n public tran sport queries can rely on computer tech no logy, to provide passe ngers with a better service, improve efficie ncy, reduce the cost of passe nge
4、r travCtB 极額閉 镇桧猪訣锥。The desig n is based on Microsoft SQL Server 2005 as the back-e nd database developme nt 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 a
5、nd administrators Admin. The front desk query includes: Transfer Inquiry line inquiry, site for the evaluatio n of the statistics, the backgro und man ageme nt module added to the site, li ne by the adm ini strator log in, delete modify. This paper in troduces the desig n and impleme ntati on of eac
6、h module彈贸摄尔霁毙攬砖卤庑。Keywords: BUS,ASP.NET, Inquiry. Database1前U言 3謀荞抟箧飆鐸怼类蒋薔。1.1 课题背景 3厦礴恳蹒骈時盡继價骚。2系统的开发工具与环境 3茕桢广鳓鯡选块网羈泪。2.1 ASP.NET 简介 3 鹅娅尽損鹌惨歷茏鴛賴。2.2 系统的开发要求 4籟丛妈羥为贍债蛏练淨。3 需求分析 4預頌圣鉉儐歲龈讶骅籴。3.1 功能需求分析 4渗釤呛俨匀谔鱉调硯錦。4设计准备 5铙誅卧泻噦圣骋贶頂廡。4.1 功能模块划分 5擁締凤袜备訊顎轮烂蔷。4.2 数据库设计 5贓熱俣阃歲匱阊邺镓騷。4.2.1 数据库概念结构设计 5坛搏乡囂忏
7、蒌鍥铃氈淚。4.2.2 数据库逻辑结构设计 7蜡變黲癟報伥铉锚鈰赘。5详细设计与实现 9買鯛鴯譖昙膚遙闫撷凄。5.1 关于数据库操作 9綾镝鯛駕櫬鹕踪韦辚糴。5.2 功能实现 10 驅踬髏彦浃绥譎饴憂锦。5.2.1 主界面 10 猫虿驢绘燈鮒诛髅貺庑。5.2.1 站点查询 10锹籁饗迳琐筆襖鸥娅薔。5.2.2 线路查询 12構氽頑黉碩饨荠龈话骛。5.2.3 换乘查询 13輒峄陽檉簖疖網儂號泶。5.3 后台管理 16 尧侧閆繭絳闕绚勵蜆贅。5.3.1 管理员登录 16 识饒鎂錕缢灩筧嚌俨淒。5.3.2 添加、修改、删除站点 17 凍鈹鋨劳臘错痫婦胫籴。5.3.3 添加、修改、删除车次 19 恥諤
8、銪灭萦欢煬鞏鹜錦。5.4 评价管理 23 鯊腎鑰诎褳鉀沩懼統庫。6测试 25 硕癘鄴颃诌攆檸攜驤蔹。6.1 开发过程遇到问题 25 阌擻輳嬪諫迁择植秘騖。6.2 进一步研究工作 26 氬嚕躑竄贸恳彈濾颔澩。结束语 27 釷鹆資贏車贖孙滅獅赘。参考文献 28 怂阐譜鯪迳導嘯畫長凉。致谢 29 谚辞調担鈧谄动禪泻類。1 前言1.1 课题背景交通是每个城市发展的标志,便捷通达的交通系统能合理有效的改善交通拥塞、能源 紧张、噪声干扰、废气污染等一系列问题,推动城市的建设与进步。当下城际轻轨、地铁 最快捷便利,但是运营成本过高,只能在一些发达城市运行,老牌公交车则经久不衰,以 其低成本高亲民度,健硕存在
9、于各个级别的城市,服务着广大群众。为了更好的了解城市 的公交运行系统,方便人们的出行,开发了本系统。 嘰觐詿缧铴嗫偽純铪锩。该系统,有利于公交公司随时将公交最新信息发布到网上,乘客能够无门槛登录该系 统查询公交信息。系统分为前台和后台,前台能够供登录系统的用户访问,后台由公交公 司管理人员进行维护。熒绐譏钲鏌觶鷹緇機库。该系统的核心功能为公交车信息的查询,查询分为站点换乘查询、公交站点查询、公 交线路查询。站点换乘查询是用户输入起止站点名称,查询出如何乘车到达,要求能够查 询出所有直达车次与二次换乘可到达的车次;公交站点查询是用户输入公交站点,查询出 经过此站点的所有车次,并能够查看该车次详细
10、信息;公交线路查询是用户输入指定车次, 查询出此车次的详细信息。鶼渍螻偉阅劍鲰腎邏蘞。2系统的开发工具与环境2.1 ASP.NET 简介ASP.NET是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在 Web应用软件开发者的几乎全部的平台上。纣忧蔣氳頑莶驅藥悯骛。ASP.NET建立在.NET Framework的编程类之上,它提供了一个Web应用程序模型,并且包含使生成 ASP Web应用程序变得简单的控件集和结构。ASP.NET包含封装公 共HTML用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web服务器 上运行,并以HTML的形式将它们的用户界面推送到浏览器。
11、在服务器上,这些控件公 开一个面向对象的编程模型,为Web开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码 量并提高了应用程序的可靠性。另外,ASP.NET使用这些同样的概念使开发人员能够以服 务的形式交付软件。使用 XML Web services功能,ASP.NET开发人员可以编写自己的业 务逻辑并使用 ASP.NET结构通过 SOAP交付该服务。Visual Studio 2008是一套完整的 开发工具,用于生成 ASP Web应用程序、XML Web services桌面应用程序和移动应用 程序。Vis
12、ual Basic 2008 Visual C+ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相 同的集成开发环境(IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另 外,这些语言利用了 .NET Framework的功能,此框架提供对简化 ASP Web应用程序和 XML Web services开发的关键技术的访问。颖刍莖峽饽亿顿裊赔泷。2.2 系统的开发要求该公交查询系统对操作系统的要求如下:硬件要求:1. CPU:最低 Intel Pentium II 500MHz2. 磁盘空间:250MB (完全安装),155MB (快速安装)。3
13、. 内存:512MB (最好1GB以上)。4. 显示:1024*768, 256 色。软件要求:1. 操作系统:Windows2000以上的操作系统。2. 开发平台:Visual Studio 2008, Microsoft SQL Server 2005o 濫驂膽閉驟羥闈詔寢賻。3需求分析3.1功能需求分析本公交查询系统以淮安作为背景城市,其余城市可参照修改同样适用。本系统不仅能 给广大熟悉淮安路线的本地市民提供便利,更加能为其他来到淮安出差、旅游的朋友带来 方便。开发本系统的目标就是立足广大乘客的实际,着眼于公交业的未来发展,规范公交 管理,提高服务质量,方便乘客查询。 銚銻縵哜鳗鸿锓謎諏
14、涼。本系统采用结构化设计的方法以实现系统总体功能,即将整个系统划分为各个功能模 块,正确处理模块之间和模块内部的联系以及和数据库的联系,通过对各模块的设计和模 块之间关系的安排;来系统实现整个系统的功能。前台主要有4个模块:换乘查询、线路查询、站点查询、评价统计,后台管理模块则通过管理员登录后分别实现对站点、线路的 添加、删除、修改。挤貼綬电麥结鈺贖哓类。前台主要向用户提供换乘查询、车次查询、站点查询等查询方式,具体实现如下功能:1. 换乘查询:输入起始站名与终点站名,系统会输出所有的公交路线方案;2.车次查询:输入已知的车次,系统会输出该车次经过的所有站点名;3.站点查询:输入已知的站点名,
15、 系统会输出经过该站点的所有车次。数据库会提供给用户全部的信息,用户可以根据自己 的实际情况进行选择,另外,用户可以在系统左下角的评价栏投出自己宝贵的一票,系统 将对结果进行统计分析,实现用户与公交公司的良好互动。赔荊紳谘侖驟辽輩袜錈。后台由管理员输入其指定账号与密码对数据库进行管理,实现站点的添加、删除、修改,线路的添加、删除、修改。系统模块如图 3-1所示:塤礙籟馐决穩賽釙冊庫。图3-1系统模块图4设计准备4.1功能模块划分通过需求分析,可以确定该系统应完成的功能包括:1. 前台功能:主要实现乘客对车辆信息的查询,包括站点间换乘查询、车次查询、站点查询;其次通过评价统计来实现乘客与公交公司
16、的互动。裊樣祕廬廂颤谚鍘芈蔺。2. 后台功能:主要实现公交公司管理员对车辆信息的维护,包括线路信息的添加、删除、修改和站点信息的添加、删除、修改。仓嫗盤紲嘱珑詁鍬齊驚。4.2 数据库设计通过需求分析,本系统在概要设计阶段得到五个数据实体:公交车次、公交站点、公 交线路、管理员、评价。这些实体的属性均按照用户需求中的输入输出数据设定,故应该 根据这五个实体设计五种类型的数据库表:公交车次表、公交站点表、不同车次线路表、 管理员表、评价统计表。绽萬璉轆娛閬蛏鬮绾瀧。4.2.1数据库概念结构设计所谓概念结构设计,就是将需求分析得到的用户需求抽象为信息结构。概念结构是各 种数据模型的共同基础,它比数据
17、模型更独立于机器、更抽象,从而更加稳定,它是整个 数据库的关键。骁顾燁鶚巯瀆蕪領鲡赙。概念结构设计的特点:1. 能真实、充分地反映现实世界,是对现实世界的一个真实模型。2. 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据 库的设计成果的关键。3. 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。4. 易于向关系、网状、层次等各种数据模型转换。在系统设计的开始,首先应该考虑如何用数据模型来描述数据库的结构和语义,以对 现实世界进行抽象。“实体联系模型” (E-R模型)独立于计算机系统用的较为广泛,本系 统也充分应用了它。E-R模型直接从现实世界抽象出实体
18、类型及实体间联系,然后用 E-R 图来表示数据模型。它更接近人都思维,容易理解;与计算机无关,用户更容易接受,但 它只是数据库设计的第一步。E-R图是直观表示概念模型的工具,它有三个基本成分:瑣钋 濺暧惲锟缟馭篩凉1. 矩形框,表示实体类型(考虑问题的对象)。2. 菱形框,表示联系类型(实体间的联系)。3. 椭圆形框,表示实体的属性。该系统实体和属性的定义如下:管理员表E-R图(登录ID,登录姓名,登录密码)图4-1 管理员表E-R图各站集合表E-R图(站名ID,站名)图4-2各站集合表 E-R图各条线路表E-R图(站名ID,次序,站名)各条线路集表E-R图(车辆ID,车次,始发站,末站,运行
19、区间,线路描述,IC卡 类型,票价,首班车时间,服务类型,末班车时间)鎦诗涇艳损楼紲鯗餳類。图4-4 各条线路集表E-R图评价表E-R图(评价程度,票数)本系统采用Microsoft SQL Server 2005数据库管理系统,该系统不仅能满足最大的数 据处理系统和商业 Web站点存储数据的需要,还能为个人或小企业提供易于使用的数据存 储服务。栉缏歐锄棗鈕种鵑瑶锬。之所以使用Microsoft SQL Server 2005就是因为它是一个企业级的集成商业智能的全 面的数据库平台,Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了 更安全可靠的存储功能
20、,使设计者可以构建和管理用于业务的高可用和高性能的数据应用 程序。辔烨棟剛殓攬瑤丽阄应。淮阴师范学院毕业论文(设计)本系统创建的SQL数据库名称为城市公交查询系统,并将数据文件和日志文件保存在 APP_DATA文件夹中。峴扬爛滾澗辐滠兴渙藺。此数据库包含5类表,分别是管理员表、各站集合表、各条线路表、各条线路集合表、 评价表。(1) 管理员表管理员表存放管理员登录系统所需要的用户名和密码,管理员登录后台时需要访问此表4-1管理员表字段名数据类型长度是否允许空是否为主键说明Admi nldint3否是登录IDAdmi nN amen char(3)20否否登录姓名Admi nPasswordn
21、char(6)20否否登录密码(2) 各站集合表各站点集合表存放所有站点名、编号及描述,此表中的站点是各条线路表中的站点的 集合即所有线路中的站点。表4-2各站集合表字段名数据类型长度是否允许空是否为主键说明SiteIDint10否否站点IDSiteNamen char(10)10否否站点名SiteDescriben char(50)50是否站点描述(3) 各条线路表各条线路表是存放各线路信息的表。表4-3 各条线路表字段名数据类型长度是否允许空是否为主键说明SiteIdint10否否站点IDSiteNamen char(10)10否否站名SiteDescriben char(50)50是否站
22、点描述cixuint5否否线路中站点次序(4) 各条线路集合表各条线路集合表是所有线路的集合表,存储了所有线路的ID和一些基本信息表4-4各条线路集合表字段名数据类型长度是否允许空是否为主键说明Li neldint10否是线路IDLin eNamen char(10)10否否线路名称Lin eArean char(10)10否否线路区间Li nePricen char(10)10否否票价Lin eStartPlacen char(10)10否否始发站LineEn dPlacen char(10)10否否末站Lin eStartTimen char(10)10否否早班车时间LineEn dTim
23、en char(10)10否否末班车时间Li nelCbit5否否IC卡类型Lin eDescriben char(80)80是否线路描述(5) 评价表评价表用于用户对本系统的评价统计, 存储不同评价的票数,饼图统计时调用这张表表4-5 评价表字段名数据类型长度是否允许空是否为主键说明评价程度n char(10)10否是评价程度票数int5是否票数5详细设计与实现5.1 关于数据库操作在动态网站中,调用数据库中的数据是十分频繁的,为了数据库的安全性,本程序将 所有数据库的操作封装到DBConnect类中并放于DBConnect.cs文件中。开发人员在实现其他功能时,可以在此类中写函数然后调用,
24、避免零散的重复的操作数据库。本系统的数 据库的连接代码如下:詩叁撻訥烬忧毀厉鋨骜。public static SqlC onnection createC onnection()SqlCo nn ectioncon = newSqlCo nn ectio n( DataSource=SUNNANYUN;l nitialCatalog=Bus;lntegrated Security=True);则鯤愜韋瘓賈晖园栋泷。return con;为了不反复的访问数据库,记录了一些基本信息,声明了以下成员变量:private int SiteCount;记录站点的总个数private int LineCo
25、unt;记录线路的总个数private int line; 保存每条线路9淮阴师范学院毕业论文(设计)5.2 功能实现521 主界面任意乘客、用户都可以登录这个公交查询系统的主界面进行查询。该界面简洁、方便,一目了然的可以进入三大主要查询模块、管理员登录模块、评价模块,为各类用户提供便利。主界面见下图5-1 :胀鏝彈奥秘孫戶孪钇賻。公支礼投1.诜足片真在緒叼鮫走屯吧 夬良产弟站狂牟工上變 A亠嶽枣上吒羟:遥討丈弋杆 养隹觸:貳脅蚩吃聿丈牛 飪翼匚上罟:T3-上节崖去礼业:抉比世嘉二寻翦率书,请各土索吾皂无直耳究丰亦剛.岂总免老再瘦7S去怎了唱券!左亡=.-埠序I P-可京* 2KsAJl ED
26、吨呈岂二.总宜竽逼菠-T:CWGSOlS壬盂哎萨詈图5-1主界面图5.2.1站点查询任意用户登录该公交查询网站均可进行站点查询。用户需输入站点全称,点击查询按 钮后,系统会在数据库中检测该站点是否存在,如果存在,将显示经过该站点所有的公交 线路情况,如果不存在将提示该站点不存在。鳃躋峽祷紉诵帮废掃減。该站点查询界面如图5-2所示:站点换乘公交站点公交线路站点名称:淮师I总击虫询经过淮师的路线有:100路图5-2 站点查询图该功能的实现,从textbox获取站点名称site name获取到site name后,首先查询站点 总表里是否存在该站点,若不存在,则count赋值为0,显示提示信息。若存
27、在站点,则遍历所有的线路表查找站点,若某路线存在该站点,则记录该线路,存于数组Line。count用于统计经过该站点的线路的个数。ref关键字使参数count按引用传递。其效果是,当控 制权传递回调用方法时,在方法中的cou nt所做的任何更改都将反映在该变量中。稟虛嬪赈维哜妝扩踴粜。主要实现代码如下:public void GetSiteL in e(stri ng Line, stri ng site name, ref int count)陽簍埡鮭罷規呜旧岿錟。SqlC onn ecti on cn = createC onnection();cn. Ope n();stri ng st
28、r = select coun t(*) from site where site name = + site name + ; 沩氣嘮戇苌鑿鑿槠谔應。 SqlComma nd cmd = new SqlComma nd(str, cn);if (Co nvert.Tol nt32(cmd.ExecuteScalar().ToStri ng() = 0)钡嵐縣緱虜荣产涛團蔺。count = 0;cn. Close();elseint i = 0;for (int j = 0; j 0)謾饱兗争詣繚鮐癞别濾。Lin ei+ = lin ej.ToStri ng();count = i;cn. C
29、lose();522 线路查询任意用户登录该公交查询网站均可进行线路查询。用户可以在下拉列表显示的所有线 路中找到自己想查询的线路,点击查询,系统就会显示该线路去程、回程及一些相关信息 呙铉們欤谦鸪饺竞荡赚。该线路查询界面如图5-3所示:站点换乘公交线略线路名称:讽5路7空击巳谊:100 路|/市区线路金马广场20也:训虫安监管中心全程玩兀卡通用去程:金马广场-清中-淮安车站-人民大会堂-黄河桥-西马路-苏北市场- 小营广场-小营-长辽西路-交专-淮節-长城加油站-淮三路(淮阴区)- 杜庄村公安监管中心(L瞒)回程:公安监管中心|费庄村-淮三路(淮阴区)-长城加油站-淮师-交专-长江西路- 小
30、营“小营广场-苏北市场-西马路“黄河桥-人民大会堂隹安车站-清中金马宀场(1術占)备注信息:夜班车到21:2515-20分钟一班複班车从18:25以后开始运行区间金马广场一港师图5-3 线路查询图该功能的实现,首先从dropdownlist获取线路名称linename,然后从线路集合表中获取该线路的信息存于数组sLineTotal中,并通过线路集合表LineID,获取该路线的所有站 点,存于数组line中,count用于统计该线路所有站点的个数。莹谐龌蕲賞组靄绉嚴减。主要实现代码如下:麸肃鹏镟轿騍镣缚縟糶。納畴鳗吶鄖禎敛卩腻鰲锬。public void GetLine(string sLine
31、Total, string line, string linename, ref int count) SqlC onnection cn = createC onnection();cn. Ope n();string str = select * from linetotal where linename = + linename + ; SqlComma nd cmd = new SqlComma nd(str, cn);SqlDataReader reader = cmd.ExecuteReader();if (reader.HasRows)/从 linetotal 中获取信息if (
32、reader.Read()sLineTotal0 = reader.GetValue(0).ToString().Trim();風撵鲔貓铁频钙蓟纠庙。sLineTotal1 = reader.GetValue(1).ToString().Trim();灭暧骇諗鋅猎輛觏馊藹。sLi neTotal2 = reader.GetValue(2).ToStri ng().Trim();铹鸝饷飾镡閌赀诨癱骝。sLineTotal3 = reader.GetValue(3).ToString().Trim();攙閿频嵘陣澇諗谴隴泸。11淮阴师范学院毕业论文(设计)sLineTotal4 = reader.
33、GetValue(4).ToString().Trim();趕輾雏纨颗锊讨跃满賺。sLi neTotal5 = reader.GetValue(5).ToStri ng().Trim();夹覡闾辁駁档驀迁锬減。sLi neTotal6 = reader.GetValue(6).ToStri ng().Trim();视絀镘鸸鲚鐘脑钧欖粝。sLineTotal7 = reader.GetValue(7).ToString().Trim();偽澀锟攢鴛擋緬铹鈞錠。sLineTotal8 = reader.GetValue(8).ToString().Trim();緦徑铫膾龋轿级镗挢廟。 sLi ne
34、Total9 = reader.GetValue(9).ToStri ng().Trim();騅憑钶銘侥张礫阵轸蔼。 reader.Close();cmd.Comma ndText = select site name from Line + sLin eTotal0.ToStri ng().Trim() + ; 疠骐錾农剎貯狱颢幗騮。reader = cmd.ExecuteReader();if (reader.HasRows)/从具体的公交线路中获取站点顺序信息int n = 0;while (reader.Read()lin e n+ = reader.GetValue(0).ToStr
35、i ng().Trim();count = n;elsecn. Close();5.2.3换乘查询任意用户登录该公交查询网站均可进行换乘查询。用户可输入出发站和到达站,系统 会检测是否存在该站点,若存在则会检测这两个站点是否有直达车,如果没有则会进行一 次换乘。镞锊过润启婭澗骆讕濾。站点换乘公交站点公交线路起点名称:淮师终点名称:淮安汽车南站科隹师那到淮安汽车南站抒本站共为您提供3种换乘方案方案1:淮师-金马广场-淮安汽车南站在起点:淮师:先乘100路经过口站压金马广场站再换乘1路经过16站倒达终点:淮安汽车南 站“方案2:淮师一金马广场“淮安汽车南站在起点:淮师:先乘100路经过11站,到金
36、马广场站再换乘6路f经过13站倒达终点:淮安汽车南 站/方案3:淮师“小营港安汽车南站在起点:淮师:先乘100路经过3站庄小营站再换乘12路经过26站倒达终点:淮安汽车南站该换乘查询界面如图5-4所示:图5-4换乘查询图该功能首先从textbox里获取出发站点名StartSite和到达站点名EndSite,然后判断是 否存在这两个站点,若不存在,则给出提示,否则,分别搜索包含StartSite EndSite的路线存于临时数组StartSiteLi neld和En dSiteL in eld中。分两种情况讨论,1.直达,遍历两条 线路的所有组合,判断,如果存在路线相同的,则表示可直达。2.需换
37、乘一次,在遍历两条 线路的所有组合的前提下,若经过 StartSite的路线中有和经过EndSite的路线有相同的站 点,则表示可换乘一次到达。榿贰轲誊壟该槛鲻垲赛。主要实现代码如下:/count用于记录方案个数其中-1表示不存在 StartSite站点,-2表示不存在 EndSite -3表示直达邁茑赚陉宾呗擷鹪讼凑。/Linem, m 是表示换成的方案个数的,Linem,0车次1, Linem,1 StartSite到中转站点的站数,Linem,2中转站点 ,Linem,3车次 2, Linem,4中转站点到 EndSite 的站数嵝硖贪塒廩袞悯倉華糲。public void GetSit
38、eLi neHua nChe ng(stri ng, Li ne, string StartSite, stri ng En dSite, ref int cou nt)该栎谖碼戆沖巋鳧薩锭。int StartSiteLineld = new int21; 记录包含 StartSite的路线劇妆诨貰攖苹埘呂仑庙。int EndSiteLineld = new int21; 记录包含 EndSite 的路线SqlC onnection cn = createC onnection();cn. Ope n();判断是否存在StartSite站点stri ng str = select cou nt
39、(*) from site where site name = + StartSite + ;臠龍讹驄桠业變墊罗蘄。SqlComma nd cmd = new SqlComma nd(str, cn);if (Co nvert.Tol nt32(cmd.ExecuteScalar().ToStri ng() = 0)鰻順褛悦漚縫輾屜鸭骞。count = -1;cn. Close();return;判断是否存在 EndSite站点cmd.Comma ndText = select coun t(*) from site where site name = + En dSite + ; 穡釓虚绺滟
40、鳗絲懷紆泺。if (Co nvert.Tol nt32(cmd.ExecuteScalar().ToStri ng() = 0)隶誆荧鉴獫纲鴣攣駘賽。count = -2;cn. Close();return;/搜索包含StartSite的路线int i = 0;int j = 0;for (j = 0; j 0)鈀燭罚櫝箋礱颼畢韫粝。StartSiteLi neldi+ = lin ej;StartSiteLineldi = -1;/ 用于终止判断搜索包含EndSite的路线i = 0;j = 0; for (j = 0; j 0)贞廈给鏌綞牵鎮獵鎦龐。En dSiteLi neIdi+ =
41、 lin ej;EndSiteLineIdi = -1;/ 用于终止判断当两个站点处于同一条路线时,即直达for (i = 0; i 20 & StartSiteLineIdi != -1; i+)嚌鳍级厨胀鑲铟礦毁蕲。for (j = 0; j 20 & EndSiteLineldj != -1; j+)if (StartSiteL in eIdi = En dSiteLi neIdj)count = -3;Line0, 0 = StartSiteLineldi.ToString().Trim();记录第几路车 薊镔竖牍熒浹醬籬铃騫。cmd.CommandText = select cixu
42、 from Line + Line0, 0 + where SiteName= + EndSite + ”;/获得EndSite的次序齡践砚语蜗铸转絹攤濼。int end = Convert.ToInt32(cmd.ExecuteScalar().ToString();绅薮疮颧訝标販繯轅赛。 cmd.CommandText = select cixu from Line + Line0, 0 + where SiteName= + StartSite + ”;/获得StartSite的次序 饪箩狞屬诺釙诬苧径凛。int start = Convert.ToInt32(cmd.ExecuteSc
43、alar().ToString();烴毙潜籬賢擔視蠶贲粵。Line0, 1 = Math.Abs(end - start).ToString();cn .Close();return; int k = 0;/用于记录当前的方案个数,用于数组Linek,用于判断换乘的,换乘一次for (i = 0; i 20 & StartSiteLi neldi != -1 & k 8; i+)鋝岂涛軌跃轮莳講嫗键。 int startsite = new int35; 用于记录每条路线的站点idcmd.Comma ndText = select siteid from Li ne + StartSiteLi
44、 neldi + ;撷伪氢鱧轍幂聹諛詼庞。SqlDataReader reader = cmd.ExecuteReader();if (reader.HasRows)int num = 0;while (reader.Read() startsite nu m+ = Con vert.ToI nt32(reader.GetValue(0).ToStri ng().Trim();踪飯梦掺钓貞绫賁发蘄。 startsite num = -1;reader.Close();for (j = 0; j 20 & En dSiteLi neldj != -1 & k 8; j+)婭鑠机职錮夾簣軒蚀骞。i
45、nt endsite = new int35;用于记录每条路线的站点idcmd.Comma ndText = select siteid from Line + En dSiteLi neldj + ;譽諶掺铒锭试监 15淮阴师范学院毕业论文(设计)鄺儕泻。reader = cmd.ExecuteReader();if (reader.HasRows)int num = 0;while (reader.Read()endsitenum+ = Convert.ToInt32(reader.GetValue(0).ToString().Trim();俦聹执償閏号燴 鈿膽賾。en dsite num
46、 = -1;reader.Close();int Logo = 0;/用来控制下面两个循环的/寻找两条线路中两条线路的相同站点for (int m = 0; m 35 & startsitem != -1 & Logo = 0; m+)缜電怅淺靓蠐浅錒鵬凜。for (int n = 0; n 35 & en dsite n != -1 & Logo = 0 ; n+)骥擯帜褸饜兗椏長绛粤。if (startsitem = en dsite n) cmd.Comma ndText = select cixu from Line + StartSiteL in eIdi + where site
47、name = + StartSite + ;癱噴导閽骋艳捣靨骢鍵。int start = Con vert.ToI nt32(cmd.ExecuteScalar().ToStri ng(); 鑣鸽夺圆鯢齙慫 餞離龐。cmd.Comma ndText = select cixu from Line + En dSiteL in eIdj + where site name = + En dSite + ;榄阈团皱鹏緦寿驏頦蕴。int end = Convert.ToInt32(cmd.ExecuteScalar().ToString();逊输吴贝义鲽國 鳩犹騙。cmd.Comma ndText
48、= select site name from site where siteid= + startsitem + ;幘觇匮骇儺红卤齡镰瀉。Li nek, 0 = StartSiteL in eIdi.ToStri ng();Li nek, 1 = Math.Abs(m + 1 - start).ToStri ng();/m+1就相当于是这点的次序誦终决懷区馱倆侧澩赜。Linek, 2 = cmd.ExecuteScalar().ToString().Trim();医涤侣綃噲睞齒办銩 凛。Linek, 3 = EndSiteLineIdj.ToString();Linek, 4 = Math.Abs(n + 1 - end).ToString();Logo = 1;/跳出上面两个循环k+;/end for/end for (j = 0; j 20 & En dSiteL in eIdj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低位灶台施工方案
- 复式别墅施工方案
- 年末家具营销方案
- 互动案例营销方案
- 新闻传媒的自动化内容生成技术应用报告
- 电信行业碳排放权交易平台技术发展报告
- 智能制造行业的创新发展及挑战研究
- 涉电施工方案
- 科技产业人工智能应用市场调研报告
- 医院专科管理制度简介
- 两只狗的生活意见剧本
- 2024年工程防水合同范本
- 9.2+文化发展的基本路径+课件-2024-2025学年高中政治统编版必修四哲学与文化
- 游戏开发职业生涯规划总结报告
- 国家开放大学《合同法》章节测试参考答案
- 《香港璀璨的明珠》课堂课件
- 研发降本增效方案(17篇)
- 威海旅游攻略必去景点
- 二维材料半导体器件
- 《干部履历表》1999版电子版
- 控制器说明书
评论
0/150
提交评论