简单画图程序-课程设计
c画图程序课程设计

c 画图程序课程设计一、教学目标本节课的教学目标是让学生掌握C语言的基本语法和操作,学会使用画图程序进行简单的图形绘制。
通过本节课的学习,学生能够理解C语言的基本概念,熟练使用画图程序进行图形设计,培养编程思维和动手能力。
具体来说,知识目标包括:1.了解C语言的基本语法和数据类型。
2.掌握画图程序的基本功能和操作。
技能目标包括:1.能够编写简单的C语言程序。
2.能够使用画图程序进行基本的图形绘制。
情感态度价值观目标包括:1.培养学生的编程兴趣,提高学习的积极性。
2.培养学生团队合作和解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法和画图程序的使用。
具体安排如下:1.C语言基本语法:数据类型、变量、运算符、控制语句等。
2.画图程序的使用:图形绘制、颜色设置、图形属性等。
教学过程中,将结合具体的案例和练习题,让学生在实际操作中掌握C语言的基本语法和画图程序的使用。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。
包括:1.讲授法:讲解C语言的基本语法和画图程序的使用方法。
2.案例分析法:分析具体的编程案例,让学生在实际操作中掌握知识。
3.实验法:让学生动手编写C语言程序,使用画图程序进行图形绘制。
通过多种教学方法的运用,激发学生的学习兴趣,提高学生的编程能力和动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:C语言程序设计基础。
2.参考书:C语言编程实例解析。
3.多媒体资料:C语言语法讲解视频、画图程序操作演示视频。
4.实验设备:计算机、画图程序软件。
通过以上教学资源的运用,帮助学生更好地理解和掌握C语言的基本语法和画图程序的使用,提高学生的学习效果。
五、教学评估本节课的教学评估将采取多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估主要包括以下几个方面:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。
WHUT简单画图程序课程设计报告..

目录1 基本功能描述 (1)2 设计思路 (1)3 软件设计 (3)3.1 设计步骤 (3)3.2 界面设计 (5)3.3 关键功能实现 (6)4 结论与心得体会 (7)5 参考文献 (7)6 思考题 (7)7 附录 (8)7.1 调试报告 (8)7.2 测试结果 (10)7.3 关键源代码 (11)简单画图程序1 基本功能描述1) 在菜单项中添加了两个菜单项——绘图和配色,在绘图菜单项下又有绘制直线,矩形,椭圆和铅笔的子菜单,还有橡皮擦,设置线宽和光标选择的功能;在配色菜单项下又有线色选择,填充色选择和填充功能。
2) 绘图前先选择绘图所用笔的颜色,所用填充图形的颜色,再点击线宽子菜单在弹出的对话框中输入线宽值然后选择要绘制的图形,若不设定则按默认值作图。
3) 以上准备工作做好后左击工作窗口则选定绘图的初始位置,拖动鼠标直到绘图完成后释放鼠标选定了所绘图形的终点,其中铅笔功能是一个涂鸦功能,可以再界面上绘出任何画面,橡皮擦功能擦出作图过程中的一些错误,可以通过改变线宽来改变橡皮擦的单位擦除块的大小从而提高擦除效率。
2 设计思路1) 设计之初需完成程序的基本功能,首先写出绘制直线,椭圆,矩形的函数,在类向导中定义鼠标的按下,移动,弹起的函数以完成上述图形的绘制,其次,要实现线色和填充色的设置;2) 在第一步的基础上在鼠标的按下函数中添加SetCapture()函数以获取鼠标的当前位置,在视图类的头文件中先得定义鼠标的初始位置和最终位置两个变量,然后用橡皮线作出实现图形的动态过程;3) 最终鼠标弹起时需调用ReleaseCapture()函数以确定终点坐标;4) 添加工具条对应直线,矩形,椭圆,铅笔和橡皮擦等功能;图1 程序流程图图2 子程序流程图3 软件设计3.1 设计步骤1)创建MFC类向导的单文档应用程序图3 创建以liuwenrui为工程名的工程图4 创建单文档2)设置菜单项根据需要在菜单项上实现的功能添加相应的菜单,若一个菜单下的子菜单太多可设置多个菜单,再分别在菜单下加入子菜单,如下图5,图6所示,我添加了两个菜单项,在每个分别设置了相应的子菜单。
c画图程序课程设计

