基于GDI+的报表图形程序的研究与开发报告.docx

上传人:b****7 文档编号:26123590 上传时间:2023-06-17 格式:DOCX 页数:76 大小:106.64KB
下载 相关 举报
基于GDI+的报表图形程序的研究与开发报告.docx_第1页
第1页 / 共76页
基于GDI+的报表图形程序的研究与开发报告.docx_第2页
第2页 / 共76页
基于GDI+的报表图形程序的研究与开发报告.docx_第3页
第3页 / 共76页
基于GDI+的报表图形程序的研究与开发报告.docx_第4页
第4页 / 共76页
基于GDI+的报表图形程序的研究与开发报告.docx_第5页
第5页 / 共76页
点击查看更多>>
下载资源
资源描述

基于GDI+的报表图形程序的研究与开发报告.docx

《基于GDI+的报表图形程序的研究与开发报告.docx》由会员分享,可在线阅读,更多相关《基于GDI+的报表图形程序的研究与开发报告.docx(76页珍藏版)》请在冰豆网上搜索。

基于GDI+的报表图形程序的研究与开发报告.docx

基于GDI+的报表图形程序的研究与开发报告

本科毕业论文(设计)

 

基于GDI+的报表图形程序的研究与开发

 

学生姓名:

学院:

专业:

班级:

学号:

指导教师:

审阅教师:

完成日期:

摘要

当今社会,随着科技的不断进步,计算机在生活中的应用越来越多,伴随着计算机而产生一门新型技术——计算机图形学诞生了,它研究内容主要是如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。

生活中它的应用也越来越广泛,比如辅助设计与制造、自然景物仿真和计算机动画。

正因为有了它,我们的世界变的绚丽多彩。

然而计算机图形学并不容易掌握,其算法原理非常复杂,这就对应用以及图形学教学带来了很大的影响。

为了使初学者能够更好的掌握图形学算法原理,很好的辅助教学,根据课题的性质和要求,设计了这个软件。

本文主要介绍了计算机技术中GDI+技术,并且在VS2008的环境下编程实现,并结合数据库技术SQLServer2008,针对手机销售数据,如销售量、盈利金额等数据进行图像化的分析。

关键字:

手机销售数据、GDI+、C#、SQLServer

Abstract

Nowadays,withthedevelopmentofscienceandtechnology,computerisusedmoreandmoreinlife,alongwiththecomputerandproduceanewtechnology--computergraphicswasborn,itstudiesthemaincontentishowthecomputergraphic,andtheuseofcomputeringraphicscomputing,processingandpresentationoftherelevanttheoryandalgorithm.Itisusedmoreandmorewidelyindailylife,suchascomputer-aideddesignandmanufacturing,thenaturalscenerysimulationandcomputeranimation.Itisbecauseofthem,ourworldbecomesblew.However,computergraphicsisnoteasytomaster,theprincipleofthealgorithmisverycomplicated,whichbringsgreatinfluencetotheapplicationandgraphicsteaching.Inordertomakethebeginnertomasterthegraphicsalgorithmsbetter,aidedteachingisverygood,accordingtothenatureandrequirementsofthesubject,thedesignofthissoftware.

ThispapermainlyintroducestheGDI+technologyandcomputertechnology,programmingintheVS2008environment,combinedwiththeSQLServer2008databasetechnology,themobilephonesalesdataanalysis,suchassales,earningsamountdatavisualization.

Keywords:

mobilephonesalesdata,GDI+,C#,SQLServer

第1章绪论

1.1课题研究的意义

计算机图形学作为一门新型的科学技术,随着计算机应用的越来越普遍,其应用的领域也越来越贴近生活,现在的它正在悄然改变我们的生活,世界也因为有了它而变的越来越丰富多彩。

然而要掌握计算机图形学却不是那么容易,它的算法原理复杂,很不容易让人理解,这就给它的应用以及计算机图形学的教学带来了一定的困难。

为了能够更好的理解GDI+的算法原理,掌握GDI+的算法实现过程,同时也可以更好的对于手机的销售数据进行分析,根据课题的要求和性质,设计了这个软件。

