c++程序设计实习之二类封装

c++程序设计实习之二类封装

ID:1787822

大小:32.50 KB

页数:6页

时间:2017-11-13

c++程序设计实习之二类封装_第1页
c++程序设计实习之二类封装_第2页
c++程序设计实习之二类封装_第3页
c++程序设计实习之二类封装_第4页
c++程序设计实习之二类封装_第5页
资源描述:

《c++程序设计实习之二类封装》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二C++程序设计实习之二:类封装(设计性实习)一、实验名称:C++程序设计实习之二:类封装二、实验目的和要求:实习目的是集中解答课后编程练习中的问题;熟悉类的封装和调用,进一步加深对类的理解,通过练习掌握类封装、调用和多文件程序编写的基本技能。实验的基本要求是:能够将第一次实习的内容封装为一个类CGraphicArea,此类能够记录各种图形(圆、矩形、三角形、梯形等),并计算其面积。三、实验基本内容:1.新建控制台程序;2.编写代码;3.修改错误;4.调试程序。四、实验设备及环境:1.计算机;2.Visual

2、C++编程环境。五、算法描述及基本要求:1.能够输入任意多个待求的几何图形的顶点坐标。输入格式如下:第一点x,第一点y,第二点x,第二点y,第三点x,第三点y,第四点x,第四点y无效坐标可以设定为-1。2.输入输出可以通过读取文件进行,也可以通过控制台手工输入。3.在循环结构中读取数据,循环结构不能设定循环次数,遇到结束标记才终止循环。能够根据输入的有效点数判断几何图形的种类,并分别判断是否能够成相应的几何图形,可以则调用相应的面积计算函数;4.输出所有图形的面积(如果有异常数据,能够指出)。六、实验具体要求:1

3、.在第一次实习的基础上将数据处理部分封装为一个类,并按照新增要求修改输入数据的处理。2.主程序中仅仅处理数据的输入、输出以及定义此类的对象,调用对象的函数获得当前对象的面积。3.类的编写要完整,规范。4.类的成员函数中要能使用重载函数。5.坐标存储要自定义的结构体structfpoint{floatx;floaty;},并定义指针来动态申请内存,存放输入的坐标。6.处理流程可以根据上述要求自行定制。可以先输入待处理的几何图形数量,再通过循环逐项输入各图形的顶点坐标,最后通过循环输出所有的计算结果;也可以与第一次实

4、习一样,在循环过程中一边输入各顶点坐标,一边计算面积,直至循环结束。#include#include#definePI3.1415enumShapeType{Circle,Rect,Triangle,Trape};structShape{ShapeTypest;floatx[4];floaty[4];};classCGraphicArea{private:Shapem_shape;floatm_fArea;public:CGraphicArea();basetype();vi

5、rtual~CGraphicArea();voidInput(Shape*);floatGetArea();protected:floatDistance(floatX1,floatY1,floatX2,floatY2);voidArea(floatr);voidArea(floata,floatb);voidArea(floata,floatb,floatc);voidArea(floata,floatb,floatc,floatd);};CGraphicArea::CGraphicArea(){}CGraph

6、icArea::~CGraphicArea(){}voidCGraphicArea::Input(Shape*st){m_shape.st=st->st;for(inti=0;i<4;i++){m_shape.x[i]=st->x[i];m_shape.y[i]=st->y[i];}}floatCGraphicArea::GetArea(){floatfEdge[4];switch(m_shape.st){caseCircle:fEdge[0]=Distance(m_shape.x[0],m_shape.y[0]

7、,m_shape.x[1],m_shape.y[1]);Area(fEdge[0]);break;caseTriangle:fEdge[0]=Distance(m_shape.x[0],m_shape.y[0],m_shape.x[1],m_shape.y[1]);fEdge[1]=Distance(m_shape.x[2],m_shape.y[2],m_shape.x[1],m_shape.y[1]);fEdge[2]=Distance(m_shape.x[0],m_shape.y[0],m_shape.x[2

8、],m_shape.y[2]);Area(fEdge[0],fEdge[1],fEdge[2]);break;caseTrape:fEdge[0]=Distance(m_shape.x[0],m_shape.y[0],m_shape.x[1],m_shape.y[1]);fEdge[1]=Distance(m_shape.x[2],m_shape.y[2],m_shape

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。