c 画图程序课程设计一、课程目标知识目标:1. 学生能理解并掌握c语言中画图程序的基本概念和原理;2. 学生能够运用c语言的基本语法,编写简单的画图程序;3. 学生能够了解并使用c语言中的图形库,实现基本的图形绘制。
技能目标:1. 学生能够独立完成画图程序的编写和调试;2. 学生能够运用逻辑思维和问题解决能力,设计并实现简单的图形组合;3. 学生能够通过编写画图程序,提高编程实践能力和创新思维能力。
情感态度价值观目标:1. 学生对c语言编程产生兴趣,树立编程学习的自信心;2. 学生在编程实践中,培养团队合作精神和解决问题的耐心;3. 学生通过画图程序的创作,体验计算机编程的乐趣,提高对信息技术的认识。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的编程能力和逻辑思维能力。
学生特点:六年级学生,具备一定的计算机操作能力和c语言基础,对图形绘制感兴趣,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程技能和创新能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生能够独立完成简单的画图程序,为后续学习奠定基础。
二、教学内容1. c语言画图程序基本概念:介绍画图程序的概念,图形坐标系、图形库的调用方法;2. c语言基本语法复习:回顾变量、数据类型、运算符、控制语句等基本知识;3. 图形绘制函数:讲解并练习常用的图形绘制函数,如画点、画线、画圆等;4. 综合图形绘制:结合所学知识,设计并实现简单的组合图形;5. 画图程序实例分析:分析教材中的典型画图程序实例,讲解其编程思路和技巧;6. 创新设计:鼓励学生发挥创意,设计并实现自己的画图作品;7. 程序调试与优化:教授程序调试的方法,引导学生发现并解决编程过程中的问题。
教学大纲安排:第一课时:回顾c语言基本语法,介绍画图程序基本概念;第二课时:学习图形绘制函数,进行简单的图形绘制练习;第三课时:分析教材中的画图程序实例,讲解编程技巧;第四课时:综合运用所学知识,设计并实现组合图形;第五课时:创新设计,展示与分享学生的画图作品;第六课时:程序调试与优化,提高画图程序的运行效果。
C课设简单画图程序

C课设简单画图程序公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-简单画图程序1.基本功能描述本次课程设计的任务是利用计算机和VC开发环境编写一个简单画图程序,该程序的设计指标(即主要功能)有:①用鼠标拖动绘制圆、椭圆、矩形,线等基本图形;②能控制画笔的线宽和颜色;③能对图形进行颜色填充;④在鼠标移动的过程中能实时显示当前绘制的图形。
除了以上几点功能,我有另外添加了工具栏、铅笔、橡皮等功能来使程序更方便地让用户使用,简化了人机交互的过程。
2.设计思路首先是界面的问题,既然课设的题目是简单画图,那在建立工程的时候就要选择文档结构而不是以前做的基于对话框。
可选择单文档结构或多文档结构,但想到画图界面一般只有一个,从简洁的角度考虑,选择单文档结构。
而且用户界面在设计的时候要尽可能简单美观,一目了然,对相应功能有图标提示,使用户方便使用。
然后便是画图功能的具体实现。
分析课设要求,可以发现功能一要求的的椭圆、矩形、直线可以分别通过Ellipse();、Rectangle();、MoveTo();、LineTo();这四个函数来实现。
功能二控制画笔线宽和颜色可以给二者分别关联参数,通过改变线宽参数值来控制线宽,通过调用通用对话框改变颜色参数值来控制颜色。
功能三对图形进行颜色填充虽以前未接触过,但查阅资料后发现可以调用ExtFloodFill();并合理设定参数值来实现。
功能四的实时显示功能可以通过调用MouseMove();函数来实现。
这些功能需要建立菜单资源来表示各个功能选项,并建立相应的消息响应函数来进行实现。
另外,画图程序主要是通过鼠标来进行操作,所以要对鼠标消息的响应及处理函数多下功夫来思考和编写。
至于额外添加的功能,工具栏通过添加工具栏资源和关联相应菜单中画图功能ID实现;铅笔、橡皮的功能则是利用MouseMove();函数,在其中做了一些改动来实现。
2.1.程序流程图:图1 程序流程图3.软件设计3.1.设计步骤1)打开VS2010,选择新建项目,选中MFC应用程序,标题为CWN_Graphic;2)选择单文档结构,其他为默认值,点击完成。
简单画图程序课程设计

