【VC++开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VC++开源代码-天气信息管理系统—毕业设计论文 - 毕业设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
天气信息管理系统 摘要 随着
经济的发展和社会的进步不同地方的人们交流越来越密切各地的天气情况越来越受到人们的普遍关注该系统数据主要依据为各地准确的天气资料包括时间、温度、湿度、风力、风向、降水量等。
并且该系统客户端可以及时、准确地把数据转换成信息发送给服务器端方便于管理员的管理。
它不但有强大的数据库支持可以满足大量的数据存储而且友好的用户界面可以方便用户进行每一步的操作。
本系统是基于C/S的网络管理系统。
查询数据后可生成统计全年或单月的RTF表格。
RTF格式就非常流行的字处理系统格式许多优秀的以数据为基础的管理系统都可以将数据转化成RTF表格形式以方便以后排版和打印。
在生成数据曲线图后本系统可以响应鼠标移动事件进行区域判断可方便用户
查询图上的信息。
关键字天气曲线图网络RTF报表 目 录 第一章 绪论 ……………………………………………………1 1.1 项目的开发背景 …………………………………………… 1.2 该系统所具备的几大突出特点 …………………………… 第二章 开发工具简介 ………………………………………… 2.1 UML简要概述 …………………………………………… 2.1.1 UML简介……………………………………………… 2.1.2 UML概念域…………………………………………… 2.1.3 UML的内容…………………………………………… 2.2 C/S结构的数据库应用……… ……………………………… 2.3
VC与数据库的连接 ……………………………………… 8 2.4 用
VC中的Csocket实现网络通信 ………………………9 第三章 系统分析…………………………………………………10 3.1系统的初步调查………………………………………………10 3.2系统详细调查…………………………………………………11 3.2.1系统的功能需求 ………………………………………11 3.2.2系统的运行环境 ……………………………………… 11 3.4 数据流图 …………………………………………………… 11 第四章 系统设计………………………………………………… 4.1软件的总体结构设计…………………………………………15 4.2数据库设计……………………………………………………15 1 2 2 2 2 2 3 4 7 15 4.2.1数据库概念设计…………………………………………15 4.2.2实体—联系图……………………………………………16 4.2.数据库表设计………………………………………………19 4.2.数据库的实现 ……………………………………………21 4.3 详细设计………………………………………………………22 第五章 系统实施 ………………………………………………… 5.1相关技术与开发环境的选择………………………………… 27 5.2程序设计……………………………………………………… 29 第六章 系统的测试与维护…………………………………… 33 6.1系统测试……………………………………………………… 33 6.2系统的维护…………………………………………………… 36 第七章 总结…………………………………………………… 37 参考文献………………………………………………………… 38 附录……………………………………………………………… 39 致谢……………………………………………………………… 43 27 第一章 绪论 1.1 项目的开发背景 21世纪是信息技术高速发展的世纪在这个崭新的世纪中随着现代科学技术的飞速发展大量的信息技术产品如雨后春笋般地不断涌现出来且被人们所接受。
现在人类的工作、学习、生活等无一能离开信息技术。
总而言之信息技术已溶入了人类生活的点点滴滴。
可以说信息技术的出现改变了世界也改变了人类的生活。
本
论文研究的是天气信息管理系统它就是在信息技术的基础上所研究和开发的。
它集信息技术及时、快速、准确的特点于一身充分地发挥出效率高的特点。
该
管理系统适用于对天气信息有一定要求的场所例如航空公司、旅行社等地方所以该管理系统应用范围广泛具有一定的使用价值。
1.2 该系统所具备的几大突出特点 1.2.1 使用灵活 在该管理系统中不但设置了命令按钮而且还设置了菜单和快捷键可以让用户在任何一个界面利用它们进行进一步相关的操作。
这样不仅就为用户的操作提供了多种的使用方法而且还为用户的操作提供了很大的方便。
1.2.2. 以曲线图的方式描述数据 该管理系统不但具有
列表显示数据和文本显示某一条数据的功能而且还有利用曲线图描述数据的功能。
每条直观、生动的曲线分别用不同的颜色来表示不同的数据其中每一条曲线又代表着不同时期的数据使用户不用再面对枯燥、乏味的数字把用户从成天面对杂乱无章数字的尴尬境地中解脱出来。
这样以另外一种方式描绘数据的方法可以达到更好的效果。
1.2.3 批量的数据导入与导出 可以文本文件格式对数据执行批量导入或到处数据库操作方便了用户之间的信息交流。
也可将数据生成RTF报表格式方便用户查看或打印。
1.2.3 将数据信息生成RTF报表格式 目前RTF格式是最流行的字处理文件格式许多优秀的基于数据信息的管理系统都可将数据转换为RTF格式以方便以后的排版和打印。
本系统也可生成全年或单月的RTF表格形式。
第二章 开发工具简介 2.1 UML简要概述 2.1.1 UML简介 UMLUnified Modeling Language是面向对象的标准建模语言是面向对象技术领域的重要成果。
标准建模语台UML融合了Booch OMTObjectModeling Technique和OOSEObject-Oriented Software Engineering等方法中的基本概念集众家之长并对现有的应用范围进行扩展。
统一建模语言UML又是一个通用的可视化建模语言用于对软件进行描述、可视化处理、构造和建立软件系统制品的
文档。
它记录了对必须构造的系统的决定和理解可用于对系统的理解、设计、浏览、配置、维护和信息控制。
UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
UML包括概念的语义表示法和说明提供了静态、动态、系统环境及组织结构的模型。
它可被交互的可视化建模工具所支持这些工具提供了
代码生成器和报表生成器。
UML标准并没有定义一种标准的开发过程但它适用于迭代式的开发过程。
它是为支持大部分现存的面向对象开发过程而
设计的。
UML描述了一个系统的静态结构和动态行为。
UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定的功能的模型结构。
静态结构定义了系统中的重要对象的属性和操作以及这些对象之间的相互关系。
动态行为定义了对象的时间特性和对象为完成目标而相互进行
通信的机制。
从不同但相互联系的角度对系统建立的模型可用于不同的目的。
UML还包括可将模型分解成包的结构组件以便于
软件小组将大的系统分解成易于处理的块结构并理解和控制各个包之间的依赖关系在复杂的开发环境中管理模型单元。
它还包括用于显示系统实现和组织运行的组件。
UML不是一门程序设计语言可以使用
代码生成器工具将UML模型转换为多种程序设计语一言
代码或使用反向生成器工具将程序源
代码转换为UML. UML不是一种可用于定理证明的高度形式化的语言这样的语言有很多种但它们通用性较差不易理解和使用。
UML是一种通用建模语言。
对于一些专门领域例如用户图形界面GUI设计、超大规模集成电路VLSI设计、基于规则的人工智能领域使用专门的语言和工具可能会更适合些。
UML是一种离散的建模语言不适合对诸如工程和物
理学领域中的连续系统建模。
它是一个综合的通用建模语言适合对诸如由计算机软件、固件或数字逻辑构成的离散
系统建模。
UML是在多种面向对象建模方法的基础上发展起来的建模语言主要用于软件密集型系统的建模。
2.1.2 UML概念域 UML的概念和模型可以分成以下几个概念域: 1静态结构 任何一个精确的模型必须首先定义所涉及的范围即确定有关应用、内部特性及其相互关系的关键概念。
UML的静态组件称为静态视图。
静态视图用类构造模型来表达应用每个类由一组包含信息和实现行为的离散对象组成。
对象包含的信息被作为属性它们执行的行为被作为操作。
多个类通过泛化处理可以具有一些共同的结构。
子类在继承它们共同的父类的结构和行为的基础上增加了新的结构和行为。
对象与其它对象之间也具有运行时间连接这种对象与对象之间的关系被称为类间的关联。
一些元素通过依赖关系组织在一起这些依赖关系包括在抽象级上进行模型转换、模板参数的捆绑、授予许可以及通过一种元素使用另一种元素等。
另一类关系包括用例和数据流的合并。
静态视图主要使用类图。
静态视图可用于生成程序中用到的大多数数据结构声明。
在UML视图中还要用到其它类型的元素比如接口、数据类、用例和信号等这些元素统称为类元它们的行为很像在每种类元上具有一定限制的类。
2动态行为 有两种方式对行为建模。
一种是根据一个对象与外界发生关系的生命历史另一种是一系列相关对象之间当它们相互作用实现行为时的通信方式。
孤立对象的视图是状态机— 当对象基于当前状态对事件产生反应执行作为反应的一部分的动作并从一种状态转换到另一种状态时的视图。
状态机模型用状态图来描述。
相互作用对象的系统视图是一种协作一种与语境有关的对象视图以及他们相互之间的链通过数据链对象间存在着消息流。
视图将数据结构、控制流和数据流在一个视图中统一起来。
协作和互操作用顺序图和协作图来描述。
对所有行为视图起指导作用的是一组用例每一个用例描述了一个用例参与者或系统外部用户可见的一个功能。
3实现构造 UML模型既可用于逻辑分析又可用于物理实现。
某些组件代表了实现。
构件是系统中物理上的可替换的部分它按照一组接口来设计并实现。
它可以方便地被一个具有同样规格说明的构件替换。
节点是运行时间计算资源资源定义了一个位置。
它包括构件和对象。
部署图描述了在一个实际运行的系统中节点上的资源配置和构件的排列以及构件包括的对象并包括节点内容的可能迁移。
4模型组织
计算机能够处理大型的单调的模型但人力不行。
对于一个大型系统建模信息必须被划分成连贯的部分以便工作小组能够同时工作在不同部分上。
即使是一个小系统人的理解能力也要求将整个模型的内容组织成一个个适当大小的包。
包是UML模型通用的层次组织单元它们可以用于存储、访问控制、配置管理以及构造包含可重用的模型单元库。
包之间的依赖关系是对包的组成部分之间的依赖关系的归纳。
系统整个构架可以在包之间施加依赖关系。
因此包的内容必须符合包的依赖关系和有关的构架要求。
5扩展机制 UML具有一定的扩展能力能够满足大多数对UML扩充的需求而不改变语言的基础部分。
版类是一种新的模型元素与现有的模型元素具有相同的结构但是加上了一些附加限制具有新的解释和图标。
代码生成器和其他的工具对它的处理过程也发生了变化。
标记值是一对任意的标记值字符串能够被连接到任何一种模型元素上并代表任何信息如项目管理信息、
代码生成指示信息和版类所需要的值。
标记值用字符串代表。
约束是用某种特定语言如程序设计语台的文本字符串表达的条件专用语言或自然语一言。
UML提供了一个表达约束的语台名为OCL。
与所有其他扩展机制一样必须小心使用这些扩展机制因为有可能形成一些别人无法理解的方言。
但这些机制可以避免语台基础发生根本性变化。
2.1.3 UML的内容 UML中的各种组件和概念之间没有明显的划分界限但为方便起见我们用视图来划分这些概念和组件。
在最上一层视图被划分成三个视图域:结构分类、动态行为和模型管理。
结构分类描述了系统中的结构成员及其相互关系。
类元包括类、用例、构件和节点。
类元为研究系统动态行为奠定了基础。
类元视图包括静态视图、用例视图和实现视图。
动态行为描述了系统随时间变化的行为。
行为用从静态视图中抽取的瞬间值的变化来描述。
动态行为视图包括状态机视图、活动视图和交互视图。
模型管理说明了模型的分层组织结构。
包是模型的基本组织单元。
特殊的包还包括模型和子系统。
模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。
1静态视图 静态视图对应用领域中的概念以及与系统实现有关的内部概念建模。
静态视图主要是由类及类间相互关系构成这些相互关系包括:关联、泛化和各种依赖关系如使用和实现关系。
一个类是应用领域或应用解决
方案中概念的描述。
类图是以类为中心来组织的类图中的其它元素或属于某个类或与类相关联。
静态视图用类图来实现因为它以类为中心所以称为类图。
在类图中类用矩形框来表示它的属性和操作分别列在分格中。
关系用类框之间的连线来表示不同的关系用连线上和连线端头处的修饰符来区别。
2用例视图 用例视图use case view是被称为参与者Actor的外部用户所能观察到的系统功能的模型图。
’用例是系统中的一个功能单元可以被描述为参与者与系统之间的一次交互作用。
用例模型的用途是列出系统中的用例和参与者并显示哪个参与者参与了哪个用例的执行。
用例也可以有不同的层次。
用例可以用其他更简单的用例进行说明。
在交互视图中用例作为交互图中的一次协作来实现。
3交互视图 交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。
类元是对在系统内交互关系中起特
定作用的一个对象的描述这使它区别于同类的其他对象。
交互视图显示了跨越多个对象的系统控制流程。
交互视图可用两种图来表示:顺序图和协作图它们各有不同的侧重点。
顺序图表示了对象之间传送消息的时间顺序。
顺序图可以用来进行一个场景说明----即一个事务的历史过程。
顺序图的一个用途是用来表示用例中的行为顺序。
当执行一个用例行为时顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
协作图对在一次交互中有意义的对象和对象间的链建模。
协作图的一个用途是表示一个类操作的实现。
协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。
当实现一个行为时消息编号对应了程序中嵌套调用结构和信号传递过程。
顺序图和协作图都可以表示各对象间的交互关系但侧重点不同。
顺序图用消息的几何排列关系来表达消息的时间顺序各角色之间的相关关系是隐含的。
协作图用各个角色的几何排列图形来表示角色之间的关系并用消息来说明这些关系。
4 状态机视图 状态机视图是一个类对象所可能经历的所有历程的模型图。
状态机由对象的各个状态和连接这些状态的转换组成。
每个状态对一个对象在其生命期中满足某种条件的一个时间段建模。
当一个事件发生时它会触发状态间的转换导致对象从一种状态转化到另一新的状态。
与转换相关的活动执行时转换也同时发生。
状态机用状态图来表达。
状态图可用于描述用户接口、设备控制器和其他具有反馈的子系统。
它还可用于描述在生命期中跨越多个不同性质阶段的被动对象的行为在每一阶段该对象都有自己特殊的行为。
5 活动视图 活动图是状态机的一个变体用来描述执行算法的
工作流程中涉及的活动。
活动状态代表了一个活动:一个工作流步骤或一个操作的执行。
活动图描述了一组顺序的或并发的活动。
活动视图用活动图来体现。
这个例子说明了活动图的用途是对人类组织的现实世界中的工作流程建模。
对事物建模是活动图的主要用途但活动图也可对软件系统中的活动建模。
活动图有助于理解系统高层活动的执行行为而不涉及建立协作图所必须的消息传送细节。
用连接活动和对象流状态的关系流表示活动所需的输入输出参数。
6物理视图 物理视图对应用自身的实现结构建模例如系统的构件组织和建立在运行节点上的配置。
这类视图提供了将系统中的类映射成物理构件和节点的机制。
物理视图有两种:实现视图和部署视图。
实现视图为系统的构件建模型— 构件即构造应用的软件单元— 还包括各构件之间的依赖关系以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响。
实现视图用构件图来表现。
构件图表示了系统中的各种构件。
在个别系统的实际物理配置中可能有某个构件的多个备份。
部署视图描述位于节点实例上的运行构件实例的安排。
节点是一组运行资源如计算机、设备或存储器。
这个视图允许评估分配结果和资源分配。
部署视图用部署图来表达。
7 模型管理视图 模型管理视图对模型自身组织建模。
一系列由模型元素如类、状态机和用例构成的包组成了模型。
一个包package可能包含其他的包因此整个模型实际上可看成一个根包它间接包含了模型中的所有内容。
包是操作模型内容、存取控制和配置控制的基本单元。
每一个模型元素包含于包中或包含于其他模型元素中。
模型是从某一观点以一定的精确程度对系统所进行的完整描述。
从不同的视角出发对同一系统可能会建立多个模型例如有系统分析模型和系统设计模型之分。
模型是一种特殊的包。
子系统是另一种特殊的包。
它代表了系统的一个部分它有清晰的接口这个接口可作为一个单独的构件来实现。
模型管理信息通常在类图中表达。
8 扩展组件 UML包含三种主要的扩展组件:约束、版类和标记值。
约束是用某种形式化语言或自然语言表达的语义关系的文字说明。
版类是由建模者设计的新的模型元素但是这个模型元素的设计要建立在U砒已定义的模型元素基础上。
标记值是附加到任何模型元素上的命名的信息块。
这些组件提供了扩展UML模型元素语义的方法同时不改变UML定义的元模型自身的语义。
使用这些扩展组件可以组建适用于某一具体应用领域的UML用户定制版本。
2.2 C/S结构的数据库应用 最简单的C/S体系结构的数据库应用由两部分组成即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器称为应用服务器一旦服务器程序被启动就随时等待响应客户
程序发来的请求客户程序运行在用户自己的电脑上对应于服务器电脑可称为客户电脑。
当需要对数据库中的数据进行任何操作时客户程序就自动地寻找服务器程序并向其发出请求服务器程序根据预定的规则作出应答送回结果。
在典型的C/S数据库应用中数据的储存管理功能是由服务器程序独立进行的并且通常把那些不同的不管是已知还是未知的前台应用所不能违反的规则在服务器程序中集中实现例如访问者的权限编号不准重复、必须有客户才能建立定单这样的规则。
所有这些对于工作在前台程序上的最终用户是“透明”的他们无须过问通常也无法干涉这背后的过程就可以完成自己的一切工作。
在客户服务器架构的应用中前台程序可以变的非常“瘦小”麻烦的事情都交给了服务器和
网络。
在C/S体系的下数据库真正变成了公共、专业化的仓库受到独立的专门管理。
在这个案例中已经确定的需求就是建立一个集中、统一的数据库实现更新、查询、导入数据和输入报表。
访问者分布在不同的IP地址。
每一处典型的同时访问人数一般在10人以下。
两处都有机会更新数据库中的数据。
理想的情况下当然是两处的数据随时保持一致但在特别关键的信息可以随时通过电话、传真等方式直接交换的情况下两地的信息每隔一天交换更新一次是可以接受的这也就是目前的实际情况从业务人员的立场上尚没有提出在这个周期上作出戏剧性的改变的要求。
针对当前的已经明确的需求作出如下讨论 采用C/S架构选择适当的数据库平台可以实现数据库数据的真正“统一”分布于两地的数据同步完全交由数据库系统去管理逻辑上两地的操作者都直接访问同一个数据库。
它的有效实现有这样一些
问题 如果需要建立“实时”的数据同步就必须在两地间建立实时的通讯连接保持两地的数据库服务器在线运行这需要高昂的投资和复杂的技术支持高的维护成本。
对于本例的应用要求和环境采用基于网络文件服务器开发非C/S结构的应用也完全可以满足虽然C/S结构下的多用户应用可以更好比如更完善的用户共享特性用户管理以及更好地平衡服务器与客户机之间的负荷大幅度降低网络传输的负荷等但就用户立场而言采用C/S结构方便了用户对软件的操作。
2.3
VC与数据库的连接 1ODBCOpen DataBase Connectivity ODBC是客户应用程序访问关系数据库时提供的一个统一的接口对于不同的数据库ODBC提供了一套统一的API使用应用程序可以应用所提供的API来访问任何提供了ODBC驱动程序的数据库并且ODBC已经成为一种准目前所有的关系数据库都提供了ODBC驱动程序这使ODBC的应用非.