用户通过这个软件将GDI+进行演示,可以更好的理解GDI+原理。

1.2课题研究的目的及内容

学习GDI+及VS2008开发环境,设计一个基于手机销售数据的程序,主要内容包括:

主界面、折线图展示、柱状图展示、饼状图。

设计用户界面,对所编写的程序进行调试及改进.

1.3GDI+简介

图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。

GDI是GraphicsDeviceInterface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。

在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。

GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

GDI+是WindowsXP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。

顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,WindowsXP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。

作为图形设备接口的GDI+使得应用程序开发人员在输出屏幕和打印机信息的时候无需考虑具体显示设备的细节,他们只需调用GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成,GDI+使得图形硬件和应用程序相互隔离.从而使开发人员编写设备无关的应用程序变得非常容易。

第2章系统架构

2.1C/S结构

即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。

客户端和服务器端的程序不同,用户的程序主要在客户端,服务器端主要提供数据管理、数据共享、数据及系统维护和并发控制等,客户端程序主要完成用户的具体的业务。

开发比较容易,操作简便,但应用程序的升级和客户端程序的维护较为困难。

2.2C#语言

C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。

并定于在微软职业开发者论坛(PDC)上登台亮相。

C#是微软公司研究员AndersHejlsberg的最新成果。

C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。

但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。

它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

[1]C#是面向对象的编程语言。

它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。

因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

2.3GDI+

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。

许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。

可以通过多种途径达到这个目的。

最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断实现的。

尽管这是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题。

中断对那些实时性很强的任务来说是很有必要的。

但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。

最开始,线程只是用于分配单个处理器的处理时间的一种工具。

但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。

从程序设计语言的角度看,GDI+操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。

程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校。

根据前面的论述,大家可能感觉线程处理非常简单。

但必须注意一个问题:

共享资源!

如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。

举个例子来说,两个线程不能将信息同时发送给一台打印机。

为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。

所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。

GDI+是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。

线程是在同一时间需要完成多项任务的时候实现的。

最简单的比喻GDI+就像火车的每一节车厢,而进程则是火车。

车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。

GDI+的出现就是为了提高效率。

同时它的出现也带来了一些问题。

3.5系统设计原则

系统是从企业应用服务的角度出发,全面考虑整个企业的的完整性进行总体系统的分析和数据结构的全面规划,系统的总体设计与实际需求、业务机构设置相适应,按照“统一规划、分步实施、注重实效”的原则进行系统设计。

在设计过程中遵循了以下总体原则:

先进性:

设计方案适应新技术发展的潮流,采用目前业界先进的技术架构和技术解决方案,既保证系统的先进性,也兼顾了技术上的成熟性。

设计方案不但保证理论上可行,更重要的是实际上可用。

充分考虑到应用系统的具体情况,最大限度地满足需求。

可靠性:

设计中选用高可靠性产品,合理设计系统架构,制订可靠的备份策略,保证数据传输的可靠性,最大限度地支持物流业务平台系统的正常运行。

安全性:

为了保证平台数据和应用的安全可靠,系统提供多种方式和层次的访问控制,选用具备安全保护功能的产品,为系统提供高质量的安全保障;并考虑必要的安全防范与灾难应对措施,确保系统安全稳定运行。

扩展性:

随着系统应用规模的不断扩大,要求系统能方便地扩充容量,支持更多的用户和应用。

随着通信技术的不断发展,系统要能平滑地过渡到新的技术和设备,保护现有投资,既照顾到目前的应用需求,又能满足今后系统的发展需要。

管理性:

选用先进的网络管理平台,提供方便、灵活、有力的管理系统,让使用者可以有效地控制和管理整个网络。

开放性与标准化:

为了保证平台系统具有互操作性、可用性、可靠性、可扩充性、可管理性,应建成开放的系统,并遵循相关国际、国内或行业标准。

易维护:

要保证系统能正常稳定运行,设计的系统易于管理和维护,其管理与维护系统具有方便、灵活、友好等特性。

经济性:

在确保功能、性能、质量的前提下,提出合理的产品建议,具有最优的性能价格比,获得更大的经济效益和社会效益。

第3章系统概要设计

