文档介绍:面向对象程序设计报告
设计圆(包含椭圆)、矩形(包含正方形)、三角形、直线等基本图形类,基于这些基本图形类构造、编辑复杂图形,基本功能包括:
①图形的创建:以圆(包含椭圆)、矩形(包含正方形)、三角形、直线等基本图形为元素构建复杂图形。
②图形的编辑:增加图形元素(基本图形)、删除图形元素(基本图形)
③图形放大、缩小
④图形保存
本次程序设计为基于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来记录三角形的腰长。
////////////////////////////////////三角形类//////