简单画图程序 课程设计一、课程目标知识目标:1. 学生能够理解简单画图程序的基本概念和原理,掌握画图程序的基本操作。
2. 学生能够描述并运用画图程序中的绘图工具和功能,如线条、图形、颜色填充等。
3. 学生能够掌握画图程序中的图层概念,并运用图层进行作品的创作。
技能目标:1. 学生能够运用画图程序独立创作简单的图形作品,展示自己的创意和想象力。
2. 学生能够熟练使用画图程序的绘图工具,进行基本的绘图操作和编辑功能。
3. 学生能够通过画图程序的实践操作,培养观察力、空间思维能力和动手能力。
情感态度价值观目标:1. 学生对画图程序产生兴趣,积极参与课程学习,主动探索和创作。
2. 学生在创作过程中,培养自信心和耐心,学会坚持和克服困难。
3. 学生能够与他人分享自己的作品,学会欣赏和尊重他人的创作,培养团队合作意识和审美观念。
课程性质:本课程为信息技术课程,结合画图程序的实用性和趣味性,旨在培养学生的计算机操作能力和创造力。
学生特点:学生处于小学高年级阶段,对计算机操作有一定的基础,好奇心强,喜欢动手实践。
教学要求:课程设计要注重理论与实践相结合,以学生为主体,教师引导和辅导,鼓励学生主动探索和创作,培养其信息技术素养和创新能力。
通过具体的学习成果评估,确保课程目标的达成。
二、教学内容1. 画图程序基础知识:- 介绍画图程序的概念和作用。
- 学习画图程序的操作界面和工具栏。
2. 绘图工具的使用:- 线条工具:学习如何绘制直线、曲线等。
- 形状工具:掌握绘制矩形、圆形、三角形等基本图形的方法。
- 颜色填充工具:学习如何为图形填充颜色。
3. 图层管理:- 了解图层概念,学习图层的添加、删除和调整顺序。
- 掌握图层透明度和锁定功能的使用。
4. 作品创作:- 创作简单的图形作品,如卡通人物、风景等。
- 结合所学工具和功能,进行创意作品的绘制。
5. 教学大纲安排:- 第一课时:画图程序基础知识,认识操作界面和工具栏。
简单图形设计C语言课程设计

简单图形设计C语言课程设计一、课程目标知识目标:1. 学生能够理解C语言中基本图形绘制的基础知识,掌握利用C语言进行简单图形设计的方法。
2. 学生能够掌握C语言中的二维数组,并能运用数组进行图形的存储与显示。
3. 学生能够运用循环和条件语句进行图形的边界控制,实现不同尺寸和样式的图形设计。
技能目标:4. 学生能够编写简单的C程序,实现至少三种基本图形(如矩形、三角形、圆形)的绘制。
5. 学生能够通过上机实践,学会调试和修改程序中出现的错误,提高问题解决能力。
6. 学生能够通过小组合作,交流想法,共同完成一个创意图形设计的项目。
情感态度价值观目标:7. 学生能够通过图形设计的学习,培养对计算机编程的兴趣,增强学习信息技术的积极性。
8. 学生在小组合作中,学会相互尊重、倾听他人意见,培养团队协作能力和沟通技巧。
9. 学生能够在创作图形的过程中,发挥个人创意,体会编程与艺术结合的美,提升审美观察能力。
课程性质分析:本课程属于信息技术学科,针对学生的年级特点,课程内容设计注重实践操作和创意发挥,旨在提高学生的编程兴趣和实际应用能力。
学生特点分析:考虑到学生年级和认知水平,课程设计以直观的图形设计入手,逐步引导学生掌握C语言编程的基本方法,鼓励学生在实践中学习和探索。
教学要求分析:教学中需注重理论与实践相结合,强调学生动手实践,通过具体的学习成果,评估学生对知识技能的掌握程度,以及情感态度价值观的培养效果。
二、教学内容1. C语言基础知识回顾:变量、数据类型、运算符、输入输出函数。
2. 控制结构:顺序结构、分支结构(if语句)、循环结构(for循环、while循环)。
3. 二维数组:定义、初始化、访问二维数组元素,数组的应用场景。
4. 图形设计原理:直线、矩形、三角形、圆形的绘制方法,坐标系的应用。
5. 图形绘制函数:使用C语言标准库函数(如graphics.h中的函数)进行图形绘制。
6. 项目实践:小组合作设计一个创意图形,要求包含至少三种基本图形,并具有实际意义。
c++课程设计(简易绘图程序)