本系统的开发工作分为以下4个主要阶段:

1、系统需求分析与系统的功能设计。

包括可行性分析、系统详细调查和用户需求分析。

2、程序模块划分和实现。

根据系统所管理的信息的类型和功能对系统进行模块划分,分别编写代码,逐一实现系统功能。

3、安全策略设计。

根据系统功能划分用户类型和权限,并进行安全模型的设计。

4、测试。

完成系统主体功能后,进行系统测试,查找设计缺陷与错误,对缺陷和错误进行改进和纠正。

设计阶段的根本任务是确定怎样具体的实现要求的目标系统,也就是说,经过这个阶段的设计工作,应该写出对系统的精确描述,从而在编辑阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

此阶段要设计出程序的“蓝图”,开发人员根据这个蓝图写出实际的程序代码。

因此,详细设计的结果基本决定了最终程序代码的质量。

除了应该保证程序的可靠性之外,也应保证编写的程序可读性好,易于理解、测试、修改和维护,这一点是详细设计的最重要的目标与任务。

此外,界面设计也是本阶段完成的主要工作。

界面提供了一个人机对话的有效窗口,一个良好的界面不仅能够使用户方便快捷的应用这个系统,而且还可以通过界面形象的了解系统所具有的功能。

因此,界面设计是系统设计过程中的一个重要的环节。

4.1开发工具的选择

程序设计的编写是以程序设计语言为工具的,并要选择适当的程序设计语言。

本系统的前端软件开发工具选用了ASP.NET。

4.1.1ASP.NET开发平台

随着计算机技术和网络技术的不断发展,人们对网络的要求也越来越高。

传统的静态网页技术已不能满足广大互联网用户的需要,各种动态网页技术应运而生。

ASP是目前网页制作中最常用的重要技术之一,许多网站都使用ASP制作网页。

ASP并不是一种编程语言,而是一种综合的网络解决方案,它允许用户根据自己的习惯采用不同的语言环境,在服务器端经过语言解释器的解释或HTML代码发送给客户端。

Microsoft新近推出的ASP.NET不是对ASP在一般意义上的版本更新,而是一门全新的技术,是对ASP如何提供动态Web开发环境的跳跃性发展。

ASP.NET几乎完全基于组件和模块化,用户使用的每一个页面、部件和HTML单元都是一个运行时间的组件对象。

ASP.NET的面向对象功能使开发者可以通过创建新组件或继承基础类,为整个环境提供延展性。

.NET是Microsoft公司应用于Web服务的开发环境而推出的一个整体技术框架。

