欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    形状类的设计及实现.doc

    • 资源ID:12455089       资源大小:67.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    形状类的设计及实现.doc

    C+实验报告2014年6月4 日实验题目:形状类的设计与实现实验目的:1)什么是多态,多态是面向对象程序设计的重要特性之一,它与封装性和继承性构成了面向对象程序设计的三大特性。所谓多态,是指不同类型的对象接收相同的消息时产生不同的行为。2)虚函数的作用,由于多态分为静态联编和动态联编,而在静态联编下,同一个成员函数在基类和派生类中的不同版本是不会在运行时根据程序代码的指定进行自动绑定的。因此必须通过类的虚函数机制,才能实现基类和派生类中的成员函数不同版本的动态联编。3)运算符重载的作用,运算符重载就是赋予已有的运算符多重含义,是一种静态联编的多态。通过重新定义运算符,使其能够用于特定类对象执行特定的功能,从而增强了C+语言的扩充能力。实验内容:(1) 出现Ex_Shape.cpp:定义一个抽象类CShape,包含纯虚函数Area(用来计算面积)和SetData(用来重设形状大小)。然后派生出三角形CTriangle类,矩形CRect类,园CCircle类,分别求其面积。最后定义一个CArea类,计算这几个形状的面积之和,各形状的数据通过CArea类构造函数或成员函数来设置。编写一个完整的程序。(2) 程序Ex_Complex.cpp:定义一个复数类CComplex,通过重载运算符“*“和”/“,直接实现两个复数之间的乘除运算。运算符”*“用成员函数实现重载,而运算符”/“用友元函数实现重载。编写一个完整的程序(包括测试运算符的程序部分)。提示:两个复数相乘的计算公式为(a+bi)*(c+di)=(ac-bd)+(ad+bc)i,而两个复数相除的计算公式为(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)i。实验步骤:1) 在D:Visual C+程序GuHao文件夹中创建一个新的子文件夹62) 启动Visual C+6.0,输入程序Ex_Shape.cpp并进行运行和编译,相关代码如下:#include<iostream.h>class CShapepublic:virtual float Area()=0;/将Area定义成纯虚函数virtual void SetData(float f1,float f2)=0;/将SetData定义成纯虚函数;class CTriangle:public CShapepublic:CTriangle(float h=0,float w=0)H=h;W=w;float Area()/在派生类定义纯虚函数的具体实现代码return (float)(H*W*0.5);void SetData(float f1,float f2)H=f1;W=f2;private:float H,W;class CRect:public CShapepublic:CRect(float h=0,float w=0)H=h;W=w;float Area()/在派生类定义纯虚函数的具体实现代码return (float)(H*W);void SetData(float f1,float f2)H=f1;W=f2;private:float H,W;class CCircle:public CShapepublic:CCircle(float r=0)R=r;float Area()/在派生类定义纯虚函数的具体实现代码return (float)(3.14159265*R*R);void SetData(float r,float)/保持与纯虚函数一致R=r;private:float R;class CAreapublic:/忘记设置访问权限CArea(float triWidth,float triHeight,float rcWidth,float rcHeight,float r)ppShape=new CShape*3;ppShape0=new CTriangle(triWidth,triHeight);ppShape1=new CRect(rcWidth,rcHeight);ppShape2=new CCircle(r);CArea()for(int i=0;i<3;i+)delete ppShapei;delete ppShape;void SetShapeData(int n,float f1,float f2=0)/n为0表示操作的是三角形,1表示是矩形,2表示圆形if(n>2)|(n<0) return;ppShapen->SetData(f1,f2);void CalAndPrint(void)/计算并输出float fSum=0.0;char* str3="三角","矩","园"for(int i=0;i<3;i+)float area=ppShapei->Area();/通过基类指针,求不同形状的面积cout<<stri<<"形面积是:"<<area<<endl;fSum+=area;cout<<"总面积是:"<<fSum<<endl;private:CShape *ppShape;/指向基类的指针数组;int main()/main拼写错误CArea a(10,20,6,8,6.5);a.CalAndPrint();a.SetShapeData(0,20,30);/重设三角形大小a.CalAndPrint();a.SetShapeData(2,11);/重设园的半径大小a.CalAndPrint();a.SetShapeData(1,2,5);/重设矩形大小a.CalAndPrint();return 0;3) Ex_Shape.cpp的运行结果如下:4)新建一个程序Ex_Complex.cpp,并进行编译和运行,代码如下:#include<iostream.h>class CComplexpublic:CComplex(double r=0,double i=0)realPart=r;imagePart=i;void Print()cout<<"该复数实部="<<realPart<<",虚部="<<imagePart<<endl;CComplex operator *(CComplex &b);/成员函数重载运算符friend CComplex operator / (CComplex &a,CComplex &b);/友元函数重载运算符private:double realPart;/复数的实部double imagePart;/复数的虚部;CComplex CComplex:operator *(CComplex &b)CComplex temp;temp.realPart=realPart*b.realPart-imagePart*b.imagePart;temp.imagePart=realPart*b.imagePart+imagePart*b.realPart;return temp;CC omplex operator / (CComplex &a,CComplex &b)CComplex temp;double d=b.realPart*b.realPart+b.imagePart*b.imagePart;temp.realPart=(a.realPart*b.realPart+a.imagePart *b.imagePart)/d;temp.imagePart=(a.imagePart*b.imagePart-a.realPart *b.imagePart)/d;return temp;6 / 6文档可自由编辑打印int main()CComplex c1(12,20),c2(50,70),c;c=c1*c2;c.Print();c=c1/c2;c.Print();return 0;5)运行结果如下截图所示:分析与体会:1) Ex_Shape.cpp在编译运行时出现的错误提示如下截图所示:编译时:原因是:忘记设置访问权限所提示的错误原因是:main拼写错误的原因2)Ex_Complex.cpp在编译运行时提示的错误:原因是:因为上一个Ex_Shape的工作空间未关闭的原因实验指导教师(签字)实验成绩

    注意事项

    本文(形状类的设计及实现.doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开