目录1、需求与功能分析 (1)2、系统总体框架 (2)3、模块设计与分析 (3)3.1画图模块 (3)3.2贴图模块 (3)3.3窗口模块 (4)3.4菜单模块 (4)3.5工具栏与状态栏模块 (4)4、类的设计与分析 (4)4.1、CAboutDlg类 (4)4.2、CChildFrame类 (4)4.3、CDib类 (4)4.4、CDrawingDoc类 (5)4.5、CDrawingView类 (6)4.6、CMainFrame类 (7)4.7、CSettingDlg类 (7)5、特色算法分析 (8)5.1 CDib类中的显示bmp位图 (8)5.2 CDrawingView类中的画图部分 (10)6、功能测试 (13)7、存在的不足与对策 (16)8、程序源代码 (17)9、使用手册 (17)10、参考文献 (20)1、需求与功能分析为了检验一个学期以来自己学习c++这门课程能够学到多少知识,加上原来就对图像处理就比较感兴趣,曾经更有想过要做一个可以合成红蓝3D图片的一款软件,就是那种需要带上红蓝眼镜才可以看到3D效果的那种图片,自己也有用photoshop做过这样的图片,但是photoshop需要调很多东西才能合成这样的图片,而且还要用相机送两个不同的角度拍两张照片作为源图片去合成红蓝3D图片,虽然我知道原理并不难,但是当我选择了”简易绘图程序”这个课程设计的题目之后,才发现每实现一个功能都需要花很多的精力,而且实现那些功能之后还会发现各种各校的bug,需要细心去寻找解决的办法。
如今课程设计也要上交,一样还有很多我想实现的功能都还没实现,最终也没有实现我想要实现的功能---合成红蓝3D图片。
只做了一些简单的绘图功能。
功能分析,目前这个软件的主要功能有如下:1、画直线:通过OnLine()函数实现。
2、画矩形:通过OnRectangle()函数实现。
3、画椭圆:通过OnEllipse()函数实现。
简易绘图c课程设计

