软件设计与实践列车时刻查询 报告正文 华北电力大学.docx

上传人:b****7 文档编号:10011642 上传时间:2023-02-07 格式:DOCX 页数:27 大小:332.31KB
下载 相关 举报
软件设计与实践列车时刻查询 报告正文 华北电力大学.docx_第1页
第1页 / 共27页
软件设计与实践列车时刻查询 报告正文 华北电力大学.docx_第2页
第2页 / 共27页
软件设计与实践列车时刻查询 报告正文 华北电力大学.docx_第3页
第3页 / 共27页
软件设计与实践列车时刻查询 报告正文 华北电力大学.docx_第4页
第4页 / 共27页
软件设计与实践列车时刻查询 报告正文 华北电力大学.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

软件设计与实践列车时刻查询 报告正文 华北电力大学.docx

《软件设计与实践列车时刻查询 报告正文 华北电力大学.docx》由会员分享,可在线阅读,更多相关《软件设计与实践列车时刻查询 报告正文 华北电力大学.docx(27页珍藏版)》请在冰豆网上搜索。

软件设计与实践列车时刻查询 报告正文 华北电力大学.docx

软件设计与实践列车时刻查询报告正文华北电力大学

 

科技学院

综合实验报告

(2012--2013年度第1学期)

 

名称:

软件设计与实践

题目:

列车时刻查询

院系:

信息工程系

班级:

学号:

学生姓名:

指导教师:

戴寒松

设计周数:

2

成绩:

日期:

2012年1月11日

《软件综合实验》

任务书

一、目的与要求

软件综合实验是计算机科学与技术、软件工程、网络工程和信息安全专业学生的必修实践环节,本环节是在第六学期、第七学期设置,主要让学生进一步理解、巩固、加深前面所学的课程,并能综合运用所学课程的知识进行设计,掌握算法设计及实现的理论与方法,为毕业设计和今后的工作打下良好的基础。

课程的基本要求:

1.熟悉微机的应用环境。

2.利用所学课程的知识,解决程序设计中的实际问题(实际应用题目,或模拟实际应用的题目),为毕业设计和今后的工作打下良好的基础。

二、主要内容

能熟练地利用微机设计出有实用价值的程序。

1.熟悉Windows以及其它工具软件系统,

2.根据所选题目进行算法设计(画出流程图,写出各模块的文档)。

3.编程。

4.上机调试。

三、进度计划

序号

设计(实验)内容

完成时间

备注

1

查找、熟悉相关资料

2天

2

根据题目进行详细设计

2天

3

编码

4天

4

调试

2天

四、设计(实验)成果要求

(根据所选题目填写)

五、考核方式

实验结果(60%)+实验报告(30%)+实验过程表现(10%)

学生姓名:

指导教师:

年月日

一、综合实验目的与要求

1.任务:

利用WebService技术实现列车时刻表查询。

2.目的:

学习在网络应用程序中创建和使用Web服务。

WebService由于其跨平台的优越性,被越来越多的网站所重用。

了解其实现原理及使用方法,有利于了解未来的网络开发技术。

3.要求:

利用WebService技术,实现一个查询列车时刻的网站,要求界面美观,方便易用;通过课程设计学生应该具备初步分析、设计和开发网络应用软件的能力,具备分析与检查软件错误、解决和处理实验结果的能力。

4.学生要求人数:

1人。

二、实验正文

1、实验内容

编写一个网站页,可供用户查询最新列车时刻表情况,可站到站查询、车次查询和途径站查询,合理设计查询组合。

基本工作过程如下:

(1)了解WebService技术的原理和使用方法;

(2)寻找提供列车时刻信息的Web服务;

(3)利用WebService完成查询网页与信息提供网站的链接;

(4)测试网页。

2、使用工具

VisualStudio2010,ASP.NET,C#

3、实验原理

webservice发布后,客户端添加引用,之后vs实际上在此时已经在后台生成本地代理类。

之后看起来像是对webservice的操作,实际上是对本地代理类的操作。

代理类中处理网路访问逻辑,客户端的使用就象操作本地类一样简单便捷。

    客户端发出webservice请求后,请求到达代理类,代理类处理请求从服务端获得SOAP数据包,而后进行数据处理后转发客户端。

此中间涉及到的关于SOAP,WSDL等定义,简单的可以理解为:

SOAP中定义了传输数据类型的格式和规则,而WSDL则以XML的形式定义了webservice的消息和有关操作,通过http传输协议进行数据传输。

4、实验步骤

(1)新建一个ASP.NET的网站,在解决方案资源管理器中单击右键,选择添加web引用,在URL中添加

