欢迎来到天天文库
浏览记录
ID:18940624
大小:152.50 KB
页数:3页
时间:2018-09-21
《综合实验一(实验五)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《面向对象程序设计》实验五(综合实验一)电子信息与科学技术专业本科三年级2010-11-08~2010-12-05实验题目:设计开发一个简易图形编辑器实验目的:掌握完整的窗口应用的开发过程,综合运用SDK编程已经学过的知识。实验要求:A、基本功能要求1.交互式绘制图形(至少包括线、矩形和文本),绘制完成的图形能够正确地重现2.绘制结果可以正确持久化(存储到文件、从文件中读出)“文本”3.最终交付的工程中至少包含两个源文件(.cpp文件,即除主程序外,将部分函数分离到单独的源文件)、一个rc文件程序实现后可交互式绘制如下图所示的图形:用“矩形”绘制用“线”绘制用“椭圆”绘制B、
2、高级要求1.线、矩形、文本的颜色(线色和填充色)、文本字体可调。2.能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括:l位置l大小l颜色l线型l字体(对应文本图元而言)C、制品要求本次实验为综合实验,实验完成后须上交:(1)实验报告:实验过程、实验结果的相应描述(2)程序文件(工程文件、源文件、资源文件)。实验报告和程序的最后上传时间为2010年12月5日21时30分。将程序和文档压缩成名为样式为“学号_姓名_综合1_1.rar”的文件上传到服务器。上传文件中不需包含可执行文件、不要包含DEBUG子目录(上传的rar文件应小于500kB)。如学号为20080080
3、9999的张三同学此次上传文件的文件名应为200800809999_张三_综合1_1.rar。文件名不合要求的文件视为无效文件,注意连字符是下划线“_”而不是减号“-”。综合实验一提示:提示A、数据结构定义typedefstructMyLine//线{POINTptS;POINTptE;COLORREFcolor;intpenWidth;intpenStyle;}MYLINE,*PMYLINE;typedefstructMyEllipse//椭圆{RECTrect;//外接矩形COLORREFlineColor;//线色COLORREFbrushColor;//刷色//……线
4、型、刷型等}MYELLIPSE,*PMYELLIPSE;利用上述数据结构绘制图形的函数(实验七的函数实现也可以参考下面的例子):voidDrawMyLine(HDChdc,PMYLINEpLine)//绘制一条线{HPENhPen=CreatePen(pLine->penStyle,pLine->penWidth,pLine->color);HPENhPenOld=(HPEN)SelectObject(hdc,hPen);MoveToEx(hdc,pLine->ptS.x,pLine->ptS.y,NULL);LineTo(hdc,pLine->ptE.x,pLine->pt
5、E.y);SelectObject(hdc,hPenOld);DeleteObject(hPen);}voidDrawMyLines(HDChdc,PMYLINEpLines,intiCount){for(inti=0;i6、串长度问题。相对而言,文本的处理需要更多的思考。根据自己的理解,可以考虑采用下列两个数据结构的一种:typedefstructMyText{RECTrect;//外接矩形COLORREFlineColor;//文本色char*pBuffer;//指针方式文本缓冲区,根据输入文本长度申请内存}MYTEXT,*PMYTEXT;typedefstructMyText1{RECTrect;//外接矩形COLORREFlineColor;//文本色charbuffer[64];//固定长度文本缓冲区,只能接收小于64的字符串}MYTEXT1,*PMYTEXT1;使用第一种文本结构(MY7、TEXT)需要处理缓冲区申请、释放,并且存储到文件时需要分别处理结构中的各个变量,但这种方式能够适应任意的文本输入情况;使用第二种文本结构(MYTEXT1)非常简单,只是输入内容很受限。文件输出、读入也非常容易,只需要将整个结构一次性处理即可。如果对缓冲区使用有一定的理解,建议使用第一种处理方式。提示C、数据管理采用集中管理所有图元还是每类图元单独管理是需要认真思考的问题。建议从一类图元开始管理,逐步扩展到所有的图元都能够得到有效的管理。管理一类图元时,需要有变量记录缓冲区大小、当前绘制的此类型图元的总
6、串长度问题。相对而言,文本的处理需要更多的思考。根据自己的理解,可以考虑采用下列两个数据结构的一种:typedefstructMyText{RECTrect;//外接矩形COLORREFlineColor;//文本色char*pBuffer;//指针方式文本缓冲区,根据输入文本长度申请内存}MYTEXT,*PMYTEXT;typedefstructMyText1{RECTrect;//外接矩形COLORREFlineColor;//文本色charbuffer[64];//固定长度文本缓冲区,只能接收小于64的字符串}MYTEXT1,*PMYTEXT1;使用第一种文本结构(MY
7、TEXT)需要处理缓冲区申请、释放,并且存储到文件时需要分别处理结构中的各个变量,但这种方式能够适应任意的文本输入情况;使用第二种文本结构(MYTEXT1)非常简单,只是输入内容很受限。文件输出、读入也非常容易,只需要将整个结构一次性处理即可。如果对缓冲区使用有一定的理解,建议使用第一种处理方式。提示C、数据管理采用集中管理所有图元还是每类图元单独管理是需要认真思考的问题。建议从一类图元开始管理,逐步扩展到所有的图元都能够得到有效的管理。管理一类图元时,需要有变量记录缓冲区大小、当前绘制的此类型图元的总
此文档下载收益归作者所有