实验七:多态性(二).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七:多态性(二)

福建农林大学金山学院实验报告 系(教研室):信息与机电工程系 专业: 计算机科学与技术 年级: 2009 实验课程: 蛮像对象程序设计 姓名: 黄伟河 学号: 092231048 实验室号 612 计算机号 J612S048 实验时间: 2010-12-8 指导教师签字: 成绩: 实验7 多态性(二) 一、实验目的和要求 (1)熟悉运算符重载的定义和使用方法。 (2)掌握用成员函数、友元函数重载运算符的方法。 二、实验内容和原理 1、定义一个复数类,通过重载运算符:*,/,直接实现二个复数之间的乘除运算。编写一个完整的程序,测试重载运算符的正确性。要求乘法“*”用成员函数实现重载,除法“/”用友元函数实现重载。(提示:两复数相乘的计算公式为:(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 ) 2、在C++中,分数并不是预先定义的,需要建立一个分数类。要求:定义并实现一个分数类,编写分数输出函数print();通过重载运算符+、-、*、/对分数进行算术运算,通过重载运算符==实现判定两个分数是否相等。可自己再增加其他运算符重载函数。最后编写主函数测试。 提示:设有两个分数a/b和c/d,则有: (1) 分子=a*d+b*c;分母=b*d (2) 分子=a*d-b*c;分母=b*d (3) 分子=a*c; 分母=b*d (4) 分子=a*d; 分母=b*c 三、实验环境 1. 硬件:PC机; 2. 软件:Windows操作系统、Visual C++ 6.0 四、算法描述及实验步骤 1、 #includeiostream.h class complex { public: complex(){real=imag=0.0;} complex(double r){real=r;imag=0.0;} complex(double r,double i){real=r;imag=i;} complex operator*(const complex c); friend complex operator/(const complex c1,const complex c2); friend void print(const complex c); private: double real,imag; }; inline complex complex::operator*(const complex c) {return complex(real*c.real-imag*c.imag,real*c.imag+imag*c.real);} complex operator/(const complex c1,const complex c2) {return complex((c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag), (c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag));} void print(const complex c) {if(c.imag0) coutc.realc.imagi; else coutc.real+c.imagi;} int main() { complex c1(2.0),c2(3.0,-5.0),c3; c3=c1*c2; coutc1*c2=; print(c3); c3=c1/c2; cout\nc1/c2=; print(c3); coutendl; return 0; } 2、 #includemath.h #includeiostream.h #includestdlib.h class fraction { public: fraction(int x=0,int y=1); void print(); friend fraction operator + (fractionnum1,fractionnum2); friend fraction operator - (fractionnum1,fractionnum2); friend fraction operator * (fractionnum1,fractionnum2); friend fraction operator / (fractionn

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档