ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:177.33KB ,
资源ID:16860323      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16860323.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(绘图程序 课程设计报告Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

绘图程序 课程设计报告Word格式文档下载.docx

1、1.2工作任务分工阶段名称任务名称任务描述负责人协助人 查找课题通过上网,查询资料,参考课本等形式确定自己编写程序的难易程度以及可编写程度。刘建通过和其他同学交流,并参考可利用资料查询程序的部分功能,在自己读懂的基础上,进行改动与整合,变成自己的程序。编写代码通过代码编辑器编写代码,参考自己查找到的资料,并加入自己的想法,写出自己的一套程序。程序的测试把编写好的程序在编译器中编译并测试程序的各个功能,找出其中的BUG,并进行修改 程序的优化及程序设计报告的编写在自己能力范围之内查看程序可优化项目,使之更加完美,并开始写课设报告2需求分析2.1概述本软件主要用于计算机windows 2000/X

2、P以上版本的用户的使用,这次课程设计一般是实现绘图的功能。程序除了能实现:绘制直线、圆形、矩形等图形外,还能实现对圆形、矩形等图形的填充等功能;程序还能实现清除界面所有图形、清除最近画的图等功能。2.2用户分析普通用户看待一个软件的好坏主要是程序的实用性,界面的简洁美观性,程序所占资源的大小,以及程序运行期间的人性化的设置,所以要想让用户满意就要做到以上几点。其中,这几点最重要的就是程序的实用性。绘图工具,对于生活中的普通人来说,只要能实现简单的绘图,填充功能就行了。对于有特殊爱好的人,还要能实现自定义画笔宽度与颜色以及填充色。本程序不是针对所有人开发的。但能满足一般人的需求。2.3 约束条件

3、作为开发人员,我觉得最大的约束就是时间和能力问题。在写程序时很可能会遇到其他事,就不得不中断,这样就要合理安排好自己的时间。另外,在写程序时,可能有些功能依靠自己的能力不能完全实现,这样就必须自己查找问题,去解决这些问题。关于客户对我的约束,就是他们的需求,以及他们对软件功能、界面等等的要求,这样就要求程序员去与客户交流,聆听他们的想法,去尽自己最大的努力尽可能的做出让客户满意的软件。2.4功能需求1、绘制直线、折线、圆形、矩形等功能。2、绘制填充圆形、矩形等图形。3、插入文本框。4、自定义画笔宽度、颜色;自定义填充色:自定义字体大小,颜色;自定义填充色。5、撤销最后一步操作、撤销所有操作。6

4、、保存所绘制图形。2.5用户界面需求用户会从实用性出发,要求界面干净,简洁,使用,能一目了然。不能太繁琐,太花哨。用户能通过界面快速了解软件的功能。3设计与实现3.1概述本课程设计将实现一个简单绘图工具。这个绘图工具不仅实现了绘制简单图形的功能,还能实现绘制一些填充图形的功能,还实现了一些自定义的功能,如自定义画笔宽度、颜色、填充色等。而且具有简洁大方的图文外观。它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息,使用人员能快捷简单地进行操作。对人们的生活有一定的帮助。在课程设计中,系统开发平台为Windows 2000XP,程序设计设计语言采用Visual C+,在程序设计中,

5、采用了结构化与面向对象两种解决问题的方法。3.2详细设计3.1.1类的抽象及设计1.CAboutDlg类:派生于Cdialog的对话框类,由MFC单文档自动生成,连接菜单中的“帮助”选项,弹出简介。2.CCircle类:定义圆形(椭圆形)类。定义了函数CCircle和两个虚拟函数Draw(CDC*pDC),Serialize(CArchive &ar);3.CCircleFill类:定义填充圆形(椭圆形)类。包括函数CCircleFill(int X1, int Y1, int X2, int Y2, COLORREF Color);和一个虚拟函数Draw(CDC *pDC);4.CText类

6、:定义文本类。包括函数CText(int X1, int Y1, int X2, int Y2, COLORREF Color, LOGFONT lf, CString str);和两个虚拟函数Draw(CDC*pDC);Serialize(CArchive &来实现。5.CCurve 类:定义曲类.包括函数CCurve(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);和虚拟函数Draw(CDC *pDC);6.CDrawApp类:对画笔的实现颜色宽度样式的实现。7.CDrawBase类:定义图形基类。包括两个虚拟函

7、数Serialize(CArchive &Draw(CDC *pDC) NULL;8.CDrawDoc类:定义CDrawDoc类9.CDrawView类:定义CDrawView类实现鼠标的图标及显示。10.CIsoscelestriangle类:定义等腰三角形类包括CIsoscelestriangle(int X1, int Y1, int X2, int Y2, int X3, int Y3, COLORREF Color, int Thickness);11. CLine类:定义直线类包括函数CLine(int X1, int Y1, int X2, int Y2, COLORREF Co

8、lor, int Thickness);和两个虚拟函数Draw(CDC *pDC);12.CMainFrame类:实现地画框的构建。13.CPaintToolbar类:实现工具条的作用。14.CPenWidth类:实现划线的宽度。15.CPolyline类:定义折线类。包括函数CPolyline(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);16. CRectangle类:定义矩形类。包括函数CRectangle(int X1, int Y1, int X2, int Y2, COLORREF Color, int

9、 Thickness);和两个虚拟函数Draw(CDC *pDC)Serialize(CArchive &17.CRectFill类:定义填充矩形类。包括函数CRectFill(int X1, int Y1, int X2, int Y2, COLORREF Color);和虚拟函数 Draw(CDC *pDC)18.CRectRound类:定义圆角矩形类.包括函数CRectRound(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);19.CRectRoundFill类:定义填充圆角矩形类包括函数CRectRound

10、Fill(int X1, int Y1, int X2, int Y2, COLORREF Color);虚拟函数Draw(CDC *pDC);20.CSquare类:定义正方形类。包括函数CSquare(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness);21.CText类:22.CTriangle类:定义三角形类。包括CTriangle(int X1, int Y1, int X2, int Y2, int X3, int Y3, COLORREF Color, int Thickness);虚拟函数 Draw(CD

11、C *pDC);和Serialize(CArchive &23.CTsFont类和CWord类自动实现。3.1.2表结构设计(涉及到数据库的题目需要完成该部分内容)无3.3 主要程序文件主要类:1CDrawApp类:对画笔的实现、颜色、宽度样式的实现。2CDrawView类:3CMainFrame类:实现画框的构建。4CPaintToolbar类:5CPenWidth类:类及其文件的对应关系类名称 基类 类声明文件 类实现文件 CPenWidth CDialog PenWidth.h PenWidth.cpp CPaintToolbar CToolBar PaintToolbar.h Pain

12、tToolbar.cpp CMainFrame CFrameWnd MainFrm.h MainFrm.cpp CDrawView CScrollView DrawView.h DrawView.cpp CDrawApp CWinApp Draw.h Draw.cpp3.4开发环境以部署环境要求3.5 主要源码1CTsFont:CTsFont(CWnd* pParent /*=NULL*/) : CDialog(CTsFont:IDD, pParent) /AFX_DATA_INIT(CTsFont) m_lfHeight = 0; m_lfWidth = 0; m_lfEscapement

13、= 0; m_lfOrientation = 0; m_lfWeight = 0; m_crColor = 0; /AFX_DATA_INITvoid CTsFont:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); /AFX_DATA_MAP(CTsFont) DDX_Text(pDX, IDC_EDIT1, m_lfHeight); DDX_Text(pDX, IDC_EDIT2, m_lfWidth); DDX_Text(pDX, IDC_EDIT3, m_lfEscapement); DDX_Text(pDX

14、, IDC_EDIT4, m_lfOrientation); DDX_Text(pDX, IDC_EDIT5, m_lfWeight); DDX_Text(pDX, IDC_EDIT6, m_crColor); /AFX_DATA_MAPBEGIN_MESSAGE_MAP(CTsFont, CDialog) /AFX_MSG_MAP(CTsFont) / NOTE: the ClassWizard will add message map macros here /AFX_MSG_MAPEND_MESSAGE_MAP()/ CTsFont message handlers2/定义正方形类cla

15、ss CSquare : public CDrawBaseprotected: DWORD m_Thickness; /正方形的线宽 CSquare() /类的默认构造函数 DECLARE_SERIAL(CSquare) /序列化声明public: CSquare(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickness); virtual void Draw(CDC *pDC); virtual void Serialize(CArchive &;2/定义填充矩形类(和矩形类的区别:填充矩形类不具有线宽)class CRect

16、Fill : CRectFill() /类的默认构造函数 DECLARE_SERIAL(CRectFill) /序列化声明 CRectFill(int X1, int Y1, int X2, int Y2, COLORREF Color);/定义圆角矩形类class CRectRound : public CDracwBase /圆角矩形的线宽 CRectRound() /类的默认构造函数 DECLARE_SERIAL(CRectRound) /序列化声明 CRectRound(int X1, int Y1, int X2, int Y2, COLORREF Color, int Thickn

17、ess);/定义填充圆角矩形类class CRectRoundFill : CRectRoundFill() /类的默认构造函数 DECLARE_SERIAL(CRectRoundFill) /序列化声明 CRectRoundFill(int X1, int Y1, int X2, int Y2, COLORREF Color);/定义圆形(椭圆形)类class CCircle : /圆的线宽 CCircle() /类的默认构造函数 DECLARE_SERIAL(CCircle) /序列化声明 CCircle(int X1, int Y1, int X2, int Y2, COLORREF C

18、olor, int Thickness);/定义填充圆形(椭圆形)类class CCircleFill : CCircleFill() /类的默认构造函数 DECLARE_SERIAL(CCircleFill) /序列化声明 CCircleFill(int X1, int Y1, int X2, int Y2, COLORREF Color);/定义文本类class CText : LOGFONT m_Lf; /绘制的文本的子体结构 CString m_Str; /存放绘制的文本 CText() /类的默认构造函数 DECLARE_SERIAL(CText) /序列化声明 CText(int

19、X1, int Y1, int X2, int Y2, COLORREF Color, LOGFONT lf, CString str);#endif / !defined(AFX_DRAWGRAPHIC_H_A6887B21_FA3D_404C_B802_D09AB24282BB_INCLUDED_)class CDrawApp : public CWinApp COLORREF m_FillColor; /填充色 COLORREF m_PenColor; /画笔颜色 int m_CurrentPenThickness; /画笔宽度 int m_CurrentLineStyle; /画笔样式

20、 UINT m_CurrentTool; /当前绘图样式 CDrawApp();4.1概述主要测试绘制图形以及绘制填充图形。4.2 测试环境测试环境如下: 测试系统: Windows XP。测试工具: Visual Studio C+ 6.0。硬件:普通个人PC机。4.3测试计划第一,在上面的测试环境下打开软件。第二,显示主界面并逐一测试主界面上的功能。第三,保存自己的设置和自己在测试时所绘制的图形。第四,退出程序。4.4测试项目及结果1、首先运行程序,界面如下:2、选择一个绘图功能如绘制矩形进行绘制、并插入文本:3、重新设置画笔宽度、颜色进行绘制矩形:(设置画笔颜色)(设置画笔宽度)(设置字

21、体)4、绘制填充图形,如矩形:重新设置填充色绘制填充图形:5、退出程序。5、工作总结5.1工作成果在此课设中我最主要的工作是查阅资料,读懂读会别人的代码,然后再依据别人的代码,做成自己的程序,并使之完成一些基本的功能,听起来虽然简单,但做起来很难。在这次课程设计的实习中,我感觉到有点吃力,因为平时对编程序这方面没有过多的关注,平时所学到的一点理论知识在实际应用中也很有限,实习过程中明显的准备不充分,使自己遇到了很多的难题。一些基本功能自己还能实现,但是稍微复杂点自己就做不了,这时就要去看别人怎么做的,有时候甚至别人写好的代码都看不懂,还要去查很多相关的资料。自己根据别人绘制矩形、填充矩形的代码

22、写出了绘制填充圆形、绘制正方形、填充正方形等几项功能代码。还有一些代码,实在别的程序里看到的,如撤销最后一步操作、撤销所有操作,经过修改我用到了画图程序中来。还有字体、颜色的设置等也是参考别人自己修改写出来的。最终写出了这个功能还算完善的程序。5.2过程分析通过这次课程设计实践我真的是学到了不少东西! 这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试、发布、文档化、维护和修订。编程的风格也很重要。MFC程序设计是一门重要的专业基础课程,是数据结构,操作系统,数据库原理和软件工程等后继课程的基础。适用于大型系统软件和应用软件的开发。课程设计是培养学

23、生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.经过这两个星期的上机实践学习,使我对MFC有了更进一步的认识和了解。在不长的时间里我明白了,不仅仅是要重视,而且要通过不断的上机操作才能更好地学习这门语言。在课程设计这两个星期里,我认识到我有很多不足得地方。首先是自己在指法上还不行,经常按错字母,但通过学习和练习,已经有了很大的提高;再有对MFC的一些标准库函数不太了解,对函数调用的正确使用不够熟悉,还有对MFC中经常出现的错误也不了解。通过设计实践,使我在这几个方面的认识有所提高。经过设计的各个环节,从中学到了很多,锻炼了自

24、己系统的设计的能力,从系统的需求到系统的功能,到系统的测试,到系统的发布,可以掌握到一个完全的过程,这样对我们以后在工作中或学习中得到很好的锻炼,为用VC+编辑软件奠定基础。当然,本报告所采取的解决问题的方法并不是非常完善的,在今后的学习、工作中,将继续研究并改进。5.3经验教训及其分析1、对于MFC程序模块的不熟悉是课程设计中所遇到的大的问题。MFC中有基于基本对话框,单文档,多重文档等模块,对一些模块的偏向导致对于所有的模块都是似懂非懂,并且在编写程序的时候相互混淆导致编写错误。2、程序基础的不扎实是课程设计不能完美,高效的完成的最大影响。以前对程序只是看在眼里,动手的时间并不多,这次程序设计对自己的程序设计实践能力发出了巨大的挑战,通过对程序的设计发现在自己以前的基础功不扎实,程序只是看在眼里,并未真正实践,导致许多代码都打错,大小写不分。3、自己对MFC程序中的各种函数以及各个函数之间的相互调用还不能很好的掌握。 在MFC中提供许多编程接口,而各个接口之间又是通过函数相互连接,对各个编程接口的陌生是我此次编程的第一大障碍,不知道程序接口的函数以及参数值,只能查询资料慢慢理解。

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

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