实验七:多态性(二).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文档。上传文档
查看更多
福建农林大学金山学院实验报告 系(教研室):信息与机电工程系 专业:计算机科学与技术 年级: 实验课程:面向对象程序设计 姓名: 学号:   实验室号 计算机号   实验时间: 指导教师签字: 成绩: 实验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. (1)在VC环境下根据题目写出类 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接。 #include iostream using namespace std; 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; cout\nc1*c2=; print(c3); c3=c1/c2; cout\nc1/c2=; print(c3); coutendl; return 0; } (4)运行程序,,分析结果。 2. (1)在VC环境下根据题目写出类 (2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。 (3)编译和连接。 #includeiostream using namespace std; class Fraction {public: Fraction(){son=0,mother=1;} Fraction(int s,int m){son=s;mother=m;optimization();} Fraction operator+(const Fraction c); Fr

文档评论(0)

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

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

1亿VIP精品文档

相关文档