(2)因为提供webservice的服务器上提供了几个让我们调用来进行查询的函数,它们的返回值要与所设计的网站上的显示进行绑定,因此用到了Repeater控件,按照如下图所示的页面布局设计网页,添加页面控件。

Repeater控件的程序语句要在源代码中显示的写出。

将车次与函数返回值中的TrainCode相绑定,并在这一项中建立超链接,从而使在点击具体的车次时可以在一个新的页面显示出车次的具体途径站查询。

另外将始发站与函数返回值FirstStation绑定,终点站与LastStation绑定,发车站与StartStation绑定,发车时间与StartTime绑定,到达站与ArriveStation绑定,到达时间与ArriveTime绑定,里程KM与KM绑定,历时与UseDate绑定。

网站的框体源代码可以自动生成。

(3)编写后台程序。

因为本实验要调用网上提供的web函数,首先要建立调用函数的服务对象

train.TrainTimeWebServicetrain=newtrain.TrainTimeWebService();

由于函数的返回值是是DataSet类型,建立一个DataSet的变量接收返回的数据

DataSetds=newDataSet();

在页面加载时由Label1显示web函数getVersionTime()的返回值,显示“火车时刻表为第六次提速最新列车时刻表,数据库最后更新:

及时更新”,在Page_Load()函数中编写代码实现在第一次访问页面时显示函数的返回值,具体代码是:

protectedvoidPage_Load(objectsender,EventArgse)

{

if(this.IsPostBack==false)

Label1.Text=train.getVersionTime();

}

Botton1实现的功能是将textStartStation和textArriveStation里面的内容作为函数getStationAndTimeByStationName()的参数传递给服务器,用DataSet类型的ds接收函数的返回值,Repeater1的数据源即为该函数返回的数据。

具体代码如下:

protectedvoidButton1_Click(objectsender,EventArgse)

{

stringstart=textStartStation.Text;

stringend=textArriveStation.Text;

ds=train.getStationAndTimeByStationName(start,end,"");

Repeater1.DataSource=ds.Tables[0].DefaultView;

Repeater1.DataBind();

}

数据绑定到模板时的事件是:

定义一个Hyperlink的对象来代表TrainCode,当输入的要查询的车次没有被发现时,链接的ToolTip显示FirstStation的内容即“数据没有被发现”,当能查询到车次的具体信息时,链接的ToolTip显示“获取**车次的具体信息”,并生成该链接的网络地址。

实现的具体代码如下:

protectedvoidRepeater1_ItemDataBound(objectsender,RepeaterItemEventArgse)