简易绘图c 课程设计一、课程目标知识目标:1. 学生能理解简易绘图c软件的基本功能与操作界面。
2. 学生能掌握绘图c软件中的基本绘图工具使用方法,如线条、图形、颜色填充等。
3. 学生能了解并运用基本的图形变换,如平移、旋转、缩放等。
技能目标:1. 学生能够运用绘图c软件,独立完成基本图形的绘制与编辑。
2. 学生能够通过软件操作,将想象中的图形创意实现出来,培养其创新实践能力。
3. 学生能够运用所学知识,解决简单的实际问题,如制作简笔画、图标设计等。
情感态度价值观目标:1. 培养学生对信息技术的兴趣,激发其学习简易绘图c软件的热情。
2. 培养学生耐心细致、团结协作的学习态度,使其在团队协作中发挥积极作用。
3. 培养学生的审美观念,提高其对美的感知力和创造力。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和创新思维。
学生特点:学生年级为小学四年级,对新鲜事物充满好奇,动手能力强,但注意力集中时间较短。
教学要求:教师应以引导为主,注重激发学生兴趣,鼓励学生主动探索与实践,培养其解决问题的能力。
同时,关注学生的个别差异,给予个性化的指导与帮助。
通过课程目标的实现,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. 简易绘图c软件的认识与操作界面熟悉:- 界面布局及功能介绍- 常用工具栏的认识与使用2. 基本绘图工具的使用:- 线条、图形的绘制- 颜色填充与选择- 图形编辑与修改3. 基本图形变换:- 平移、旋转、缩放的操作方法- 变换工具的应用实例4. 创意绘图实践:- 简笔画创作- 图标设计与制作- 结合实际生活的创意绘图案例5. 团队协作与作品展示:- 分组讨论与协作- 作品展示与评价- 优秀作品分享与交流教学内容依据课程目标,参照教材相关章节进行组织与安排。
在教学过程中,注重理论与实践相结合,以学生实践操作为主,引导学生逐步掌握简易绘图c 软件的使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单画图程序-课程设计目录1. 基本功能描述 ............................................................. 1 2. 设计思路 .................................................................1 3. 软件设计 (3)3.1 设计步骤 (3)3.2 界面设计 (6)3.3 关键功能的实现 ...................................................... 7 4. 结论与心得体会 ........................................................... 8 5. 参考文献 ................................................................. 9 6. 思考题 (9)7. 附录 .....................................................................97.1 调试报告 (9)7.2 测试结果 (10)7.3 关键源代码 (1)武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书简单画图程序1. 基本功能描述1) 在菜单处的有相应的菜单项,可以选择绘制的图形形状,如直线、矩形及椭圆,可-5可供选择,还可以选择线色以及填充色,通过弹出的颜色对话框选择以选择线宽,有1需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔以及画刷来绘制选择的图形。
2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,鼠标弹起,此图形则绘制完毕。
3) 增添了工具栏,有相应的选择项,可以更方便地实现相应的功能。
2. 设计思路1) 对需要用到的变量进行初始化。
2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。
选择不同的线宽,线色与填充色,则改变画笔和画刷的属性。
3) 鼠标的按下响应LButtonDown(),定义起点的坐标,鼠标的拖动响应MouseMove()改变终点的坐标,鼠标的弹起响应LButtonUp(),刷新,得到绘制图形。
4) 选择图形或其它属性,可进行下一次绘制。
开始初始化(即初始化相关变量,如shpae、线色m_nColor、填充色m_fColor、画笔pen、画刷brush、起点opoint、终点epoint等)选择线宽,1武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书Y改变画笔属性NY 选择颜色,, 改变画笔属性 NY 选择填充,改变画笔属性N直线, 矩形, 椭圆,响应直线的消响应矩形的消响应椭圆的消息处理函数息处理函数息处理函数OnRect()OnRect()OnRect()shape=1 shape=2 shape=3鼠标左键按下,响应LButtonDown(),opoint=point鼠标左键按下拖动,响应MouseMove(),epoint=point,响应OnPaint(),绘制图形鼠标左键弹起,响应 LButtonUp(),刷新,得到图形结束2武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书图1 程序流程图3. 软件设计3.1 设计步骤1)创建一个给予单文档的应用程序框架。
命名为“yuyangyi”。
图2 创建工程2)编辑菜单。
添加需要的菜单项,如图3;设定好ID值,如图4;建立类向导,在视图类中,对菜单项添加对应的COMMAND消息出理函数,部分菜单项还添加对应的UPDATE_COMMAND_UI消息函数,如图5。
3武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书图3 添加菜单项图4 设定菜单项ID4武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书图5 建立类向导3)创建工具栏。
在插入处选择资源,新建工具栏,如图6;在工具栏上添加相应的按钮,在属性处更改其ID,如图7。
图6 新建工具栏5武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书图7 编辑工具栏4)在相应消息函数处添加代码,实现其功能。
建立类向导,添加WM_PAINT消息,以及LBUTTONDOWN、LBUTTONUP、MOUSEMOVE消息,并在其中添加相应的代码,如图8。
图8 添加WM_PAINT消息3.2 界面设计表1 界面控件表6武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书控件名称控件类型 ID属性相关变量绘图下拉式菜单直线菜单项 ID_LINE int shape工具栏按钮矩形菜单项 ID_RECT int shape工具栏按钮椭圆菜单项 ID_ELLIPSE int shape工具栏按钮线宽弹出式菜单 int w颜色(线色) 菜单项 ID_COLOR COLORREF m_nColor工具栏按钮填充色菜单项 ID_FILLCOLOR COLORREF m_fColor工具栏按钮3.3 关键功能的实现1)绘制选择的图形。
在直线、矩形以及椭圆的消息处理函数里为shape赋值,选择直线,则shape=1,选择矩形,则shape=2,选择椭圆,则shape=3,在OnPaint()里添加绘图的代码,其中运用3个if语句来绘制不同的图形。
当shape=1时执行绘制直线的代码,同理绘制出矩形与椭圆。
2)通过鼠标绘制图形。
在视图类里添加WM_LBUTTONDOWN、WM_LBUTTONUP以及WM_MOUSEMOVE消息,在OnLButtonDown()函数里,获取鼠标坐标,将其赋给之前定义作为起点的变量opoint;在OnMouseMove()函数里,把鼠标坐标赋给之前定义作为终点的变量epoint,OnPaint()中绘图的代码中的坐标都得到了,进行绘图;在OnLButtonUp()函数里,进行刷新,显示绘制出的图。
3)改变线宽。
定义了默认线宽w=1,在菜单处选择了线宽的值后,对应的值赋给了w,在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w, m_nColor),线宽处用w表示,则改变w的值即改变了画笔的粗细。
4)改变线色。
在选择线色时,会弹出系统带的颜色对话框,把选中的颜色给m_nColor,在OnPaint()创建的画笔中,pen.CreatePen(PS_SOLID,w,m_nColor),线色处用m_nColor表示,则当 m_nColor改变时,画笔的颜色就会跟着发生变化。
5)改变填充色。
选择填充色时,通过颜色对话框选择颜色,选中的颜色赋给m_fColor,在OnPaint()创建的画刷中,brush.CreateSolidBrush(m_fColor),颜色就是用m_fColor表示的,所以m_fColor是什么颜色,画刷就是什么颜色。
7武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书 4. 结论与心得体会这次C++程序设计(简单画图程序的实现)的课程设计至此已基本完成,利用这个程序可以在用户区绘制出直线、矩形与椭圆图形,可以自定义线条的颜色以及选择线的宽度,还可以改变图形的填充色。
最终设计的程序基本能够达到课设任务书指定的基本功能。
这次课程设计让我收获颇多,感觉很是充实,看到最后程序正常运行时候心里还略有一点小小成就感。
在选课题的时候,看到有画图程序这个题目时候,觉得应该有趣一点,不是很枯燥那种,加上平时C++理论课上这种类似的画图程序接触过,老师也讲过类似例子,于是就选择了它。
原本以为这个程序制作起来很简单,但是到了开始着手程序设计时候,发现第一步,也就是画出程序流程图,我就不知什么样子的流程图才是任务要求的,在查阅课本以及相关书籍上类似程序流程图实例后,借鉴了例子中的基本框架,然后才画出符合要求的流程图。
当开始用VC进行程序编制时候,创建完工程、编辑好相应菜单选项以及对菜单项添加对应的COMMAND消息出理函数和对应的UPDATE_COMMAND_UI消息函数后,突然思维卡住了,不知道下一步该从何处下手。
请教了一下同学才发现自己的问题很低级,在添加完函数后得做的就是在相应消息函数处添加代码来实现其功能。
真正的困难从这时候开始出现了,代码是程序核心部分,自然也是也困难的地方了,在参阅了课本和平时上课的课件之后,自己尝试着编写相应功能的代码,可是编写完某个功能后用VC编译时候,程序便报出许多的错误,其中较大的一些问题在和同学讨论及请教之后得到解决,多数的错误还是属于那种低级的小错误,开始体会到平时一些看起来简单自己编懒得亲自敲打代码实践的小程序在真正做起来也是需要认真细心对待的。
在建立完类向导,添加完WM_PAINT消息,以及LBUTTONDOWN、LBUTTONUP、MOUSEMOVE消息,对其进行代码添加时候,最难得部分出现了,自己参照资料所写的代码总是不能运行正确,而且代码不是很精简,冗余度很大,最终参照着从网上找到的一段代码改写自己代码,最后才得到正常精简的程序代码。
在编程中,遇到过很多问题,有时候好不容易解决掉一个问题,还没来得及高兴就发现这个问题的额解决却衍生出了另外的问题,甚至是一连引发好几个小问题,例如在实现动态画图时,发现每次接着画下一个图形时候,上次以及之前画的图案就全部清空了,修改了相应刷新函数之后,图案是能够保存了,可是动态画图的每一个中间过程也都被一起保留下来了,这一点到最后也没有被解决,这是这次课程设计中最遗憾的一个地方,虽然程序能基本满足要求,但是没能完全满足相应要求。
通过这次课程设计,我学习到了很多,让我感受到之前在理论课程安排的上机试验中,所掌握的实际程序操作都是在表层的,没有深入的程序设计的核心以及整体把握,上机时候我们大部分都是参照着课本以及课件来操作的,所以遇到的问题不多也不大。
但这次课程设计是的靠自己来独立操作,需要自己去查阅以及筛选相应的资料来帮助自己完成设计,锻炼我们的独立工作及动手实践能力。
让我对VC 中的MFC有了更多的了解及认知。
8武汉理工大学《专业课程设计2(面向对象程序设计)》课程设计说明书5. 参考文献[1]揣锦华.面向对象程序设计与VC++实践.西安电子科技大学出版社.2005.[2]Walter Savitch. 完美C++教程.清华大学出版社.2005.[3](美) Judy Scholl. C++编程:从问题分析到程序设计实验指导书.电子工业出版社.2003.[4] 夏崇镨, 任海军, 余健. Visual C++课程设计案例精编.清华大学出版社.2008 6. 思考题1) 说明直线、椭圆、矩形绘制使用的函数,及其参数含义,答:直线、椭圆、矩形绘制使用的函数是OnPaint()。