




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(综合实验)报告( 2012 - 2013 年度第二学期)名 称: 网络综合实验 题 目: 列车时刻表查询程序 院 系: 计算机 班 级: 网络1002 学 号: 学生姓名: 指导教师: 李丽芬 设计周数: 2周 成 绩: 日期: 2013 年 6 月 9 日一、 目的与要求1 任务:利用Web Service技术实现列车时刻表查询。2 目的:学习在网络应用程序中创建和使用Web服务。Web Service由于其跨平台的优越性,被越来越多的网站所重用。了解其实现原理及使用方法,有利于了解未来的网络开发技术。3 要求:利用Web Service 技术,实现一个查询实时天气预报的网站,要求界面美观,方便易用;通过课程设计学生应该具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。4 学生要求人数:1人。二、设计(实验)正文1、实验内容编写一个网站页,可供用户查询最新列车时刻表情况,可站到站查询、车次查询和途径站查询,合理设计查询组合。基本工作过程如下:(1) 了解Web Service技术的原理和使用方法;(2) 寻找提供列车时刻信息的Web服务;(3) 利用Web Service完成查询网页与信息提供网站的链接;(4) 测试网页。2、使用工具 Visual Studio2010 ,ASP.NET,C#3、实验原理web service 发布后,客户端添加引用,之后vs实际上在此时已经在后台生成本地代理类。之后看起来像是对web service的操作,实际上是对本地代理类的操作。代理类中处理网路访问逻辑,客户端的使用就象操作本地类一样简单便捷。 客户端发出web service请求后,请求到达代理类,代理类处理请求从服务端获得SOAP数据包,而后进行数据处理后转发客户端。此中间涉及到的关于SOAP,WSDL等定义,简单的可以理解为:SOAP中定义了传输数据类型的格式和规则,而WSDL则以XML的形式定义了web service的消息和有关操作,通过http传输协议进行数据传输。4、实验步骤(1)新建一个ASP.NET的网站,在解决方案资源管理器中单击右键,选择添加web引用,在URL中添加/WebServices/TrainTimeWebService.asmx?wsdl,并设置web引用名为train,添加引用。(2)因为提供web service的服务器上提供了几个让我们调用来进行查询的函数,它们的返回值要与所设计的网站上的显示进行绑定,因此用到了Repeater控件,按照如下图所示的页面布局设计网页,添加页面控件。Repeater控件的程序语句要在源代码中显示的写出。网页的设计使用母板页,设计的主页面如下,命名为defalt.aspx.将车次与函数返回值中的TrainCode相绑定,并在这一项中建立超链接,从而使在点击具体的车次时可以在一个新的页面显示出车次的具体途径站查询。另外将始发站与函数返回值FirstStation绑定,终点站与LastStation绑定,发车站与StartStation绑定,发车时间与StartTime绑定,到达站与ArriveStation绑定,到达时间与ArriveTime绑定,里程KM与KM绑定,历时与UseDate绑定。(3)编写后台程序。 因为本实验要调用网上提供的web函数,首先要建立调用函数的服务对象train.TrainTimeWebService train = new train.TrainTimeWebService(); 由于函数的返回值是是DataSet类型,建立一个DataSet的变量接收返回的数据DataSet ds = new DataSet();在页面加载时由Label1显示web函数getVersionTime()的返回值,显示“火车时刻表为第六次提速最新列车时刻表,数据库最后更新:及时更新”,在Page_Load()函数中编写代码实现在第一次访问页面时显示函数的返回值,具体代码是:protected void Page_Load(object sender, EventArgs e) if (this.IsPostBack = false) Label1.Text = train.getVersionTime();Botton1实现的功能是将textStartStation和textArriveStation里面的内容作为函数getStationAndTimeByStationName()的参数传递给服务器,用DataSet类型的ds接收函数的返回值,Repeater1的数据源即为该函数返回的数据。具体代码如下:protected void Button1_Click(object sender, EventArgs e) string start = textStartStation.Text; string end = textArriveStation.Text; ds = train.getStationAndTimeByStationName(start, end, ); Repeater1.DataSource = ds.Tables0.DefaultView; Repeater1.DataBind(); 数据绑定到模板时的事件是:定义一个Hyperlink的对象来代表TrainCode,当输入的要查询的车次没有被发现时,链接的ToolTip显示FirstStation的内容即“数据没有被发现”,当能查询到车次的具体信息时,链接的ToolTip显示“获取*车次的具体信息”,并生成该链接的网络地址。实现的具体代码如下:protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) if (e.Item.ItemType = ListItemType.Item) | (e.Item.ItemType = ListItemType.AlternatingItem) HyperLink oHyperLink = (HyperLink)e.Item.FindControl(TrainCode); string TrainCode = DataBinder.Eval(e.Item.DataItem, TrainCode).ToString(); oHyperLink.Text = TrainCode; string FirstStation = DataBinder.Eval(e.Item.DataItem, FirstStation).ToString(); string StartStation = DataBinder.Eval(e.Item.DataItem, StartStation).ToString(); string ArriveStation = DataBinder.Eval(e.Item.DataItem, ArriveStation).ToString(); if (FirstStation.Contains(没有被发现) oHyperLink.ToolTip = FirstStation; oHyperLink.NavigateUrl = ; else oHyperLink.ToolTip = 获得 + TrainCode + 详细信息; oHyperLink.NavigateUrl = Detail.aspx?id= + Server.UrlEncode(TrainCode) + &Start= + Server.UrlEncode(StartStation) + &Arrive= + Server.UrlEncode(ArriveStation); Botton2实现的功能是将textTrainCode里面的内容作为函数getStationAndTimeDataSetByTrainCode()的参数传递给服务器,用DataSet类型的ds接收函数的返回值,Repeater1的数据源即为该函数返回的数据。具体代码如下:protected void Button2_Click(object sender, EventArgs e) string code = textTrainCode.Text; ds = train.getStationAndTimeDataSetByTrainCode(code, ); Repeater1.DataSource = ds.Tables0.DefaultView; Repeater1.DataBind(); (4)在解决方案中添加新项,选择web窗体,命名为Detail.aspx,并按照下面的页面布局设计网页,添加页面控件:将车站名称与调用的函数返回值中的TrainStation绑定,将到站时间与ArriveTime绑定,将发车时间与StartTime绑定,将里程KM与KM绑定。网站的框体源代码可以自动生成。 (5)编写Detail.aspx的后台程序。因为本实验要调用网上提供的web函数,首先要建立调用函数的服务对象train.TrainTimeWebService train = new train.TrainTimeWebService(); 由于函数的返回值是是DataSet类型,建立一个DataSet的变量接收返回的数据DataSet ds = new DataSet();在页面加载时由Label3显示web函数getVersionTime()的返回值,显示“火车时刻表为第六次提速最新列车时刻表,数据库最后更新:及时更新”,本页面作为第一个页面车次的链接页面,需要将第一个页面的TrainCode传递过来,即定义一个string类型的变量来获取链接的id,代码为string TrainCode = Request.QueryString.Get(id);并将该TrainCode 作为函数getDetailInfoByTrainCode()的函数传递给服务器,用DataSet类型的ds接收函数的返回值,Repeater1的数据源即为该函数返回的数据。具体代码如下: protected void Page_Load(object sender, EventArgs e) string TrainCode = Request.QueryString.Get(id); Label1.Text = 火车 + TrainCode + 车次详细信息; title1.Text = Label1.Text + 列车时刻表 Web Service 实例; Label3.Text = train.getVersionTime(); ds = train.getDetailInfoByTrainCode(TrainCode, ); Repeater1.DataSource = ds.Tables0.DefaultView; Repeater1.DataBind(); Label2.Text = 经由车站共计 + ds.Tables0.Rows.Count.ToString() + 个; 数据绑定到模板时的事件是显示该车次的具体信息,当所显示的车站与输入的发车站相同时该行变为黄色,当所显示的车站与输入的到达站相同时该行变为橙色,其他的背景颜色为“#FFF8D9”,实现的具体代码:protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) if (e.Item.ItemType = ListItemType.Item) | (e.Item.ItemType = ListItemType.AlternatingItem) System.Web.UI.HtmlControls.HtmlTableRow oTR = (System.Web.UI.HtmlControls.HtmlTableRow)e.Item.FindControl(TR1); String StartStation = Request.QueryString.Get(Start); String ArriveStation = Request.QueryString.Get(Arrive); if (DataBinder.Eval(e.Item.DataItem, TrainStation).ToString().Equals(StartStation) oTR.BgColor = #FFFF00; else if (DataBinder.Eval(e.Item.DataItem, TrainStation).ToString().Equals(ArriveStation) oTR.BgColor = #FF9900; else oTR.BgColor = #FFF8D9; 至此该综合实验完成。三、课程设计(综合实验)总结或结论1.在VS2010中运行程序的主界面:1.1按发到站查询:输入:北京-保定打开D123车次进入第二个页面:1.2.按车次查找:输入:D123点击D123进入第二个界面:四、参考文献 1 作者1, 作者2. 书名. 出版单位, 版本. 出版日期1.3.在浏览器中打开全图:2总结: 本次实验是一门比较综合性的实验,用到的知识较多,使用的工具也比较陌生,但原理相对简单。前一周基本上就是在熟悉开发环境的应用,及对ASP.NET和C#的熟悉与应用,第二周开始对实验程序进行编写。虽然说本次实验的原理比较简单,但是实现起来还是有一定难度的,通过查询图书资料及对网络资源的利用,对用到的控件的属性和功能及设置方法、设置形式有了比较深入的了解,同时对后台程序的编写也有了比较深刻的认识。由于原来并没有做过类似的东西,因此该实验让我学到很多知识,同时也激发了我对web service应用的浓厚兴趣,以后我会加强这方面的了解,争取可以学到更多。1Web程序设计ASP.NET实用网站开发 清华大学出版社 沈士根、汪承焱、许小东编著;2C#程序设计教程 清华大学出版社 李春葆、谭成予、金晶、曾平编著附录(设计流程图、程序、表格、数据等)程序的主界面代码,保存名称为Default.aspx: 列D车时刻查询 欢迎进入列车查询程序程 发车站 到达站 车 次 车次 始发站 终点站 发车站 发车时间 到达站 到达时间 历程KM 历时 主界面的后台程序,保存名称为Default.aspx.cs:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;public partial class _Default : System.Web.UI.Page train.TrainTimeWebService train = new train.TrainTimeWebService(); DataSet ds = new DataSet(); protected void Page_Load(object sender, EventArgs e) if (this.IsPostBack = false) Label1.Text = train.getVersionTime(); protected void textStartStation_TextChanged(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) string start = textStartStation.Text; string end = textArriveStation.Text; ds = train.getStationAndTimeByStationName(start, end, ); Repeater1.DataSource = ds.Tables0.DefaultView; Repeater1.DataBind(); protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) if (e.Item.ItemType = ListItemType.Item) | (e.Item.ItemType = ListItemType.AlternatingItem) HyperLink oHyperLink = (HyperLink)e.Item.FindControl(TrainCode); string TrainCode = DataBinder.Eval(e.Item.DataItem, TrainCode).ToString(); oHyperLink.Text = Tr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年监理工程师《建设工程监理案例分析(交通运输工程)》真题及答案
- 2025年生产经理高级面试模拟题及答案解析
- 2025注册验船师考试(C级船舶检验专业综合能力)仿真试题及答案二
- 2025年市场营销专业笔试全真模拟题及答案速递
- 2025年农村生态系统中碳汇管理知识要点与模拟题详解
- 桥梁养护法规与规范课件
- 2026届云南省昆明市外国语学校高三化学第一学期期中达标测试试题含解析
- 2025年老年护理学考查课试题及答案
- 2025年注册验船师资格考试(B级船舶检验专业基础安全)复习题及答案二
- 2025年陪诊医师考试题及答案新版解析
- YY/T 1766.3-2023X射线计算机体层摄影设备图像质量评价方法第3部分:双能量成像与能谱应用性能评价
- 人教版七年级上册语文第一单元测试题(含答案)
- 艺术概论PPT完整全套教学课件
- 电气施工图设计审图要点
- 西方语言学史讲稿
- 烟草香味化学
- 临时用水施工专项方案
- GB∕T 9286-2021 色漆和清漆 划格试验
- 720全景照片制作方案及发布流程
- 工作责任心主题培训ppt课件(PPT 26页)
- 除尘器基础知识培训资料(54页)ppt课件
评论
0/150
提交评论