{

if((e.Item.ItemType==ListItemType.Item)||(e.Item.ItemType==ListItemType.AlternatingItem))

{

HyperLinkoHyperLink=(HyperLink)e.Item.FindControl("TrainCode");

stringTrainCode=DataBinder.Eval(e.Item.DataItem,"TrainCode").ToString();

oHyperLink.Text=TrainCode;

stringFirstStation=DataBinder.Eval(e.Item.DataItem,"FirstStation").ToString();

stringStartStation=DataBinder.Eval(e.Item.DataItem,"StartStation").ToString();

stringArriveStation=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的数据源即为该函数返回的数据。

具体代码如下:

protectedvoidButton2_Click(objectsender,EventArgse)

{

stringcode=textTrainCode.Text;

ds=train.getStationAndTimeDataSetByTrainCode(code,"");

Repeater1.DataSource=ds.Tables[0].DefaultView;

Repeater1.DataBind();

}

(4)在解决方案中添加新项,选择web窗体,命名为Detail.aspx,并按照下面的页面布局设计网页,添加页面控件:

将车站名称与调用的函数返回值中的TrainStation绑定,将到站时间与ArriveTime绑定,将发车时间与StartTime绑定,将里程KM与KM绑定。

网站的框体源代码可以自动生成。

(5)编写Detail.aspx的后台程序。

因为本实验要调用网上提供的web函数,首先要建立调用函数的服务对象

train.TrainTimeWebServicetrain=newtrain.TrainTimeWebService();

由于函数的返回值是是DataSet类型,建立一个DataSet的变量接收返回的数据

DataSetds=newDataSet();

在页面加载时由Label3显示web函数getVersionTime()的返回值,显示“火车时刻表为第六次提速最新列车时刻表,数据库最后更新:

及时更新”,本页面作为第一个页面车次的链接页面,需要将第一个页面的TrainCode传递过来,即定义一个string类型的变量来获取链接的id,代码为stringTrainCode=Request.QueryString.Get("id");

并将该TrainCode作为函数getDetailInfoByTrainCode()的函数传递给服务器,用DataSet类型的ds接收函数的返回值,Repeater1的数据源即为该函数返回的数据。

具体代码如下:

protectedvoidPage_Load(objectsender,EventArgse)

{

stringTrainCode=Request.QueryString.Get("id");

Label1.Text="火车"+TrainCode+"车次详细信息";

title1.Text=Label1.Text+"列车时刻表WebService实例";

Label3.Text=train.getVersionTime();

ds=train.getDetailInfoByTrainCode(TrainCode,"");

Repeater1.DataSource=ds.Tables[0].DefaultView;

Repeater1.DataBind();

Label2.Text="经由车站共计"+ds.Tables[0].Rows.Count.ToString()+"个";

}

数据绑定到模板时的事件是显示该车次的具体信息,当所显示的车站与输入的发车站相同时该行变为黄色,当所显示的车站与输入的到达站相同时该行变为橙色,其他的背景颜色为“#FFF8D9”,实现的具体代码:

protectedvoidRepeater1_ItemDataBound(objectsender,RepeaterItemEventArgse)

{

if((e.Item.ItemType==ListItemType.Item)||(e.Item.ItemType==ListItemType.AlternatingItem))

{

System.Web.UI.HtmlControls.HtmlTableRowoTR=(System.Web.UI.HtmlControls.HtmlTableRow)e.Item.FindControl("TR1");

StringStartStation=Request.QueryString.Get("Start");

StringArriveStation=Request.QueryString.Get("Arrive");

if(DataBinder.Eval(e.Item.DataItem,"TrainStation").ToString().Equals(StartStation))

oTR.BgColor="#FFFF00";

elseif(DataBinder.Eval(e.Item.DataItem,"TrainStation").ToString().Equals(ArriveStation))

oTR.BgColor="#FF9900";

else

oTR.BgColor="#FFF8D9";

}

}

至此该综合实验完成。

三、综合实验结果

在浏览器中打开程序的主界面

在发车站中输入“石家庄”,在到达站中输入“衡水”,显示结果如下:

点击其中的某一个车次,如4516\4517,显示如下:

在主界面的车次中输入4516\4517,显示如下:

点击车次下的超链接,显示结果如下所示:

四、综合实验总结或结论

本次实验是一门比较综合性的实验,用到的知识较多,使用的工具也比较陌生,但原理相对简单。

前一周基本上就是在熟悉开发环境的应用,及对ASP.NET和C#的熟悉与应用,第二周开始对实验程序进行编写。

虽然说本次实验的原理比较简单,但是实现起来还是有一定难度的,通过查询图书资料及对网络资源的利用,对用到的控件的属性和功能及设置方法、设置形式有了比较深入的了解,同时对后台程序的编写也有了比较深刻的认识。

由于原来并没有做过类似的东西,因此该实验让我学到很多知识,同时也激发了我对webservice应用的浓厚兴趣,以后我会加强这方面的了解,争取可以学到更多。

五、参考文献

[1]《Web程序设计——ASP.NET实用网站开发》清华大学出版社沈士根、汪承焱、许小东编著;

[2]《C#程序设计教程》清华大学出版社李春葆、谭成予、金晶、曾平编著

 

附录(设计流程图、程序、表格、数据等)

设计流程:

详见实验步骤

程序的主界面代码,保存名称为Default.aspx:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

列车时刻查询

style="height:

440px">

 

style="width:

292px;height:

160px;"/>

 列车时刻表WebService应用

 

111%">

发车站

TextBoxColumns="10"CssClass="input1"ID="textStartStation"MaxLength="10"

runat="server"ontextchanged="textStartStation_TextChanged"/>

 到达站

TextBoxColumns="10"CssClass="input1"ID="textArriveStation"MaxLength="10"

runat="server"Width="95px"/>

ButtonCssClass="input2"ID="Button1"runat="server"Text="查询"

onclick="Button1_Click"Height="19px"/>    

   

车次

TextBox

Columns="10"CssClass="input1"ID="textTrainCode"MaxLength="10"runat="server"

Width="95px"/>

   

ButtonCssClass="input2"ID="Button2"runat="server"Text="查询"

onclick="Button2_Click"Height="19px"/>

 

bgcolor="#CCFFFF"style="width:

111%">

#FFFF00"bgcolor="#CCFFFF"align=left>

车次

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

始发站

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

终点站

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

发车站

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

发车时间

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

到达站

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

到达时间

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

里程KM

10%;background-color:

#FFFF00;"bgcolor="#CCFFFF"align=left>

历时

Repeaterrunat="server"ID="Repeater1"EnableViewState="false"onitemdatabound="Repeater1_ItemDataBound">

HyperLinkID="TrainCode"runat="server"Target="_blank"Font

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

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

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