- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC课程作业
VC++课程作业
(20 12 -20 13 学年第 1 学期)
课程名称:
学生姓名:
专业班级:
学 院:
学 号:
学生成绩:
用VC++实现数学函数图形绘制
Visual C++(以下简称VC++) 是面向对象与可视化软件开发工具中比较成熟的一类。MFC是VC++中直接由Microsoft提供的类库,它集成了大量已定义好的类,可以根据需要,调用相应类,或根据需要自定义类。正是基于MFC的这种特性,试图设计出具有封装性、独立性的功能模块------函数数据生成模块,函数曲线输出模块,模块之间的桥梁是由模板类CArray派生的CPoint类数组充当的。函数数据生成模块用来实现对函数的设置并获得采样点,数组得到采样点数据并将其传递到输出模块中。从整体来看,实现了各程序模块的独立性,使得在函数模块中可任意添加、删除函数,可使用不同的DC和GDI,可实现不同的输出方式,整个工程在函数绘图功能上是无限扩展的。经过反复的调试和检验,实现了预期目标。的主要目的是尝试VC++在数学函数绘图方面的功能和应用。这是对VC++的探索,也是对数学函数绘图多样化的尝试。
一、引言
??从事科技研究的人员常常需要解决一些复杂的数学问题,而这些数学问题的解答往往可以从它的函数图形上很直观、明了的表现出来,这时快捷方便的绘制出该数学函数的图形就显得尤为重要。用Matlab等数学软件就可以做到这一点,但是当需要在自己的软件产品中快速简洁的绘制出众多自定义的数学函数图形时,用Matlab等数学软件就有些麻烦。所以选择了用VC++来实现数学函数图形的绘制。
VC++主要使用了两种方法:
用Windows提供的Windows API函数。
直接使用Microsoft提供的MFC类库。
选用的是MFC Appwizard(exe)工程。MFC类库是VC++中直接由Microsoft提供的一种编程资源,是对程序设计的高度抽象,它集成了大量已定义好的类,可以根据需要,调用相应类,或根据需要自定义有关类,使得程序员的主要精力不用放在程序设计的细节实现上,而放在程序的功能拓展上。它允许在编程过程中自定义和扩展运用程序中的类,同时还允许对Windows API函数进行存取,从而使运用程序能以最小的规模实现最丰富的功能,而且能提供高效率的运行代码。更重要的是,MFC可以封装不同的类,将类封装后,形成一个功能模块。也就是说,允许为实现功能模块而将不同的类封装。
VC++运用对象、类、消息传递、封装等概念来构造系统,要实现各种各样图形的绘制,可以将函数看作对象,将各种函数封装起来,形成不同的类,组成函数模块。将处理数据和输出图形定义在不同的模块中,而模块之间的接口则是通过用VC++的类数组模块定义的CPoint类数组实现的。
二、设计思路
2.1总体结构的设计
正是以上了解使得出了这样一条编程思路:函数数据生成模块,函数曲线输出模块,中间媒介由CPoint类数组构成。
函数数据生成模块是实现对函数的设置:包括参数设置,自变量设置,数据输入,并从算法中得到采样点,再将采样点传给CPoint类数组。
函数曲线输出模块则要从CPoint类数组中得到采样点,在已定义好的输出环境中以描点连线的方式绘制图形。
这样的设计既体现了模块间的独立性,也体现了数组在两个模块间的桥梁关系。由于对函数的设置也是独立的,选择不同的函数会出现与之相适应的设置,绘出相应的函数图形,所以各函数间也是互相独立的,对整个工程的其他部分是没有影响的。
以sin,cos作为开始的尝试,主要为熟悉VC++的开发环境,构造出良好的绘图环境,再以三次样条函数为重点实现对算法的分析,充分利用MFC的优势,达到目的。
2.2基本结构的设计
1.将所要表达的对象封装。对函数的属性主要是参数设置-----一般用对话框来实现;对函数的服务即函数算法用具体函数来表达,再将具体的函数一个个的封装到为他们创建的函数模块中,使它们完全独立开来;
2.用函数数据生成模块得到了数据-----采样点,为实现合理的函数绘图形式,对采样点要做必要的处理后,放入到类数组中;
3.函数曲线输出模块专门负责营造输出氛围:用画笔还是画刷,用多文档输出还是单文档,用那一种映像模式,界面看起来是否美观。当然,最终是获得数组中的数据,将它们放到适合的坐标轴上,随即连线成图。
4.看似独立的三个部分实际上是相互牵制和彼此照顾的,采样点受到模板数组的影响,通常不同函数得到采样点在放入模板数组前所
原创力文档


文档评论(0)