基于web的城市公交查询系统设计与实现毕业设计

基于web的城市公交查询系统设计与实现毕业设计

ID:11661816

大小:1.03 MB

页数:30页

时间:2018-07-13

上传者:U-3868
基于web的城市公交查询系统设计与实现毕业设计_第1页
基于web的城市公交查询系统设计与实现毕业设计_第2页
基于web的城市公交查询系统设计与实现毕业设计_第3页
基于web的城市公交查询系统设计与实现毕业设计_第4页
基于web的城市公交查询系统设计与实现毕业设计_第5页
资源描述:

《基于web的城市公交查询系统设计与实现毕业设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

淮阴师范学院毕业论文(设计)毕业设计说明书学生姓名学号学院专业计算机科学与技术(软件工程)题目基于web的城市公交查询系统设计与实现指导教师讲师/硕士(姓名)(专业技术职称/学位)2013年5月27 淮阴师范学院毕业论文(设计)毕业论文独创性声明本人郑重声明:本论文是我个人在导师指导下进行的研究工作及取得的研究成果。本论文除引文外所有实验、数据和有关材料均是真实的。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。其他同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。作者签名:日期:27 淮阴师范学院毕业论文(设计)摘要:随着信息化时代的推进,各个行业都在采用信息化的管理方式。城市公交的查询也可以依托计算机技术,来更好的为乘客提供信息服务,提高工作效率,降低乘客出行成本。如此才能提高公交在各出行方式中的竞争力。本设计是以MicrosoftSQLServer2005作为后台数据库开发,以VisualStudio2008作为开发平台,开发的基于ASP.NET的城市公交查询系统。该系统主要包括以下功能模块:乘客前台查询和管理员后台管理。前台查询包括换乘查询、线路查询、站点查询、评价统计,后台管理模块则通过管理员登录后分别实现对站点、线路的添加、删除、修改。本论文详细介绍了各模块的设计与实现。关键词:公交,ASP.NET,查询,数据库27 淮阴师范学院毕业论文(设计)Abstract:Withtheadvancementoftheinformationage,allindustriesininformationmanagement.Urbanpublictransportqueriescanrelyoncomputertechnology,toprovidepassengerswithabetterservice,improveefficiency,reducethecostofpassengertravel.ThedesignisbasedonMicrosoftSQLServer2005astheback-enddatabasedevelopmentasadevelopmentplatform,VisualStudio2008,thedevelopmentofurbanpublictransportquerysystembasedonASP.NET.Thesystemincludesthefollowingfunctionalblocks:PassengersfrontandadministratorsAdmin.Thefrontdeskqueryincludes:TransferInquirylineinquiry,sitefortheevaluationofthestatistics,thebackgroundmanagementmoduleaddedtothesite,linebytheadministratorlogin,delete,modify.Thispaperintroducesthedesignandimplementationofeachmodule.Keywords:BUS,ASP.NET,Inquiry,Database27 淮阴师范学院毕业论文(设计)目录1前言41.1课题背景42系统的开发工具与环境42.1ASP.NET简介42.2系统的开发要求53需求分析53.1功能需求分析54设计准备64.1功能模块划分64.2数据库设计64.2.1数据库概念结构设计64.2.2数据库逻辑结构设计85详细设计与实现105.1关于数据库操作105.2功能实现115.2.1主界面115.2.1站点查询115.2.2线路查询125.2.3换乘查询145.3后台管理175.3.1管理员登录175.3.2添加、修改、删除站点185.3.3添加、修改、删除车次205.4评价管理236测试246.1开发过程遇到问题246.2进一步研究工作25结束语26参考文献27致谢2827 淮阴师范学院毕业论文(设计)1前言1.1课题背景交通是每个城市发展的标志,便捷通达的交通系统能合理有效的改善交通拥塞、能源紧张、噪声干扰、废气污染等一系列问题,推动城市的建设与进步。当下城际轻轨、地铁最快捷便利,但是运营成本过高,只能在一些发达城市运行,老牌公交车则经久不衰,以其低成本高亲民度,健硕存在于各个级别的城市,服务着广大群众。为了更好的了解城市的公交运行系统,方便人们的出行,开发了本系统。该系统,有利于公交公司随时将公交最新信息发布到网上,乘客能够无门槛登录该系统查询公交信息。系统分为前台和后台,前台能够供登录系统的用户访问,后台由公交公司管理人员进行维护。该系统的核心功能为公交车信息的查询,查询分为站点换乘查询、公交站点查询、公交线路查询。站点换乘查询是用户输入起止站点名称,查询出如何乘车到达,要求能够查询出所有直达车次与二次换乘可到达的车次;公交站点查询是用户输入公交站点,查询出经过此站点的所有车次,并能够查看该车次详细信息;公交线路查询是用户输入指定车次,查询出此车次的详细信息。2系统的开发工具与环境2.1ASP.NET简介ASP.NET是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。ASP.NET建立在.NETFramework的编程类之上,它提供了一个Web应用程序模型,并且包含使生成ASPWeb应用程序变得简单的控件集和结构。ASP.NET包含封装公共HTML用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在Web服务器上运行,并以HTML的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为Web开发人员提供了面向对象的编程的丰富性。ASP.NET还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET使用这些同样的概念使开发人员能够以服务的形式交付软件。使用XMLWebservices功能,ASP.NET开发人员可以编写自己的业务逻辑并使用ASP.NET结构通过SOAP交付该服务。VisualStudio2008是一套完整的开发工具,用于生成ASPWeb应用程序、XMLWebservices、桌面应用程序和移动应用程序。VisualBasic2008、VisualC++.NET、VisualC#.NET和VisualJ#.NET全都使用相同的集成开发环境(IDE)27 淮阴师范学院毕业论文(设计),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,此框架提供对简化ASPWeb应用程序和XMLWebservices开发的关键技术的访问。2.2系统的开发要求该公交查询系统对操作系统的要求如下:硬件要求:1.CPU:最低IntelPentiumII500MHz2.磁盘空间:250MB(完全安装),155MB(快速安装)。3.内存:512MB(最好1GB以上)。4.显示:1024*768,256色。软件要求:1.操作系统:Windows2000以上的操作系统。2.开发平台:VisualStudio2008,MicrosoftSQLServer2005。3需求分析3.1功能需求分析本公交查询系统以淮安作为背景城市,其余城市可参照修改同样适用。本系统不仅能给广大熟悉淮安路线的本地市民提供便利,更加能为其他来到淮安出差、旅游的朋友带来方便。开发本系统的目标就是立足广大乘客的实际,着眼于公交业的未来发展,规范公交管理,提高服务质量,方便乘客查询。本系统采用结构化设计的方法以实现系统总体功能,即将整个系统划分为各个功能模块,正确处理模块之间和模块内部的联系以及和数据库的联系,通过对各模块的设计和模块之间关系的安排;来系统实现整个系统的功能。前台主要有4个模块:换乘查询、线路查询、站点查询、评价统计,后台管理模块则通过管理员登录后分别实现对站点、线路的添加、删除、修改。前台主要向用户提供换乘查询、车次查询、站点查询等查询方式,具体实现如下功能:1.换乘查询:输入起始站名与终点站名,系统会输出所有的公交路线方案;2.车次查询:输入已知的车次,系统会输出该车次经过的所有站点名;3.站点查询:输入已知的站点名,系统会输出经过该站点的所有车次。数据库会提供给用户全部的信息,用户可以根据自己的实际情况进行选择,另外,用户可以在系统左下角的评价栏投出自己宝贵的一票,系统将对结果进行统计分析,实现用户与公交公司的良好互动。后台由管理员输入其指定账号与密码对数据库进行管理,实现站点的添加、删除、修27 淮阴师范学院毕业论文(设计)改,线路的添加、删除、修改。系统模块如图3-1所示:图3-1系统模块图4设计准备4.1功能模块划分通过需求分析,可以确定该系统应完成的功能包括:1.前台功能:主要实现乘客对车辆信息的查询,包括站点间换乘查询、车次查询、站点查询;其次通过评价统计来实现乘客与公交公司的互动。2.后台功能:主要实现公交公司管理员对车辆信息的维护,包括线路信息的添加、删除、修改和站点信息的添加、删除、修改。4.2数据库设计通过需求分析,本系统在概要设计阶段得到五个数据实体:公交车次、公交站点、公交线路、管理员、评价。这些实体的属性均按照用户需求中的输入输出数据设定,故应该根据这五个实体设计五种类型的数据库表:公交车次表、公交站点表、不同车次线路表、管理员表、评价统计表。4.2.1数据库概念结构设计所谓概念结构设计,就是将需求分析得到的用户需求抽象为信息结构。概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定,它是整个数据库的关键。概念结构设计的特点:27 淮阴师范学院毕业论文(设计)1.能真实、充分地反映现实世界,是对现实世界的一个真实模型。2.易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成果的关键。3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。4.易于向关系、网状、层次等各种数据模型转换。在系统设计的开始,首先应该考虑如何用数据模型来描述数据库的结构和语义,以对现实世界进行抽象。“实体联系模型”(E-R模型)独立于计算机系统用的较为广泛,本系统也充分应用了它。E-R模型直接从现实世界抽象出实体类型及实体间联系,然后用E-R图来表示数据模型。它更接近人都思维,容易理解;与计算机无关,用户更容易接受,但它只是数据库设计的第一步。E-R图是直观表示概念模型的工具,它有三个基本成分:1.矩形框,表示实体类型(考虑问题的对象)。2.菱形框,表示联系类型(实体间的联系)。3.椭圆形框,表示实体的属性。该系统实体和属性的定义如下:管理员表E-R图(登录ID,登录姓名,登录密码)图4-1管理员表E-R图各站集合表E-R图(站名ID,站名)图4-2各站集合表E-R图各条线路表E-R图(站名ID,次序,站名)27 淮阴师范学院毕业论文(设计)图4-3各条线路表E-R图各条线路集表E-R图(车辆ID,车次,始发站,末站,运行区间,线路描述,IC卡类型,票价,首班车时间,服务类型,末班车时间)图4-4各条线路集表E-R图评价表E-R图(评价程度,票数)图4-5评价表E-R图4.2.2数据库逻辑结构设计本系统采用MicrosoftSQLServer2005数据库管理系统,该系统不仅能满足最大的数据处理系统和商业Web站点存储数据的需要,还能为个人或小企业提供易于使用的数据存储服务。之所以使用MicrosoftSQLServer2005就是因为它是一个企业级的集成商业智能的全面的数据库平台,MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使设计者可以构建和管理用于业务的高可用和高性能的数据应用程序。27 淮阴师范学院毕业论文(设计)本系统创建的SQL数据库名称为城市公交查询系统,并将数据文件和日志文件保存在APP_DATA文件夹中。此数据库包含5类表,分别是管理员表、各站集合表、各条线路表、各条线路集合表、评价表。(1)管理员表管理员表存放管理员登录系统所需要的用户名和密码,管理员登录后台时需要访问此表。表4-1管理员表字段名数据类型长度是否允许空是否为主键说明AdminIdint3否是登录IDAdminNamenchar(3)20否否登录姓名AdminPasswordnchar(6)20否否登录密码(2)各站集合表各站点集合表存放所有站点名、编号及描述,此表中的站点是各条线路表中的站点的集合即所有线路中的站点。表4-2各站集合表字段名数据类型长度是否允许空是否为主键说明SiteIDint10否否站点IDSiteNamenchar(10)10否否站点名SiteDescribenchar(50)50是否站点描述(3)各条线路表各条线路表是存放各线路信息的表。表4-3各条线路表字段名数据类型长度是否允许空是否为主键说明SiteIdint10否否站点IDSiteNamenchar(10)10否否站名SiteDescribenchar(50)50是否站点描述cixuint5否否线路中站点次序(4)各条线路集合表各条线路集合表是所有线路的集合表,存储了所有线路的ID和一些基本信息。27 淮阴师范学院毕业论文(设计)表4-4各条线路集合表字段名数据类型长度是否允许空是否为主键说明LineIdint10否是线路IDLineNamenchar(10)10否否线路名称LineAreanchar(10)10否否线路区间LinePricenchar(10)10否否票价LineStartPlacenchar(10)10否否始发站LineEndPlacenchar(10)10否否末站LineStartTimenchar(10)10否否早班车时间LineEndTimenchar(10)10否否末班车时间LineICbit5否否IC卡类型LineDescribenchar(80)80是否线路描述(5)评价表评价表用于用户对本系统的评价统计,存储不同评价的票数,饼图统计时调用这张表。表4-5评价表字段名数据类型长度是否允许空是否为主键说明评价程度nchar(10)10否是评价程度票数int5是否票数5详细设计与实现5.1关于数据库操作在动态网站中,调用数据库中的数据是十分频繁的,为了数据库的安全性,本程序将所有数据库的操作封装到DBConnect类中并放于DBConnect.cs文件中。开发人员在实现其他功能时,可以在此类中写函数然后调用,避免零散的重复的操作数据库。本系统的数据库的连接代码如下:publicstaticSqlConnectioncreateConnection(){SqlConnectioncon=newSqlConnection("DataSource=SUNNANYUN;InitialCatalog=Bus;IntegratedSecurity=True");returncon;}为了不反复的访问数据库,记录了一些基本信息,声明了以下成员变量:privateintSiteCount;//记录站点的总个数privateintLineCount;//记录线路的总个数privateint[]line;//保存每条线路27 淮阴师范学院毕业论文(设计)5.2功能实现5.2.1主界面任意乘客、用户都可以登录这个公交查询系统的主界面进行查询。该界面简洁、方便,一目了然的可以进入三大主要查询模块、管理员登录模块、评价模块,为各类用户提供便利。主界面见下图5-1:图5-1主界面图5.2.1站点查询任意用户登录该公交查询网站均可进行站点查询。用户需输入站点全称,点击查询按钮后,系统会在数据库中检测该站点是否存在,如果存在,将显示经过该站点所有的公交线路情况,如果不存在将提示该站点不存在。该站点查询界面如图5-2所示:27 淮阴师范学院毕业论文(设计)图5-2站点查询图该功能的实现,从textbox获取站点名称sitename,获取到sitename后,首先查询站点总表里是否存在该站点,若不存在,则count赋值为0,显示提示信息。若存在站点,则遍历所有的线路表查找站点,若某路线存在该站点,则记录该线路,存于数组Line。count用于统计经过该站点的线路的个数。ref关键字使参数count按引用传递。其效果是,当控制权传递回调用方法时,在方法中的count所做的任何更改都将反映在该变量中。主要实现代码如下:publicvoidGetSiteLine(string[]Line,stringsitename,refintcount){SqlConnectioncn=createConnection();cn.Open();stringstr="selectcount(*)fromsitewheresitename='"+sitename+"';";SqlCommandcmd=newSqlCommand(str,cn);if(Convert.ToInt32(cmd.ExecuteScalar().ToString())==0){count=0;cn.Close();}else{inti=0;for(intj=0;j0){Line[i++]=line[j].ToString();}}count=i;cn.Close();}}5.2.2线路查询27 淮阴师范学院毕业论文(设计)任意用户登录该公交查询网站均可进行线路查询。用户可以在下拉列表显示的所有线路中找到自己想查询的线路,点击查询,系统就会显示该线路去程、回程及一些相关信息。该线路查询界面如图5-3所示:图5-3线路查询图该功能的实现,首先从dropdownlist获取线路名称linename,然后从线路集合表中获取该线路的信息存于数组sLineTotal中,并通过线路集合表LineID,获取该路线的所有站点,存于数组line中,count用于统计该线路所有站点的个数。主要实现代码如下:publicvoidGetLine(string[]sLineTotal,string[]line,stringlinename,refintcount){SqlConnectioncn=createConnection();cn.Open();stringstr="select*fromlinetotalwherelinename='"+linename+"';";SqlCommandcmd=newSqlCommand(str,cn);SqlDataReaderreader=cmd.ExecuteReader();if(reader.HasRows)//从linetotal中获取信息{if(reader.Read()){sLineTotal[0]=reader.GetValue(0).ToString().Trim();sLineTotal[1]=reader.GetValue(1).ToString().Trim();sLineTotal[2]=reader.GetValue(2).ToString().Trim();sLineTotal[3]=reader.GetValue(3).ToString().Trim();sLineTotal[4]=reader.GetValue(4).ToString().Trim();sLineTotal[5]=reader.GetValue(5).ToString().Trim();sLineTotal[6]=reader.GetValue(6).ToString().Trim();sLineTotal[7]=reader.GetValue(7).ToString().Trim();sLineTotal[8]=reader.GetValue(8).ToString().Trim();sLineTotal[9]=reader.GetValue(9).ToString().Trim();27 淮阴师范学院毕业论文(设计)}reader.Close();cmd.CommandText="selectsitenamefromLine"+sLineTotal[0].ToString().Trim()+";";reader=cmd.ExecuteReader();if(reader.HasRows)//从具体的公交线路中获取站点顺序信息{intn=0;while(reader.Read()){line[n++]=reader.GetValue(0).ToString().Trim();}count=n;}}else{cn.Close();}}5.2.3换乘查询任意用户登录该公交查询网站均可进行换乘查询。用户可输入出发站和到达站,系统会检测是否存在该站点,若存在则会检测这两个站点是否有直达车,如果没有则会进行一次换乘。该换乘查询界面如图5-4所示:图5-4换乘查询图该功能首先从textbox里获取出发站点名StartSite和到达站点名EndSite,然后判断是否存在这两个站点,若不存在,则给出提示,否则,分别搜索包含StartSite、EndSite的路线存于临时数组StartSiteLineId和EndSiteLineId27 淮阴师范学院毕业论文(设计)中。分两种情况讨论,1.直达,遍历两条线路的所有组合,判断,如果存在路线相同的,则表示可直达。2.需换乘一次,在遍历两条线路的所有组合的前提下,若经过StartSite的路线中有和经过EndSite的路线有相同的站点,则表示可换乘一次到达。主要实现代码如下://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的站数publicvoidGetSiteLineHuanCheng(string[,]Line,stringStartSite,stringEndSite,refintcount){int[]StartSiteLineId=newint[21];//记录包含StartSite的路线int[]EndSiteLineId=newint[21];//记录包含EndSite的路线SqlConnectioncn=createConnection();cn.Open();//判断是否存在StartSite站点stringstr="selectcount(*)fromsitewheresitename='"+StartSite+"';";SqlCommandcmd=newSqlCommand(str,cn);if(Convert.ToInt32(cmd.ExecuteScalar().ToString())==0){count=-1;cn.Close();return;}//判断是否存在EndSite站点cmd.CommandText="selectcount(*)fromsitewheresitename='"+EndSite+"';";if(Convert.ToInt32(cmd.ExecuteScalar().ToString())==0){count=-2;cn.Close();return;}//搜索包含StartSite的路线inti=0;intj=0;for(j=0;j0){StartSiteLineId[i++]=line[j];}}StartSiteLineId[i]=-1;//用于终止判断//搜索包含EndSite的路线i=0;j=0;for(j=0;j0){EndSiteLineId[i++]=line[j];}}27 淮阴师范学院毕业论文(设计)EndSiteLineId[i]=-1;//用于终止判断//当两个站点处于同一条路线时,即直达for(i=0;i<20&&StartSiteLineId[i]!=-1;i++){for(j=0;j<20&&EndSiteLineId[j]!=-1;j++){if(StartSiteLineId[i]==EndSiteLineId[j]){count=-3;Line[0,0]=StartSiteLineId[i].ToString().Trim();//记录第几路车cmd.CommandText="selectcixufromLine"+Line[0,0]+"whereSiteName='"+EndSite+"'";//获得EndSite的次序intend=Convert.ToInt32(cmd.ExecuteScalar().ToString());cmd.CommandText="selectcixufromLine"+Line[0,0]+"whereSiteName='"+StartSite+"'";//获得StartSite的次序intstart=Convert.ToInt32(cmd.ExecuteScalar().ToString());Line[0,1]=Math.Abs(end-start).ToString();cn.Close();return;}}}intk=0;//用于记录当前的方案个数,用于数组Line[k,]//用于判断换乘的,换乘一次for(i=0;i<20&&StartSiteLineId[i]!=-1&&k<8;i++){int[]startsite=newint[35];//用于记录每条路线的站点idcmd.CommandText="selectsiteidfromLine"+StartSiteLineId[i]+";";SqlDataReaderreader=cmd.ExecuteReader();if(reader.HasRows){intnum=0;while(reader.Read()){startsite[num++]=Convert.ToInt32(reader.GetValue(0).ToString().Trim());}startsite[num]=-1;}reader.Close();for(j=0;j<20&&EndSiteLineId[j]!=-1&&k<8;j++){int[]endsite=newint[35];//用于记录每条路线的站点idcmd.CommandText="selectsiteidfromLine"+EndSiteLineId[j]+";";reader=cmd.ExecuteReader();if(reader.HasRows){intnum=0;while(reader.Read()){endsite[num++]=Convert.ToInt32(reader.GetValue(0).ToString().Trim());}endsite[num]=-1;}reader.Close();intLogo=0;//用来控制下面两个循环的//寻找两条线路中两条线路的相同站点27 淮阴师范学院毕业论文(设计)for(intm=0;m<35&&startsite[m]!=-1&&Logo==0;m++){for(intn=0;n<35&&endsite[n]!=-1&&Logo==0;n++){if(startsite[m]==endsite[n]){cmd.CommandText="selectcixufromLine"+StartSiteLineId[i]+"wheresitename='"+StartSite+"';";intstart=Convert.ToInt32(cmd.ExecuteScalar().ToString());cmd.CommandText="selectcixufromLine"+EndSiteLineId[j]+"wheresitename='"+EndSite+"';";intend=Convert.ToInt32(cmd.ExecuteScalar().ToString());cmd.CommandText="selectsitenamefromsitewheresiteid="+startsite[m]+";";Line[k,0]=StartSiteLineId[i].ToString();Line[k,1]=Math.Abs(m+1-start).ToString();//m+1就相当于是这点的次序Line[k,2]=cmd.ExecuteScalar().ToString().Trim();Line[k,3]=EndSiteLineId[j].ToString();Line[k,4]=Math.Abs(n+1-end).ToString();Logo=1;//跳出上面两个循环k++;}}}//endfor}//endfor(j=0;j<20&&EndSiteLineId[j]!=-1;j++)}//endfor(i=0;i<20&&StartSiteLineId[i]!=-1;i++)count=k;cn.Close();}5.3后台管理5.3.1管理员登录此模块为管理员登录后台服务,只要管理员输入正确的用户名、密码就能登录后台对数据库进行修改管理。界面如图5-5所示:图5-5管理员登录图该功能实现,首先分别从textbox中获取ID信息存入id,密码信息存入pass,判断非空的情况下查询管理员表,ID、密码一致的情况下允许进入后台管理。27 淮阴师范学院毕业论文(设计)主要实现代码如下:publicboolLogin(stringid,stringpass){SqlConnectioncn=createConnection();cn.Open();SqlCommandcmd=newSqlCommand("SELECTCount(*)FROMAdminWHEREAdminId='"+id+"'ANDAdminPassword='"+pass+"'",cn);intcount=Convert.ToInt32(cmd.ExecuteScalar());cn.Close();if(count>0){returntrue;}elsereturnfalse;}5.3.2添加、修改、删除站点对于新出现的一些站点,本系统具有添加功能,对于旧站点更名后的修改,本系统具有修改功能,对于旧站点的废除,本系统具有删除功能。管理员登录后台后,可以通过添加、修改、删除操作对各站点集合的表进行管理。三个功能的界面相似,只贴出添加界面,界面如下图5-6所示:图5-6添加站点图1.站点添加功能将输入textbox的站名存入数组name、站点描述存入数组SiteDescribe,然后添加到总站点表中,同时记录站点总个数的变量SiteCount要+1。实现的主要代码如下:publicboolZhandianAdd(stringname,stringSiteDescribe){SqlConnectioncn=createConnection();cn.Open();SiteCount++;SqlCommandcmd=newSqlCommand("insertintoSite(SiteID,SiteName,SiteDescribe)values("+SiteCount+",'"+name+"','"+SiteDescribe+"')",cn);if(cmd.ExecuteNonQuery()>0){cn.Close();returntrue;}27 淮阴师范学院毕业论文(设计)else{SiteCount--;cn.Close();returnfalse;}returnfalse;}2.删除站点功能将textbox中输入的信息存入数组name中,从站点总表中删除该站点,SiteCount要-1,同时遍历所有线路表,若表中含有该站点也要删除,具体代码如下:publicboolDeleteZhandian(stringname){SqlConnectioncn=createConnection();cn.Open();SqlCommandcmd=newSqlCommand("deletefromSitewhereSiteName='"+name+"'",cn);if(cmd.ExecuteNonQuery()>0){SiteCount--;for(intj=0;j0){for(intj=0;jalert('添加站点失败!');");}else{stringsLabel1="Label"+nLabelCount;nLabelCount++;stringsLabel2="Label"+nLabelCount;nLabelCount++;Labellabel1=(Label)this.FindControl(sLabel1);//可以根据空间名字找到对应的控件,方便我显示内容Labellabel2=(Label)this.FindControl(sLabel2);label1.Visible=true;label2.Visible=true;label1.Text=this.TextBox5.Text.ToString().Trim();label2.Text="--";}}//车次添加publicboolAddCheci(string[]addcheci){SqlConnectioncn=createConnection();cn.Open();stringstr="select*fromLineTotalwherelineid="+addcheci[0]+";";SqlCommandcmd=newSqlCommand(str,cn);if(cmd.ExecuteScalar()==null){boolb=true;str="insertintoLineTotalvalues("+addcheci[0]+",'"+addcheci[0]+"路','"+addcheci[1]+"','"+addcheci[2]+"','"+addcheci[3]+"','"+addcheci[4]+"','"+addcheci[5]+"','"+addcheci[6]+"','"+b+"','');";cmd.CommandText=str;intnum=cmd.ExecuteNonQuery();if(num>0){str="createtableLine"+addcheci[0]+"(SiteIdintnotnull,"+"SiteNamechar(10)notnull,"+"SiteDescribechar(50),"+"Cixuintnotnull,"+");";cmd.CommandText=str;cmd.ExecuteNonQuery();for(inti=7;addcheci[i]!=null;i=i+1){27 淮阴师范学院毕业论文(设计)cmd.CommandText="selectcount(*)fromsitewheresitename='"+addcheci[i]+"';";if(Convert.ToInt32(cmd.ExecuteScalar().ToString().Trim())==0){cmd.CommandText="insertintositevalues("+(++SiteCount)+",'"+addcheci[i]+"','');";cmd.ExecuteNonQuery();}cmd.CommandText="selectsiteidfromsitewheresitename='"+addcheci[i]+"';";intsiteid=0;siteid=Convert.ToInt32(cmd.ExecuteScalar().ToString().Trim());cmd.CommandText="insertintoLine"+addcheci[0]+"values("+siteid+",'"+addcheci[i]+"','"+""+"',"+(i-6)+");";if(cmd.ExecuteNonQuery()==0){cmd.CommandText="droptableLine"+addcheci[0]+";";cmd.ExecuteNonQuery();}}cn.Close();returntrue;}else{cmd.CommandText="deletefromLineTotalwhereLineId="+addcheci[0]+";";cmd.ExecuteNonQuery();cn.Close();returnfalse;}}else{cn.Close();returnfalse;}cn.Close();returnfalse;}2.修改车次修改车次功能和添加车次类似,就是该路线表是有的,不需要建表,然后其他的和添加类似。3.删除车次删除车次功能只需从dropdownlist选择要删除的车次,首先从Linetotal中删除车次信息,然后删除这个车次表。publicboolDeleteCheci(stringname){SqlConnectioncn=createConnection();cn.Open();SqlCommandcmd=newSqlCommand("selectLineIdfromLineTotalwhereLineName='"+name+"'",cn);intlineid=Convert.ToInt32(cmd.ExecuteScalar().ToString());cmd.CommandText="deletefromLineTotalwhereLineName='"+name+"'";if(cmd.ExecuteNonQuery()>0){27 淮阴师范学院毕业论文(设计)cmd.CommandText="droptableLine"+lineid;cmd.ExecuteNonQuery();intk=0;cn.Close();returntrue;}else{cn.Close();returnfalse;}returnfalse;}5.4评价管理为了与使用该公交查询系统的用户达成互动,该系统制作了一个评价的独立控件组,并用MsChart制作了评价票数的统计饼图。MsChart是微软发布的.NET3.5框架下的图表控件,可以支持各种各样的图形显示,常见的:点状图、饼图、柱状图、曲线图、面积图、排列图等等,同时也支持3D样式的图表显示,支持图形上各个点的属性操作,它可以定义图形上各个点、标签、图形的提示信息(Tooltip)以及超级链接。评价功能界面如下图5-8,统计饼图如下图5-9:图5-8用户评价图图5-9饼图实现图用户可以选择“很好”,“还可以”,“一般”,“仍需改进”,“很差”四个选项,进行评价,如图5-8。用户可以在图5-9上查看实时的评价结果,可以有多种显示方式,饼图,同心圆,3D等等。由于数据库操作简单,只是数据的添加功能,代码省略。MsChart属性定义的相关代码:protectedvoidPage_Load(objectsender,EventArgse){//Populateseriesdatadouble[]yValues=newdouble[5];string[]xValues=newstring[5];DBConnectdb=newDBConnect();27 淮阴师范学院毕业论文(设计)db.GetPingjiaData(xValues,yValues);Chart1.Series["Series1"].Points.DataBindXY(xValues,yValues);if(this.ChartTypeList.SelectedItem.ToString()=="Pie")Chart1.Series["Series1"].ChartType=SeriesChartType.Pie;elseChart1.Series["Series1"].ChartType=SeriesChartType.Doughnut;if(this.ShowLegend.Checked)Chart1.Series["Series1"]["PieLabelStyle"]="Disabled";elseChart1.Series["Series1"]["PieLabelStyle"]="Inside";//SetcharttypeandtitleChart1.Series["Series1"].ChartType=(SeriesChartType)Enum.Parse(typeof(SeriesChartType),this.ChartTypeList.SelectedItem.ToString(),true);if(ChartTypeList.SelectedItem.ToString()=="Doughnut"){Chart1.Titles[0].Text="评价情况双环图显示";}else{Chart1.Titles[0].Text="评价情况饼图显示";}//SetlabelsstyleChart1.Series["Series1"]["PieLabelStyle"]=this.LabelStyleList.SelectedItem.ToString();//SetDoughnutholesizeChart1.Series["Series1"]["DoughnutRadius"]=this.HoleSizeList.SelectedItem.ToString();//DisableDoughnutholesizecontrolforPiechartthis.HoleSizeList.Enabled=(this.ChartTypeList.SelectedItem.ToString()!="Pie");//Explodeselectedcountryforeach(DataPointpointinChart1.Series["Series1"].Points){point["Exploded"]="false";if(point.AxisLabel==this.ExplodedPointList.SelectedItem.ToString()){point["Exploded"]="true";}}//Enable3DChart1.ChartAreas["ChartArea1"].Area3DStyle.Enable3D=CheckboxShow3D.Checked;Chart1.Series[0]["PieDrawingStyle"]=this.Dropdownlist1.SelectedItem.ToString();//Piedrawingstyleif(this.CheckboxShow3D.Checked)this.Dropdownlist1.Enabled=false;elsethis.Dropdownlist1.Enabled=true;if(this.ShowLegend.Checked)this.Chart1.Legends[0].Enabled=true;elsethis.Chart1.Legends[0].Enabled=false;}6测试6.1开发过程遇到问题1.在实现添加路线功能时,最初,要实现在textbox27 淮阴师范学院毕业论文(设计)内输入一个站名,下表可以动态显示刚才输入的站点名。但是出现了每按一次“添加”都只显示当前站点名的问题,无法记录以前的站点名。经过查看代码,询问老师,发现由于用于记录站点数的变量nLabelCount,在声明时是“intnLabelCount=5”。每按一次“添加”就刷新一次,变量会重新赋值,达不到预期的结果,即nLabelCount永远等于5。若用static修饰,则变量nLabelCount可以直到页面结束,生命周期才结束,这样可以用来动态显示输入的站点。如下图6.1站点添加所示:图6-1站点添加2.在实现管理员登录后,解决了GetAdminName的问题后,在实现跨页面传值,动态显示管理员姓名时遇到了更棘手的问题,最后通过查找资料、询问老师,尝试了三种不同方法。第一种,使用QueryString,这种方式最简单,但是存在会将传递的值显示在浏览器的地址栏上的缺点,非常不安全。第二种,使用Cookie对象变量,此方法是对每一个用户而言,Cookie变量存放在客户端,需配合ASP.NET内置对象Request来使用。最后一种,使用Session变量,此方法可以将控件中的值存在Session变量中,然后在另一个页面中使用它,以达到不同页面间实现值传递的目的。因为Session变量存放在服务器端,所以当其存储较多的数据时会消耗比较多的服务器资源。因为此处跨页面只是传递管理员姓名,所以尝试发现使用Session变量最合适。实现效果如下图6-2:图6-2管理员姓名传值显示图6.2进一步研究工作本系统设计在换乘查询时没有统计每两个站点之间的距离,只统计了从出发站到到达站的站数,无法计算出最短路径,因为有时站数多的不一定距离就远,需求大的站点可能隔一小段路程就要停靠。在乘客查询到合适自己的路线后,系统没有提供打印功能,待今后添加该功能。27 淮阴师范学院毕业论文(设计)结束语本系统在经过几个月断断续续的设计后,终于实现了预期的功能。在这之前,虽然也学过C#的相关技术,但是概念一直很模糊,没有实战一番后如此有收获。感谢老师让我了解了C#并将之与ASP.NET结合,实现了此系统,在此过程中虽然遇到了很多困难,但是经过充足的准备还是比较顺利的完成了该设计。在开发这个系统之前,本人做了大量的准备工作,收集了很多资料。充分了解需求,进行概要设计,数据库的设计,程序设计又该如何做,怎样能够模块化的实现这些功能等等一系列问题都必须通过查阅资料,或者请教老师来解决。令本人感到收获最大的并不是能够完成整个查询系统的设计,而是学会了如何去设计一个系统,如何在遇到问题时细心的解决,这为本人经后的学习和工作做了坚实的铺垫。27 淮阴师范学院毕业论文(设计)参考文献[1]曹祖圣.吴明哲.VisualC#.NET程序设计经典.北京:科学出版社,2004.P.50-53[2]金银秋.数据库原理与设计.北京:科学出版社,2003.P.201-230[3]张海藩.软件工程.北京:人民邮电出版社,2002.P.75-80[4]哈特.ASP.NET2.0经典教程——C#篇.孟宪瑞,易磊.北京:人民邮电出版社.2007-2-1.P.20-40.[5]郝刚.ASP.NET2.0开发指南.北京:人民邮电出版社.2006-5-1.P.53-55.[6]蒋培,王笑梅.ASP.NETWeb程序设计.北京:清华大学出版社.2007-6-1.P.76-88.[7]刘乃丽.精通ASP.NET2.0+SQLServer2005项目开发.北京:人民邮电出版社.2007-5-1.P.189-20327 淮阴师范学院毕业论文(设计)致谢本论文的工作是在我的指导老师老师的悉心指导和帮助下完成的。本论文从选题、程序的设计与实现到最后的审阅定稿得到张老师的悉心指导。值此论文完成之际,谨向张老师表示最衷心的感谢!同时也要感谢学院里的领导和老师们以及其他帮助过我的老师,是你们对我无私的帮助以及为我创造良好的学习环境,才使得本文能顺利完成。另外要感谢我的家人,他们的支持是我不断学习进步的动力。最后,感谢参加本人论文评阅和答辩的各位老师,谢谢!27

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