当前位置: 首页 > article >正文

C#毕业设计——基于C#+asp.net+SVG的基于SVG的自动站雨量分析系统设计与实现(毕业论文+程序源码)——雨量分析系统

基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现毕业论文程序源码大家好今天给大家介绍基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦文章目录基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现毕业论文程序源码1、项目简介2、资源详情3、关键词4、毕设简介5、资源下载1、项目简介该自动站雨量分析系统是基于B/S架构使用ASP.NET来开发的。主要使用了.NET三层架构、XML程序集、矢量图形的动态生成、Web服务等技术并实现了系统模块管理、雨量数据管理、城市数据管理、雨量数据查询、生成矢量图形格式的图表等功能模块。在系统中主要对矢量图形文档的生成进行了分析和设计采用DOM模型来操作该图形文档并封装了基本的图形元素。该自动站雨量分析系统作了新的尝试采用基于可扩展标记语言的矢量图形作为图形格式系统与Web服务技术相结合使系统的可重用性和开放性得到了很大的提高。2、资源详情项目难度中等难度适用场景相关题目的毕业设计配套论文字数10851个字29页包含内容整套源码完整毕业论文3、关键词可伸缩矢量图形可扩展标记语言.NET三层架构Web服务4、毕设简介提示以下为毕业论文的简略介绍项目源码及完整毕业论文下载地址见文末。引言1.1 项目背景雨量监测对于工农业生产以及人民生活中的灾害预防、有效利用水资源具有重要意义建立完整高效的雨量监测系统显得非常有必要。雨量分析系统是应用于防汛、水文等部门的用于辅助分析自动气象站雨量监测的数据。雨量分析系统通常都会生成一些图表但由于这些图表是二进制格式的其可重用性不高而且这些系统通常都缺乏开放性大量的数据无法提供给外部研究人员使用造成资源浪费。该自动站雨量分析系统在雨量分析领域中作了新的尝试它采用了基于XMLeXtensible Markup Language可扩展标记语言的开放的SVG(Scalable Vector Graphics可伸缩矢量图形)作为图形格式在引入先进技术的同时提高了系统的可重用性而且该系统与Web服务的结合也使系统的开放性大大地提高。作为示例该系统要实现对四川省部分市县的城市及雨量数据进行管理与分析能查询各市县的历史雨量数据并以SVG格式的曲线图显示出来实现简单地统计分析功能。作为一个完整的系统还要实现对系统内各个模块以及用户权限的管理。1.2 本项目的应用价值本套系统是基于SVG的雨量分析系统实现的主要功能是对各地收集的雨量数据加以分析并以SVG矢量图形方式进行显示使用户能够更加直观地了解某一区域的历史雨量。雨量分析系统主要应用于防汛、水文等部门通过对各地雨量数据的统计与分析来预防可能会造成的洪水灾害并有效的调配和利用水资源。1.3 本项目的相关开发技术该项目采用.NET开发开发环境采用Visual Studio 数据库采用MSSQLServer并使用.NET的三层架构技术使业务逻辑与数据表示隔离开来提高系统的模块化程序在图像显示上使用了基于XML的矢量图形语言SVG并使用.NET XML DOMDocument Object Model文档对象模型来生成和操作SVG图形并使用Web服务来提供外部接口以提高系统的开放性。2 SVG技术2.1 XML介绍XML是可扩展标记语言的简称它定义了结构化表示数据的标准格式。XML是W3CWorld Wide Web Consortium万维网联盟为适应互联网的发展而推出的新型Web语言是国际标准化组织所制订的SGMLStandard Generalized Markup Language标准通用标记语言的子集。它是用于定义其他标识语言的一种元语言。它具有可扩展性、平台独立性、数据与表现分离以及结构化数据等特点非常适合网络环境下的数据传输和表达。XML通过其可扩展性提供了一种通用的数据格式不同的软件系统之间可以通过这种新的数据描述方式进行通信从而实现完全的交互操作这源于XML将结构化的数据表示为一个纯文本的特性。可以通过XML对信息加以规范化定义和描述并且在互联网上进行数据的传输。SVG就是XML在图形图像领域的一个应用。2.2 SVG介绍SVG是一种基于XML的开放的标准文本式矢量图形描述语言即它是用XML元语言定义的语言。SVG图像是与XML1.0兼容的文档SVG元素是指示如何绘制图像的一些指令阅读器解释这些指令把SVG图像在指定设备上显示出来。使用SVG可以在网页上显示出各种各样的高质量的矢量图形包括许多图像处理中常见的功能如图形、文字、动画、颜色、滤镜效果等。最关键的是SVG完全用普通文本来描述也就是说这是一种专门为网络而设计的基于文本的图像格式。由于SVG是基于XML的所以可扩展性很强能够描述任何复杂的图像甚至动态交互式图像。2.3 SVG的特点虽然SVG的“矢量描述”并不是一个全新的概念但它综合了矢量图形、点阵图像和纯文字的优点以一种标准将其统一起来描述。它由计算机根据矢量数据计算后绘制而成相较于位图图像矢量图像有以下特点1文件的大小与图形的复杂程度有关而与图形的具体尺寸无关2图形的显示尺寸可以无限缩放变化后不影响图形的质量。正是由于矢量图像的这些特征使得它尤其适合于网上传播。图片和交互在以前是两个独立的概念而在SVG中文字与图形并非封装于SVG内而是可以借助DOM和脚本语言等手段与外界交互使得在图片内进行交互成为可能这是以往的图像所不能做到的。统一的标准和开放性是SVG的强大生命力所在。标准统一可增强网络的交流结束目前业界各种格式并存的混乱局面开放性则有利于日后的各种新的元素加入其中扩充其功能。SVG使用时客户端的软件负责解释SVG文本并将其转化成实际的矢量图像文字仍是文字线条仍是线条可在客户端即时修改这也是SVG的一大特色。2.4 SVG规范SVG规范定义了6种类型的对象包括矢量图形、图像、渐变填充、滤镜、可重用单元和文本。图形对象可以进行组合、添加样式、几何变换等操作。根据功能不同这些主要对象可归结为基本要素对象和页面描述功能对象两大类具体请见图1和图2所示。图1 SVG基本要素图2 SVG页面描述功能框架元素就是组成一个完整SVG文档的基本元素主要包括、、元素和元素等等。svg元素是文档元素必不可少的它相当于指定一块画布内部的所有图形元素都将显示在这块画布指定的区域中。因此它有一些标记位置的属性像xywidthheight。desc和title元素是用来描述图像的注释性元素。还有一些表示基本图形的标记如rectcircle等等SVG图形就是通过组合这些基本的元素和组件来生成复杂的图形的。3 雨量分析系统的需求分析3.1 系统需求需求分析是一种软件工程活动它在系统需求工程和软件设计间起到桥梁的作用主要任务是将用户的需求变为软件的功能和性能描述。基于SVG的自动站雨量分析系统要实现对四川省部分市县及其雨量数据进行管理与分析能够以各种时间方式查询各市县的历史雨量数据并以SVG格式的曲线图显示出来要求实现简单地统计分析功能例如统计同一时间段内两个不同地区的雨量数据对其进行分析并生成SVG图形以辅助工作人员判断某一时间数据点过高的城市是否有发生灾害的可能性。作为一个完整的系统还要能够管理系统内各个模块及设置不同用户的权限。由于会涉及到大量数据因此要有对数据库的管理实现数据备份功能以保障数据的安全性。系统功能模块主要包括以下几个方面1、系统管理2、雨量数据管理3、城市信息管理4、前台管理5、数据备份。3.2 功能分析以下按照不同的模块进行功能描述1、系统管理实现以下四个功能1模块管理管理系统中所有模块对模块进行添加、更新及删除2用户管理添加系统用户选择对应的角色对系统中已有用户进行更新包括登陆密码及角色、删除3角色管理新增、更新、删除系统角色分配角色权限4日志管理能根据选择条件对已有日志进行查询、删除和下载。2、雨量数据管理页面管理后台的所有雨量数据有如下功能1数据查看可根据选择条件包括日期和城市选择显示雨量数据也可根据选择的显示方式以SVG图形方式查看雨量数据2数据录入选择某一城市后可以选择任意一天进行雨量数据输入3数据更新在选定城市某一天的雨量数据后点击更新可以修改雨量数据。3、城市信息管理页面管理地图页面中出现的所有城市的雨量数据通过输入城市名及选择上级城市新增城市数据也可以对已有城市数据进行更新修改名称或上级城市、删除操作。4、前台管理页面放置了将前台查询页面这一模块是整个系统的重点部分包括地图管理、选择显示方式、选择查询方式并生成图形显示页面。区别于其它系统本套系统对于数据图形使用了SVG这种文本式矢量图形描述语言。用户查询数据并生成SVG曲线图的操作流程如图3所示。图3 SVG页面描述功能5、系统的数据备份操作能够实现将数据库文件备份到本机上的指定目录下需要时再进行数据恢复以保证数据的安全性。备份管理有如下功能1数据备份利用SQLServer的备份操作backup database进行数据备份2数据恢复利用SQLServer的恢复操作restore database进行数据恢复。3.3 用例分析系统全局管理员用例图如图4所示。图4 系统全局管理员用例图4 雨量分析系统的设计4.1 系统模块结构系统主要分为系统管理、雨量数据管理、城市信息管理、前台管理等几大模块其结构关系如图5所示。图5 系统模块结构4.2 数据库的设计4.2.1 总体设计数据库的E-R模型图如图6所示。图6中用户在具有某些角色之后才有权限使用系统功能而不能直接使用因此设计中将角色与系统功能关联起来并将用户与系统功能隔离开来日志的生成是在用户使用系统功能的过程中自动生成的其中需要保存当前用户的ID和对应的系统功能的ID。图6 数据库E-R图4.2.2 数据库表字段说明1、城市数据表City存储的是地图上所有城市的相关信息具体见表1所示。4.3 开发技术及过程4.3.1 三层架构三层架构也称三层体系结构即表现层、业务逻辑层和数据访问层。表现层主要指用户界面它要求尽可能的简单使最终用户不需要进行任何培训就能方便地访问信息第二层就是业务逻辑层也就是常说的中间件所有的应用系统、应用逻辑、控制都在这一层系统的复杂性也主要体现在业务逻辑层最后的数据访问层存储大量的数据信息和数据逻辑所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。三层架构的层次关系见图7所示。图7 三层架构示意图这些层相互之间独立性好可以单独开发单独测试。三层架构另一个优点是它的安全性客户端只能通过上一层来访问下一层的服务减少了入口点把很多危险的系统功能都屏蔽了。表现层位于最上层离用户最近用于显示数据和接收用户输入的数据为用户提供一种交互式操作的界面。通过表现层用户输入数据、获取数据。表现层同时也提供一定的安全性确保用户没有机会看到机密的信息。中间的业务逻辑层是表现层和数据访问层的桥梁它响应表现层的用户请求负责处理用户输入的信息或者是将这些信息发送给数据访问层进行保存或者是调用数据访问层中的函数再次读出这些数据。业务逻辑层也可以包括一些对“商业逻辑”描述的代码在里面。数据访问层定义和维护数据的完整性、安全性它响应业务逻辑层的请求来访问数据仅实现对数据的保存和读取操作。访问的数据可以是数据库系统、二进制文件、文本文档或是XML文档等等。本项目中.NET三层架构中各个包之间的关系结构如图8所示。图8 三层架构名称空间关系图其中Model命名空间中的类对应于数据库中的表为整个架构提供方便的数据表示形式IDAL和SQLServerDAL对应于数据访问层IDAL命名空间中定义了一整套用于操作数据库的接口具体的数据访问操作在SQLServerDAL命名空间中实现DALFactory命名空间中定义了获取数据访问操作的方法在BLL命名空间中就使用这些方法来获取符合IDAL中定义的接口的对象再用它来对数据库进行操作显然它们属于业务逻辑层而表现层对应于前台页面代码包括获取用户响应和请求再通过BLL来获取数据并返回给用户。下面给出具体例子说明数据和指令是如何在各层之间流动和传递的。首先表现层中的某一对象调用业务逻辑层BLL中的Add函数来向数据库中添加数据BLL.SVGRAS_City.Add(city);其中city是Model.City类型的参数BLL.SVGRAS_City.Add为被调用方法的完整路径。此时数据流向业务逻辑层指令执行到业务层如下public static string Add(SVGRAS.Model.SVGRAS_City model){ISVGRAS_City dalSVGRAS.DALFactory.SVGRAS_City.Create();return dal.Add(model);}业务层接收到表现层传入的参数model首先进行业务逻辑处理比如数据完整性合法性以及其他一些业务处理然后调用工厂中相应的方法来创建相应的SQLServerDAL对象以获得访问数据访问层的对象。工厂类中对应方法如下public static SVGRAS.IDAL.ISVGRAS_City Create(){SQLServerDAL.SVGRAS_City objnew SQLServerDAL.SVGRAS_City();return obj;}此时数据流向数据访问层指令执行到数据访问层publicstringAdd(SVGRAS.Model.SVGRAS_Citymodel){model.CityIDCommon.GetNextIdByTable(SVGRAS_City,CityID,SingleLayer,null,10);model.OrderIDmodel.CityID;StringBuilderstrSqlnewStringBuilder();strSql.Append(insert into SVGRAS_City(CityID,FatherCityID,OrderID, CityName,CityDes) values ();strSql.Append(model.CityID,);strSql.Append(model.FatherCityID,);strSql.Append(model.OrderID,);strSql.Append(model.CityName,);strSql.Append(model.CityDes));DbHelperSQL.ExecuteSql(strSql.ToString());returnmodel.CityID;}在数据访问层通过调用存储过程的方式将数据传递到数据库并执行相应的操作。DbHelperSQL.ExecuteSql表示封装好的方法strSql.ToString()放置添加语句。此时调用DbHelperSQL.ExecuteSql执行SQL语句。publicstaticintExecuteSql(stringSQLString){using(SqlConnectionconnectionnewSqlConnection(connectionString)){using(SqlCommandcmdnewSqlCommand(SQLString,connection)){try{connection.Open();introwscmd.ExecuteNonQuery();returnrows;}catch(System.Data.SqlClient.SqlExceptionE){connection.Close();thrownewException(E.Message);}}}}到此完成了一条城市数据的添加操作。4.3.2 SVG文档的表示SVG文档的生成使用了.NET XML程序集它提供了一整套封装了XML操作的类可以很方便的创建和处理XML文档它的整体结构符合文档对象模型的定义。将SVG文档用DOM表示其结构见图9所示。图9 SVG文档的DOM对象结构图9对应的XML文档部分代码如下?xml version1.0standaloneyes?svg viewBox0 0 500 600text x10y20strokered成都信息工程学院/text/svg5 系统实现5.1 雨量数据管理的实现在雨量数据管理页面中进行雨量数据录入时必须先选中要添加雨量数据的城市及日期点击“确定”后系统首先查看是否有该城市这一天的数据有的话就直接显示没有的话会创建一条新的雨量数据记录自动生成随机数作为这一天24小时的雨量数据并将数据写入数据库中。这里创建新雨量数据记录是基于三层架构来做的首先创建Model.SVGRAS_RainPerHour对象然后将数据保存到其成员变量中再调用BLL.SVGRAS_RainPerHour.Add方法来将此对象包含的数据写入到数据库中。页面效果如图10所示。图10 雨量数据录入界面在实际应用中这里生成的数据全部为0而具体的数据需要通过数据更新功能来输入。这里采用自动生成数据方式是为了方便系统的测试与演示。用户要填入新的雨量数据需要点击更新按钮进入数据更新页面在其中填入新数据后点击提交按钮完成更新。5.2 雨量数据分析与SVG图像的生成1、获取用户设置的查询参数用户在查询页面中设置相应的查询参数如查询方式、查询日期等等并点击确定按钮(即选择某一城市)后程序首先会验证用户的参数设置是否正确若不正确则弹出错误提示若通过验证再按照用户设置的查询参数传到后续程序中。这里的验证分为两部分一部分是在浏览器端进行的使用javascript代码在向服务器发送数据前完成验证这里的验证是测试用户输入的数据是否合法如日期格式是否正确参数是否设置完整等等如果用户设置的是按多日查询却只设置了起始日期那么就不会通过验证。只有通过验证才会将参数数据发送到服务器端这样可以在一定程度上减轻服务器端的压力。图11 前台界面另一部分验证是在服务器端进行的它主要验证用户是否拥有操作权限以及数据库中是否存在数据。只有通过验证后才能在数据库中查询相应的雨量数据。2、从数据库中查询数据按照用户设置的查询模式转到相应模式的查询代码中。然后再根据查询参数从数据库中获取相应的数据。如用户设置的查询模式为按天查询查询城市为成都日期为2007-5-27然后调用strWhere()方法来生成查询参数再传入三层架构中的业务逻辑层中的getList()方法就得到了查询的结果代码如下DataTable table1BLL.SVGRAS_RainPerHour.GetList(strWhere(“days”)).Tables[0];3、对数据进行分析处理并组织为适合显示的形式前面查询得到的是一个DataTable表里面的数据是与数据库中对应起来的但这样的数据却不便于生成图像因此要对它进行重组转换为雨量数据和相关文字信息。在这里定义了一个类RainfallData来辅助这个类包含了城市信息、时间信息、相应的雨量信息等等具体代码如下publicclassRainfallData{publicstring cityId;publicstring cityName;publicintmax0;publicintmin1000000;publicdoubleaverage;publicstring startY;publicstring startM;publicstring startD;publicstring endY;publicstring endM;publicstring endD;//计算出最大最小值publicvoidcalMaxMin(){doubletmp0;for(inti0;idata.Length;i){if(data[i]max)maxdata[i];elseif(data[i]min)mindata[i];tmpdata[i];}average(tmp/data.Length);}publicint[]data;}然后将每一组雨量数据都存到该类的对象中并将这些对象传给SVG显示模块。此外若查询模式是多日查询或多月查询还需要将数据按日或月累加起来。4、使用XML对象来生成SVG文档项目中定义了一个SVG文档类SVGDocument它继承自XMLDocument在它内部封装了加载SVG文档元素的操作以后创建好文档中的元素后就直接插入到该文档中即可。另外定义了一个辅助类SVGHelper里面定义了一些向某个结点添加基本SVG元素的操作以方便向文档中添加SVG图形。现在创建一个SVG文档并且添加一条线、一个圆、一个矩形和一行文本的代码如下SVGDocumentdocumentnewSVGDocument(800,700);SVGHelper.InsertLine(document.DocumentElement,1,1,300,350,Color.BlueViolet,5);SVGHelper.InsertCircle(document.DocumentElement,100,100,50,Color.Red,Color.Gold,2.5);SVGHelper.InsertRect(document.DocumentElement,300,400,80,70,Color.Gray,Color.Honeydew,3);SVGHelper.InsertText(document.DocumentElement,网络工程,10,100,15,楷体,Color.Blue);5、向SVG文档中添加坐标系为了方便坐标系的创建定义了坐标系类CoordinateFrame在它里面封装了坐标系的细节并提供创建坐标系、向坐标系中添加点、添加线等接口操作相应的也定义了坐标类Coordinate来对坐标信息进行封装。现在向SVG文档中添加坐标系并向坐标系中添加一系列点和线的代码如下CoordinateFrameframenewCoordinateFrame(10,10,600,500,5,9,document.DocumentElement);CoordinatepointnewCoordinate(50,40);frame.InsertPoint(point);Coordinate[]pointsnewCoordinate[5];//... 在此获取坐标数据 ...frame.InsertLine(points,成都,Color.Chocolate);6、将数据转换为坐标点的数组处理按照用户参数查询获得的数据并将其转换为对应于坐标系中的坐标点的数组。这里需要求出所有雨量数据的最大值和最小值并计算出合理的纵坐标的坐标点数然后将每一个雨量数据除以一个纵坐标点代表的雨量数据以转换为坐标位置。然后将坐标点添加到坐标系上并连成曲线。7、添加相应的文字标签及均值线在点上以及线上面加上说明文字。不同的线会用不同的颜色显示并标注相应的说明文字。同时将求出的每组数据的均值以均值线的方式画到坐标系上。8、修改响应类型为SVG文档类型image/svgxml将要返回的响应类型改为image/svgxml这样浏览器才会将页面作为SVG图形来解析。然后将SVG文档以XML对象表示的内容发送到客户端。具体代码如下Response.ContentTypeimage/svgxml;document.Save(Response.OutputStream);Response.Flush();Response.End();现在客户端就可以看到如图12所示的SVG格式的图形了。图12 SVG图形生成界面.3 使用Web Service方式提供开放的外部接口5.3.1 Web Service介绍Web Service是建立在HTTP协议、SOAP协议和UDDI等标准以及XML等技术之上的其主要目标就是在现有的各种异构平台的基础上构建一个通用的与平台和语言无关的接口层各种不同平台之上的应用通过这个接口层来集成已有的服务。Web Service具有以下一些特征1、完好的封装性Web Service既然是一种部署在Web上的对象自然具备对象的良好封装性。对使用者而言只能看到该对象提供的功能列表。2、松散耦合当一个Web Service的实现发生变化时调用者完全不会感觉到。对调用者来说只要调用的接口不变其内部实现的任何变化对用户来说都是透明的。3、高度可集成能力由于Web Service采用简单的、易于理解的XML作为接口描述完全屏蔽了不同平台和系统的差异性因此任何符合协议的应用都可以集成已有的Web Service。5.3.2 使用Web Service的意义使用Web Service可以引入很高的开放性使得系统可以方便的集成到其它应用中同时也为系统的二次开发预留了很好的接口。此外作为雨量数据分析系统必然会涉及到大量的雨量数据而这些雨量数据是从全国各地的设备终端采集汇总而来的一旦有了这一开放的接口所有的数据都可以通过它来写入到数据库中。另外这些雨量数据的采集是相当不容易的一般的科研机构和学校是不可能获取如此大量的真实数据的例如本套系统就无法获得到这些真实数据只能通过随机数来生成假的数据。这样就限制了这些数据的科研作用。然而通过Web Service来提供开放的接口后所有的用户都可以通过它来很容易的获取这些雨量数据还可以通过接口使用系统中已经做好的各种功能避免了重复开发的浪费。因此使用Web Service来提供开放的接口是有很大的积极意义的。5.3.3 Web Service接口的实现在系统中只提供简单功能的实现主要接口有1、获取城市ID通过该接口可以查询指定城市在系统中分配的ID值其参数为城市名称。在查询城市数据前首先要通过此接口获得城市的ID值。2、获取雨量数据通过输入查询条件来获得雨量数据。这里的查询条件就是SQL查询语句中的where子句用户可以指定某一天、某几天或某几个月的等条件。例如最简单的查询“江油”的所有雨量数据的参数为“CityId ‘0000000013’”。接口实现代码如下[WebMethod]publicstring getCityId(string city){returnSVGRAS.BLL.SVGRAS_City.GetList(CityNamecity).Tables[0].Rows[0][CityId].ToString();}[WebMethod]publicDataSetgetRainData(string sql){returnSVGRAS.BLL.SVGRAS_RainPerHour.GetList(sql);}6 系统测试在前台页面中对每种查询方式都进行了测试所有数据查询、分析以及图像生成功能都能正确工作。例如选择同一城市不同时间段比较模式并设置起止日期和时间这里的日期跨越两个月即4月30日到5月1日设置显示均值线方式点击城市名称就可以选择城市并将其加边框标注出来再次点击即可取消相应城市的选择并去掉相应边框点击确定按钮后就会打开新的窗口显示查询结果。用户管理界面列出了系统当前的所有用户点击“选择”选中一个用户后可修改用户名、密码并为用户指定系统角色。系统当前共有三种角色角色的权限由管理员指定例如要为系统管理员指定系统管理这一模块的权限选中这一角色在权限分配区选中相应的模块权限即可。角色的选择可以是一个或多个默认角色选择为空若没有为用户指定系统角色则用户登陆系统后不会出现系统树型菜单用户也就不能进行任何操作。日志是根据用户操作自动生成的在后台管理中可以根据选择条件进行日志的查询、删除和下载若选择条件为空则默认为选择所有日志。系统中的城市分为两级每一个城市都有其上级城市。通过输入城市名称并选择上级城市后可新增一个城市若要更新或删除城市则先要点击对应的选择按钮来选中一个城市然后可对选中的城市信息进行更新或删除等操作。结 论雨量分析系统实现了对四川省部分市县及其雨量数据的管理与分析功能能够以各种方式例如相同城市不同时间或相同时间不同城市查询各市县的历史雨量数据并以SVG格式的图形显示出来。此外还实现了管理系统内各个模块及设置不同用户权限的功能以及数据库备份和还原功能。通过本项目的开发对C#语言有了更多的体会也更多地了解了B/S架构系统的开发。在开发过程中学会了SVG这门新型的可伸缩矢量图形语言在使用时体会到了这门语言的实用性及它带来的乐趣。在项目实现过程中也遇到过不少问题和困难同时由于缺乏编程经验在编写代码的过程中碰到了很多难以解决的问题和障碍在老师的指导和同学的帮助下查找各种资料这些问题得以解决并积累了一定的开发经验。例如刚开始不太了解雨量数据如何转换为SVG图形来显示便从网上找了一个现有的将数据显示为SVG格式的图形的库来使用。在查看各种相关资料了解了SVG并进行深入学习后反复尝试各种生成SVG图形的方法。由于SVG本身就是XML文档因此选择了用生成XML文档的方式来生成SVG并封装了SVG的基本图形元素最终完成了一个较方便的创建SVG图形的工具类。当然该雨量分析系统还是有很多不完善的地方。地图信息本来应该用SVG来组织和表示这样可以将其中的各种数据元素分离出来实现按选择条件在地图上显示城市及相应雨量数据的功能而且SVG的交互效果没有体现出来对雨量数据的分析也不够充分。但由于实现难度及时间限制以上功能没能实现。参考文献[1] Joseph Bustos, Karli Watson[美]…NET Web服务入门经典——C#编程篇[M].侯彧译.北京清华大学出版社,2003。[2] Dinar Dalvi, Joe Gray[美]…NET XML高级编程[M].英宇,林琪译.北京清华大学出版社,2002。[3] Jesse Liberty, Dan Hurwitz[美].Programming ASP.NET[M].南京东南大学出版社,2006。[4] 石磊,但正刚.ASP.NET数据库编程详解C#版[M].北京高等教育出版社,2004。[5] 徐谡.ASP.NET应用与开发案例教程[M].北京清华大学出版社,2005。[6] 李安渝.Web Services技术与实现[M].北京国防工业出版社,2003。[7] 蔡月茹,柳面玲.Web Service基础教程[M].北京清华大学出版社,2005。[8] Seely[美].SOAP XML跨平台Web Service开发技术[M].杨涛,杨晓云,王建桥译.北京机械工业出版社,2002。[9] Bill Trippe,Kate Binder[美].SVG设计在下一代Web站点中使用可缩放矢量图形[M].高伟,英宇译.北京机械工业出版社,2003。致 谢省略5、资源下载本项目源码及完整论文如下有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。序号毕业设计全套资源点击下载本项目源码基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现源码文档_BS架构_雨量分析系统.zip提示如果下载链接失效可点击下方卡片扫码自助下载。

相关文章:

C#毕业设计——基于C#+asp.net+SVG的基于SVG的自动站雨量分析系统设计与实现(毕业论文+程序源码)——雨量分析系统

基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于C#asp.netSVG的基于SVG的自动站雨量分析系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报…...

C#毕业设计——基于C#+asp.net+SQL server的通用作业批改系统设计与实现(毕业论文+程序源码)——作业批改系统

基于C#asp.netSQL server的通用作业批改系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于C#asp.netSQL server的通用作业批改系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板…...

C#毕业设计——基于C#+asp.net+SQL Server的课程指导平台设计与实现(毕业论文+程序源码)——课程指导平台

基于C#asp.netSQL Server的课程指导平台设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于C#asp.netSQL Server的课程指导平台设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答…...

大模型有了“身体”后,我用1分钟创造了一个AI美食专家

一、引言 :从今晚吃什么开始 在这个互联网几乎能解决一切问题的时代,我们搜菜谱、看教程、点外卖,但厨房里的孤独感和手忙脚乱,似乎从未消失。 晚上7点,下班回家。打开冰箱:有西红柿、鸡蛋、青椒、一块肉…...

asp毕业设计——基于asp+access的网上音乐网站设计与实现(毕业论文+程序源码)——网上音乐网站

基于aspaccess的网上音乐网站设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上音乐网站设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴…...

asp毕业设计——基于asp+access的网上选题系统设计与实现(毕业论文+程序源码)——网上选题系统

基于aspaccess的网上选题系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上选题系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴…...

asp毕业设计——基于asp+access的网上投票系统设计与实现(毕业论文+程序源码)——网上投票系统

基于aspaccess的网上投票系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上投票系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴…...

asp毕业设计——基于asp+access的网上评教系统设计与实现(毕业论文+程序源码)——网上评教系统

基于aspaccess的网上评教系统设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上评教系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴…...

asp毕业设计—— 基于asp+access的网上论坛设计与实现(毕业论文+程序源码)——网上论坛

基于aspaccess的网上论坛设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上论坛设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴&#xf…...

004、体系结构之TiKV分布式事务

数据找到并且修改后。此时提交事务(commit)的时候。此时就进入两阶段:(prewrite - commit) 提交的第一阶段,会用三个CF 来存放这些数据信息。 一类列簇对应一类键值对, 第一个CF(default)存放的是数据 的键值对。 第二…...

网卡驱动死机调试经验案例

一、现象 执行iperf打流后,不管是udp打流还是tcp打流,命令行没有响应,无法敲入任何字符,也没有回显,但一段时间后,串口有打印,查看代码后,发现是EMAC的DMA中断里打印的,打…...

“水莲花数”

#include<stdio.h>main(){int a,b,c,d;for(a100;a<999;a){ba/100;ca/10%10;d%10if(b*b*bc*c*cd*d*da)printf(“对了 %d %d %d %d\n”,a,b,c,d);}}...

探索响应式编程的瑰宝:RxJava

探索响应式编程的瑰宝&#xff1a;RxJava 【免费下载链接】RxJava ReactiveX/RxJava 是一个用于实现响应式编程的 Java 库。适合在 Java 应用开发中使用&#xff0c;提高代码的简洁性和可维护性。特点是提供了强大的响应式编程功能、易于使用的 API 和多种数据源的支持。 项目…...

探索System Design Primer:系统设计学习的宝藏库

探索System Design Primer&#xff1a;系统设计学习的宝藏库 【免费下载链接】system-design-primer 学习如何设计大型系统。为系统设计面试做准备。包含Anki记忆卡片。 项目地址: https://gitcode.com/GitHub_Trending/sy/system-design-primer 项目简介 是一个开源项…...

Slackin终极指南:2025年功能路线图与社区发展预测

Slackin终极指南&#xff1a;2025年功能路线图与社区发展预测 【免费下载链接】slackin Public Slack organizations made easy 项目地址: https://gitcode.com/gh_mirrors/sl/slackin Slackin是一款让公共Slack组织创建和管理变得简单的工具&#xff0c;它提供了从用户…...

PyMuPDF: Python接口的高效PDF处理库

PyMuPDF: Python接口的高效PDF处理库 【免费下载链接】PyMuPDF PyMuPDF is a high performance Python library for data extraction, analysis, conversion & manipulation of PDF (and other) documents. 项目地址: https://gitcode.com/gh_mirrors/py/PyMuPDF 是…...

PyPDF2: Python PDF库简介

PyPDF2: Python PDF库简介 【免费下载链接】pypdf A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files 项目地址: https://gitcode.com/gh_mirrors/py/pypdf 是一个开源的Python库&#xff0c;用于处理PDF文…...

Symfony Translation 性能优化终极指南:使用 Blackfire 分析翻译瓶颈的 5 个关键步骤

Symfony Translation 性能优化终极指南&#xff1a;使用 Blackfire 分析翻译瓶颈的 5 个关键步骤 【免费下载链接】translation symfony/translation: 是一个用于 PHP 的翻译库&#xff0c;支持多种消息源和翻译格式&#xff0c;可以用于构建多语言的 Web 应用程序和 API。 项…...

终极Symfony Translation测试指南:从单元测试到集成测试的完整策略

终极Symfony Translation测试指南&#xff1a;从单元测试到集成测试的完整策略 【免费下载链接】translation symfony/translation: 是一个用于 PHP 的翻译库&#xff0c;支持多种消息源和翻译格式&#xff0c;可以用于构建多语言的 Web 应用程序和 API。 项目地址: https://…...

微调Llama3模型记录

为了评估llama3模型微调的效果&#xff0c;尝试使用一些特定风格的语料数据微调llama3模型&#xff0c;这里做一下简单记录。 一、模型及数据准备 原生的Meta-Llama-3-8B-Instruct模型对中文效果并不是很好&#xff0c;我这里直接去huggingface上下载的llama3的中文微调版作为…...

表情捕捉 表情同步 2026

目录 表情同步PersonaLive&#xff1a; 表情同步hyperreenact&#xff1a; speedupvideocap 基于MobileNetV3的人脸表情捕捉-加速 加速库 onnx/tensorRT 说明 表情同步PersonaLive&#xff1a; https://www.bilibili.com/video/BV1XkBhBBEP7 表情同步hyperreenact&#xf…...

如何贡献代码?GitHub Profilinator开发者贡献指南

如何贡献代码&#xff1f;GitHub Profilinator开发者贡献指南 【免费下载链接】github-profilinator &#x1f680; This tool contains mini GUI components that you can hook together to automatically generate markdown code for a perfect readme. 项目地址: https://…...

Awesome-LLMOps 项目使用教程

Awesome-LLMOps 项目使用教程 【免费下载链接】Awesome-LLMOps An awesome & curated list of best LLMOps tools for developers 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-LLMOps 1. 项目的目录结构及介绍 Awesome-LLMOps/ ├── README.md ├── …...

Cuckoo Filter核心原理:从哈希表到指纹存储的巧妙设计

Cuckoo Filter核心原理&#xff1a;从哈希表到指纹存储的巧妙设计 【免费下载链接】cuckoofilter Cuckoo Filter: Practically Better Than Bloom 项目地址: https://gitcode.com/gh_mirrors/cu/cuckoofilter Cuckoo Filter是一种高效的近似集合成员查询数据结构&#x…...

Mariana Trench高级应用:多规则联合检测与误报排除策略

Mariana Trench高级应用&#xff1a;多规则联合检测与误报排除策略 【免费下载链接】mariana-trench A security focused static analysis tool for Android and Java applications. 项目地址: https://gitcode.com/gh_mirrors/ma/mariana-trench Mariana Trench是一款专…...

IPED插件开发测试:编写单元测试与集成测试的完整指南

IPED插件开发测试&#xff1a;编写单元测试与集成测试的完整指南 【免费下载链接】IPED IPED Digital Forensic Tool. It is an open source software that can be used to process and analyze digital evidence, often seized at crime scenes by law enforcement or in a co…...

终极指南:YTKNetwork请求生命周期全解析——从发起请求到完成的完整流程

终极指南&#xff1a;YTKNetwork请求生命周期全解析——从发起请求到完成的完整流程 【免费下载链接】YTKNetwork 项目地址: https://gitcode.com/gh_mirrors/ytk/YTKNetwork YTKNetwork是一个功能强大的iOS网络请求库&#xff0c;它基于AFNetworking构建&#xff0c;提…...

CCV 开源项目使用教程

CCV 开源项目使用教程 【免费下载链接】ccv C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library 项目地址: https://gitcode.com/gh_mirrors/cc/ccv 1. 项目的目录结构及介绍 CCV&#xff08;C-based/Cached/Core Computer Vision Librar…...

基于QT对UR3进行开发

将 Qt 与 UR3&#xff08;Universal Robots 3 协作机器人&#xff09;结合使用&#xff0c;可以开发功能丰富且用户友好的图形用户界面&#xff08;GUI&#xff09;&#xff0c;用于控制和监控机器人。以下是关于如何使用 Qt 开发与 UR3 机器人集成的详细指南。 前提条件 在开…...

老三网址读取

老三版本四【内存_ecx&#xff1a;21692E0/内存_call&#xff1a;1300560/内存地址_模式&#xff1a;21692E8/内存地址_发包&#xff1a;21692F0/内存_qq&#xff1a;123/全局_Network&#xff1a;5B9948/内存_位置&#xff1a;2400DA1/全局_房间人数&#xff1a;2187628/内存地…...