羈《C++面向对象程序设计》课程设计指导书莆袃指导实例:交互式绘图软件设计指导书蒄聿说明:,为可实际运行的软件。指导书中所列程序代码,均为VC++,所列示图,均为制作过程中屏幕截图,其目的是使学习者尽快弄清设计原理,掌握过程、方法,起到举一反三、正真领会面向对象程序设计的思想方法,原理,和操作技能的作用。薆使用中,“”(第3页),供系统设计分析用,实际操作可从“”(第6页)开始。,可根据自身实际情况,酌情参考使用。。面向对象的方法模仿人们建立现实世界模型的方法,认为客观世界是由各种各样的对象组成的,每个对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种各样的系统。利用人们对事物分类和抽象的自然倾向,引进了类的概念,具有封装性、继承性和多态性等特点。羅面向对象的程序设计吸取了传统的结构化程序设计的优点,采用数据抽象和信息隐藏技术、将数据与操作封装在一起,用类来抽象代表现实的实体,用类之间的继承关系来代表设计的抽象过程,将问题求解看作是一个非类演绎过程。++中,类是指由用户定义的一种抽象数据类型,将一组具有相关性的数据成员结合在一起,要使用类中所包含的数据时,必须通过有该类所提供的成员函数来存取。芈数据封装是指将类中的数据成员以其可被使用或不可被使用的方式进行分类,即有条件地限制类中部分或全部的数据成员被使用,在定义数据成员时在其前面冠以private、protected或public,分别表示私有的、保护的和公有的。因此,类是实现数据封装的一个有力方法,类的特性是实现了数据封装或数据抽象。袄在本设计中,可以把各种图形形状,如直线、矩形、圆、曲线、多边形等定义为各种各样的图形类,将图的具体绘制、存储操作和属性设置定义为图形类的public成员函数,这样就实现了类与数据封装。膁例如,直线类可以定义为:肀classCline蒆{芄private:羂 COLORREFm_color; //直线的颜色袈 intm_lineWidth,m_lineStyle; //直线的线宽和直线的线型螈 POINTm_beginPoint,m_endPoint; //直线的起点和终点蚃public:蚂 COLORREFgetColor(); //返回直线的颜色衿 voidsetColor(COLORREFcolor); //设置直线的颜色袇 intgetLineStyle(); //返回直线的线型莆 voidsetLingStyle(UINTstyle); //设置直线的线型蒂 intgetLineWidth(); //返回直线的线宽羁 voidsetLineWidth(intwidth); //设置直线的线宽肅 POINTgetBeginPoint(); //返回直线的起点袆 POINTgetEndPoint(); //返回直线的终点膃 voidDraw(CDC*pDC); //直线的具体绘制螈 voidSerialize(CArchive&ar);莇 … 芅};++中,派生类和继承性是指用户可以利用已有的类(称为基类或父类)定义出新的类(派生类或子类),派生类中不但拥有基类中的全部或部分数据成员与成员函数,而且还可以定义新的数据成员与成员函数。蚅在本设计中,要绘制的图形形状很多,如直线、矩形、圆、曲线、多边形等。虽然图形的形状差别很大,其数据成员和成员函数也有许多不同之处,但是如果从抽象的角度出发,它们有些数据成员和成员函数是相同的,如颜色、线型、线宽属性以及设置或获取这些属性的成员函数,因此可以把这些共同点定义为一个基类CShape,然后从CShape类派生出直线类、矩形类、圆类、曲线类、多边形类等,这样,每个派生类都继承有这些共同点,又可以定义自己独特的数据成员和成员函数,程序结构更加简练合理。蚄CShape类的定义如下:袁classCShape袈{肄protected:莄 COLORREFm_color; //颜色蚈 intm_lineWidth,m_lineStyle; //线宽和线型羇public:薃 virtualCOLORREFgetColor(); //返回颜色袀 virtualvoidsetColor(COLORREFcolor); //设置颜色蝿 virtualintgetLineStyle(); //返回线型肅 virtualintsetLineStyle(intstyle); //设置线型羃 virtualintgetLineWidth(); //返回线宽蚁 virtual
c 课程设计-交互式绘图软件设计指导书 来自淘豆网m.daumloan.com转载请标明出处.