1 / 45
文档名称:

面向对象程序设计报告-基本图形处理软件课程设计报告.doc

格式:doc   页数:45
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象程序设计报告-基本图形处理软件课程设计报告.doc

上传人:3346389411 2012/11/18 文件大小:0 KB

下载得到文件列表

面向对象程序设计报告-基本图形处理软件课程设计报告.doc

文档介绍

文档介绍:面向对象程序设计报告

设计圆(包含椭圆)、矩形(包含正方形)、三角形、直线等基本图形类,基于这些基本图形类构造、编辑复杂图形,基本功能包括:
①图形的创建:以圆(包含椭圆)、矩形(包含正方形)、三角形、直线等基本图形为元素构建复杂图形。
②图形的编辑:增加图形元素(基本图形)、删除图形元素(基本图形)
③图形放大、缩小
④图形保存


本次程序设计为基于C++的面向对象的程序设计。用C++各种基本图形(例如,圆、矩形、三角形、直线、点等)的类原型,通过继承图形这一个公共基类来实现图形的增删改以及保存等操作。通过此次实习,我对类的相关操作以及类的作用有了更深一步的认识。对面向对象程序设计有了进一步的理解。特别是进一步熟悉并使用面向对象的继承、多态等机制。
该系统中,定义了一个鼠标类和窗口类,窗口类又继承了鼠标类,使得所有的操作变得简单明了,代码可移植性也很强。整体操作方式与windows中画图的操作方式相似,而且可以随时更改以前画过的图形,该系统实现了各类基本图形的产生,放大,缩小,删除、移动、改变颜色、改变线型与保存等功能。采用汉字库,实现了中文显示,为该系统的使用者提供了便利。而且界面上操作很方便,可以使用快捷键,可以直接点击鼠标来轻松绘制图片。使用了Turboc++编译器,编译器下载地址:http://12./ 。

:FIGURE
该类归纳了各种图形类的共同数据以及共同操作,声明了几个纯虚函数:
virtual void show()=0;
virtual void hide()=0;
virtual void expand(int delta)=0;
virtual void save()=0;
实现了同一函数在各个不同的图形类中有不同的实现。增大了程序的灵活性。其中show()函数的作用是显示图形,hide()函数是用来隐藏图形,expand()函数是用来放大选中的图形。save()函数将对应图形的相关数据以文件的形式保存。此外,此基类中还包含了一个move_to()函数,该函数实现了图形在选定方向上的移动。包含的数据成员有:整型数据x_pos,y_pos,用来记录坐标。
/////////////////////////////////////图形类基类//////////////////////////////
class FIGURE
{
public:
FIGURE(int x,int y,int lstyle,int lcolor);
virtual void show()=0;
virtual void hide(int bkcolor)=0;
virtual void expand(int bkcolor,int delta)=0;
virtual void save()=0;
void move_to(int bkcolor,int direction,int speed);
void contract(int bkcolor,int delta);

int color,style;

protected:
int x_pos,y_pos;
};
:MYLINE
该类中的数据成员有:整型数据x_pos2,y_pos2用来记录坐标。
///////////////////////////////////直线类/////////////////////////////////////
class MYLINE:public FIGURE
{
public:
MYLINE(int x1,int y1,int x2,int y2,int style,int color);
virtual void show();
virtual void hide(int bkcolor);
virtual void expand(int bkcolor,int delta);
virtual void save();
virtual void move_to(int bkcolor,int direction,int speed);

protected:
int x_pos2,y_pos2;
};
:TRIANGLE
该类的功能是实现以三角形为对象的各种操作。该系统中只是简单的处理了三角形的绘制,只能画等腰三角形,所以只用了一个私有数据length来记录三角形的腰长。
////////////////////////////////////三角形类//////