实验七:多态性(二)
更新时间:2023-09-09 22:55:01 阅读量: 教育文库 文档下载
福建农林大学金山学院实验报告
系(教研室):信息与机电工程系 专业: 计算机科学与技术 年级: 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、
#include
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.imag<0) cout< { complex c1(2.0),c2(3.0,-5.0),c3; c3=c1*c2; cout<<\print(c3); c3=c1/c2; cout<<\print(c3); cout< #include #include fraction(int x=0,int y=1); void print(); friend fraction operator + (fraction&num1,fraction&num2); friend fraction operator - (fraction&num1,fraction&num2); friend fraction operator * (fraction&num1,fraction&num2); friend fraction operator / (fraction&num1,fraction&num2); friend bool operator==(fraction&num1,fraction&num2); private: int n,d; void optiminzation(); }; void fraction::optiminzation() { int gcd,min,max; if(d==0) { cout<<\分母为零分数无意义\exit(1); } gcd=(abs(n)>abs(d)?abs(d):abs(n)); if(gcd==0)return; if(abs(n)>abs(d)) { max=n;min=d; } else{min=n;max=d; } do { gcd=min%max;max=min;min=gcd;} while(gcd!=0); n/=max;d/=max; if(d<0) {n=-n;d=-d;} } fraction::fraction(int x,int y) {n=x; d=y; optiminzation(); } void fraction::print() { if(d==1) cout< else cout< fraction operator+(fraction&num1,fraction&num2) { fraction temp; temp.d=num1.d*num2.d; temp.n=num1.n*num2.d+num1.d*num2.n; return temp; } fraction operator-(fraction&num1,fraction&num2) { fraction temp; temp.d=num1.d*num2.d; temp.n=num1.n*num2.d-num1.d*num2.n; return temp; } fraction operator*(fraction&num1,fraction&num2) { fraction temp; temp.d=num1.d*num2.d; temp.n=num1.n*num2.n; return temp; } fraction operator/(fraction&num1,fraction&num2) { fraction temp; temp.d=num1.d*num2.n; temp.n=num1.n*num2.d; return temp; } bool operator==(fraction&num1,fraction&num2) { if(num1.n==num2.n&&num1.d==num2.d)return true; else return false; } int main() { cout<<\测试数据********\fraction r1(4,8),r2(3,6),r3; cout<<\原始数据:\cout<<\cout<<\化简后的数据:\cout<<\化简后的数据:\r3=r1+r2; cout<<\r3=r1-r2; cout<<\r3=r1*r2; cout<<\r3=r1/r2; cout<<\if(r1==r2) cout<<\else cout<<\≠r2\ cout<<\return 0; } 五、调试过程 1、 2、 六、实验结果 1、 2、 七、总结 1、学习了运算符重载的方法。 2、虽然程序可以运行,仍有部门问题无法理解
正在阅读:
实验七:多态性(二)09-09
国家心理咨询师考前辅导量表(二级用)05-15
四川省南充市2017年中考语文试卷Word版附答案05-07
第三组详细设计说明书_V1.106-07
人机交互技术实验指导书10-22
湖北省黄冈市浠水县大灵中学2014届九年级4月第二次周考英语试题 doc01-04
金属镀层的特点及应用12-19
激光焊的主要工艺参数对焊接质量的影响08-30
青岛版小学四年级数学上册全册教案11-22
机电设备质量验收标准05-19
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 多态性
- 实验
- 盐城师范学院大学生社会实践(生涯实践)活动考核登记表 - 图文
- 约教教你学习非常实用的小学生作文教程
- matlab模糊综合评价求隶属矩阵
- 低碳生活绿色出行工作总结报告 - 图文
- 冷轧带肋钢筋混凝土结构技术规程
- 2019纪检监察业务知识考试题库及答案
- 《激战》七夕超前点映 张家辉变肌肉人
- 作文热点导写
- 2009年教育系统职称评审公示
- 请用PV操作解决读者和写者问题
- 大酒店餐饮中心工程高支模专项施工组织设计 - 图文
- 中小学教师工作手册 填写完成版 - 图文
- 中共上海电力学院委员会
- 六年级音乐上册教学计划-六年级音乐教学计划
- 学校卫生制度汇编
- SDH原理习题
- 结构化程序综合设计
- 辽宁省渔业管理条例
- 曼昆《宏观经济学》(第6、7版)课后习题详解(第10章 总需求:建立IS-LM模型)
- 《公路水运品质工程评价标准(试行)》