基于web的城市公交查询系统设计与实现毕业设计(编辑修改稿)内容摘要:

sLineTotal[7] = (7).ToString().Trim()。 sLineTotal[8] = (8).ToString().Trim()。 sLineTotal[9] = (9).ToString().Trim()。 淮阴师范学院毕业论文(设计) 14 } ()。 = select sitename from Line + sLineTotal[0].ToString().Trim() +。 reader = ()。 if ()//从具体的公交线路中获取站点顺序信息 { int n = 0。 while (()) { line[n++] = (0).ToString().Trim()。 } count = n。 } } else { ()。 } } 换乘查询 任意用户登录该公交查询网站均可进行换乘查询。 用户可输入出发站和到达站,系统会检测是否存在该站点,若存在则会检测这两个站点是否有直达车,如果没有则会进行 一次换乘。 该换乘查询界面如图 54 所示: 图 54 换乘查询图 该功能首先从 textbox 里获取出发站点名 StartSite 和到达站点名 EndSite,然后判断是否存在这两个站点,若不存在,则给出提示,否则,分别 搜索包含 StartSite、 EndSite 的路线 存于临时数组 StartSiteLineId 和 EndSiteLineId 中。 分两种情况讨论, ,遍历两条线路的所有组合 ,判断 ,如果存在路线相同的,则表示可直达。 ,在遍历两 条线路的所有组合的前提下,若经过 StartSite 的路线中有和经过 EndSite 的路线有相同的站淮阴师范学院毕业论文(设计) 15 点,则表示可换乘一次到达。 主要实现代码如下: //count 用于记录方案个数 其中 1 表示不存在 StartSite 站点, 2 表示不存在 EndSite 3 表示直达 // Line[m,] m 是表示换成的方案个数的, Line[m,0] 车次 1, Line[m,1] StartSite 到中转站点的站数, Line[m,2]中转站点 , Line[m,3]车次 2 , Line[m,4]中转站点到 EndSite 的站数 public void GetSiteLineHuanCheng(string[,] Line, string StartSite, string EndSite, ref int count) { int[] StartSiteLineId = new int[21]。 //记录包含 StartSite 的路线 int[] EndSiteLineId = new int[21]。 //记录包含 EndSite 的路线 SqlConnection = createConnection()。 ()。 //判断是否存在 StartSite 站点 string str = select count(*) from site where sitename = 39。 + StartSite + 39。 SqlCommand cmd = new SqlCommand(str, )。 if ((().ToString()) == 0) { count = 1。 ()。 return。 } //判断是否存在 EndSite 站点 = select count(*) from site where sitename = 39。 + EndSite + 39。 if ((().ToString()) == 0) { count = 2。 ()。 return。 } //搜索包含 StartSite 的路线 int i = 0。 int j = 0。 for (j = 0。 j LineCount。 j++) { = select count(*) from Line + line[j] + where SiteName=39。 + StartSite + 39。 if ((().ToString()) 0) { StartSiteLineId[i++] = line[j]。 } } StartSiteLineId[i] = 1。 //用于终止判断 //搜索包含 EndSite 的路线 i = 0。 j = 0。 for (j = 0。 j LineCount。 j++) { = select count(*) from Line + line[j] + where SiteName=39。 + EndSite + 39。 if ((().ToString()) 0) { EndSiteLineId[i++] = line[j]。 } } EndSiteLineId[i] = 1。 //用于终止判断 淮阴师范学院毕业论文(设计) 16 //当两个站点处于同一条路线时,即直达 for (i = 0。 i 20 amp。 amp。 StartSiteLineId[i] != 1。 i++) { for (j = 0。 j 20 amp。 amp。 EndSiteLineId[j] != 1。 j++) { if (StartSiteLineId[i] == EndSiteLineId[j]) { count = 3。 Line[0, 0] = StartSiteLineId[i].ToString().Trim()。 //记录第几路车 = select cixu from Line + Line[0, 0] + where SiteName=39。 + EndSite + 39。 //获得 EndSite 的次序 int end = (().ToString())。 = select cixu from Line + Line[0, 0] + where SiteName=39。 + StartSite + 39。 //获得 StartSite 的次序 int start = (().ToString())。 Line[0, 1] = (end start).ToString()。 ()。 return。 } } } int k = 0。 //用于记录当前的方案个数,用于数组 Line[k,] //用于判断换乘的,换乘一次 for (i = 0。 i 20 amp。 amp。 StartSiteLineId[i] != 1 amp。 amp。 k 8。 i++) { int[] startsite = new int[35]。 //用于记录每条路线的站点 id = select siteid from Line + StartSiteLineId[i] +。 SqlDataReader reader = ()。 if () { int num = 0。 while (()) { startsite[num++] = ((0).ToString().Trim())。 } startsite[num] = 1。 } ()。 for (j = 0。 j 20 amp。 amp。 EndSiteLineId[j] != 1 amp。 amp。 k 8。 j++) { int[] endsite = new int[35]。 //用于记录每条路线的站点 id = select siteid from Line + EndSiteLineId[j] +。 reader = ()。 if () { int num = 0。 while (()) { endsite[num++] = ((0).ToString().Trim())。 } endsite[num] = 1。 } ()。 int Logo = 0。 //用来控制下面两个循环的 //寻找两条线路中两条线路的相同站点 for (int m = 0。 m 35 amp。 amp。 startsite[m] != 1 amp。 amp。 Logo == 0。 m++) 淮阴师范学院毕业论文(设计) 17 { for (int n = 0。 n 35 amp。 amp。 endsite[n] != 1 amp。 amp。 Logo == 0。 n++) { if (startsite[m] == endsite[n]) { = select cixu from Line + StartSiteLineId[i] + where sitename = 39。 + StartSite + 39。 int start = (().ToString())。 = select cixu from Line + EndSiteLineId[j] + where sitename = 39。 + EndSite + 39。 int end = (().ToString())。 = select sitename from site where siteid= + startsite[m]。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。