通过.Netruntime统一执行的机制,所有开发语言(VB,C++,C#)都被统一在一个平台上,使开发工具和平台支持的提供代价大大降低,适用性大大提高。

.NET的突出特点是它的实用性和高度的集成性。

V是该公司推出的下一代可视化开发环境。

它为基于组件的应用程序(尤其是在使用Web服务和XML技术方面)开发提供了很大的方便。

V提供了一个支持VB,C++和C#开发和运行的新环境。

ASP.NET是建立在公共语言运行库上的编程框架,可用于在服务器上生成功能强大的Web应用程序。

4.1.3ADO.NET

访问数据库的原理微软的任何产品,现均冠上.NET一词,因此ASP.NET结合数据库的设计与过去大不相同ADO.NET就是ASP.NET中结合数据库的规格,但与过去的ADO差异甚大。

与数据库相连,ADO.NET提供了如下3种方式:

(1)通过ODBC相连。

(2)通过OLEDB相连。

(3)直接与SQLServer相连。

3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。

对于相连数据库的数据处理,也有2种方式,即一种是通过DataSet来隔离异构的数据源,另一种是以流方式从数据源读(DataReader方式)。

ADO.NET的一个创新是引入了数据集(Dataset)。

一个数据集是内存中提供数据关系图的高速缓冲区。

数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。

不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。

Dataset及DataView由数据库取出记录后,须放入DataSet,如果要显示在控件中,须使用DataView。

由提供程序至显示,流程如下图所示:

4.2运行环境

硬件环境

处理器:

intelPetiumIV1.6GHz或更高

内存:

≥128MB

硬盘:

≥10GB

软件环境

操作系统:

Windows2000/XP等

第4章详细设计

4.1主要界面

功能说明:

运行系统,系统进入主界面,在这里,用户可以选择生成报表样式。

从界面上可以看出,包含柱状图、折线图、饼状图等功能。

4.2柱状图

功能介绍:

通过该功能,通过链接后台数据库,选择不同的年份生成柱状图。

4.3折线图

功能介绍:

通过该功能,通过链接后台数据库,选择不同的年份生成折线图。

4.4饼状图

功能介绍:

通过该功能,通过链接后台数据库,选择不同的年份生成饼状图。

第5章编码实现

5.1.NET的优点

提供标准的面向对象开发环境,不仅可以在本地与对象交互,还可以通过WebService和.NETRemoting技术在远程与对象交互。

提供优化的代码执行环境,使以前让人们头痛的程序版本问题得到了解决。

我们可以在同一台机器中安装相同程序的不同版本。

而且deployment也得到了改善,微软说是X-COPY,就是说象拷贝文件一样简单了。

提供代码运行安全性。

以前我们担心网页中包含的ActivX控件会执行恶意的代码,但现在不用担心了,因为.NETFramework保障执行代码的安全性。

使用JIT(JustInTimeActivation)技术,提高代码运行速度。

提供标准的框架和强大的开发工具,可以让程序员在实际的开发当中,积累更多的经验。

.NET遵循业界标准规范,所以可以让代码(.NET里的代码)可以与其他系统交互。

比如WebService,COM等等。

5.2关键代码

5.2.1数据库链接

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Data;

usingSystem.Data.Sql;

usingSystem.Data.SqlClient;

usingSystem.Data.SqlTypes;

usingSystem.Text.RegularExpressions;

namespaceDataHelper

{

publicdelegateintTransBefore(intsetp,ProcParamsListExecSQL);

publicdelegateintTransAfter(intsetp,DataTableDtResult);

 

[Serializable]

publicclassCSqlData

{

privateSqlConnectionDBConn;

privateSqlCommandDbCmd;

privateSqlCommandDbExec;

privatestringconStr;

publicTransBeforeSQLTransB;

publicTransAfterSQLTransA;

publicCSqlData()

{

DBConn=newSqlConnection();

DbCmd=newSqlCommand();

DbExec=newSqlCommand();

DBConn.ConnectionString=ConStr;

}

publicCSqlData(stringconnStr)

{

DBConn=newSqlConnection();

DbCmd=newSqlCommand();

DbExec=newSqlCommand();

DBConn.ConnectionString=connStr;

}

publicstringConStr

{

set{conStr=value;}

get

{

if(string.IsNullOrEmpty(conStr))

{

conStr=System.Configuration.ConfigurationSettings.AppSettings["SQLSERVER"];

}

returnconStr;

}

}

publicvoidDispose()

{

if(DBConn!

=null)

{

DBConn.Close();

DBConn.Dispose();

}

if(DbCmd!

=null)DbCmd.Dispose();

if(DbExec!

=null)DbExec.Dispose();

}

publicBooleanConnect()

{

try

{

if(DBConn.State==ConnectionState.Closed)

{

DBConn.Open();

}

returntrue;

}

catch(SqlExceptionex)

{

BackError(DBConn.ConnectionString,ex.Message);

throwex;

}

catch(Exceptionex)

{

BackError(DBConn.ConnectionString,ex.Message);

throwex;

}

}

publicboolDisConnect()

{

try

{

if(DBConn!

=null&&DBConn.State!

=ConnectionState.Closed)

{

DBConn.Close();

returntrue;

}

}

catch(SqlExceptionex)

{

BackError(DBConn.ConnectionString,ex.Message);

throwex;

}

catch(Exceptionex)

{

BackError(DBConn.ConnectionString,ex.Message);

throwex;

}

returnfalse;

}

///

///执行带有返回值的SQL语句,并将查询返回的结果集中第一行的第一列作为.NETFramework数据类型返回。

忽略额外的列或行。

///

///执行的SQL语句

///

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

当前位置:首页 > 高等教育 > 文学

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

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