




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Task8-2/*1. 定义一个复数类 Complex ,重载运算符“ + ” ,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和*/#include<iostream>using namespace std;class Complexpublic:Complex()real=0;imag=0;Complex(double r,double i)real=r;imag=i;void display();double real;double imag;void Complex:display()cout<<"(&qu
2、ot;<<real<<","<<imag<<"i)"-可编辑修改-Complex operator +(Complex &c1,Complex &c2) Complex p;p.real=c1.real+c2.real;p.imag=c1.imag+c2.imag;return p;int main()Complex c1(3,5),c2(2,5),c3;c1.display();cout<<"+"c2.display();cout<<"
3、="c3=c1+c2;c3.display();3 陈习章归便阳O,5i>+<2rGO=Ct,10L>Pr-ocess r«tujT-ried 04。冲sxscution time = 6.461 s Press an if key to continue.-可编辑修改-Task8-2/*2. 定义一个复数类 Complex ,重载运算符“ + ”、” - “、 ” *”、” /”,使之能用于复数的加、减、乘、除。运算符重载函数作为 Complex 类的成员函数,编程,分别求两个复数之和差积商。*/#include<iostream>using
4、 namespace std;class Complexpublic:Complex()real=0;imag=0;Complex(double r,double i)real=r;imag=i;Complex operator+(Complex &c2);Complex operator-(Complex &c2);Complex operator*(Complex &c2);Complex operator/(Complex &c2);void display();private:double real;double imag;Complex Complex
5、:operator +(Complex &c2) Complex c;-可编辑修改-c.real=real+c2.real;c.imag=imag+c2.imag;return c;Complex Complex:operator -(Complex &c2)Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;Complex Complex:operator *(Complex &c2)Complex c;c.real=real*c2.real;c.imag=imag*c2.imag;return c;C
6、omplex Complex:operator /(Complex &c2)Complex c;c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);return c;-可编辑修改-void Complex:display()cout<<"("<<real<<","<<imag&l
7、t;<"i)"<<endl;int main()Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1+c2="c3.display();c3=c1-c2;cout<<"c1-c2="c3.display();c3=c1*c2;cout<<"c1*c2="c3.display();c3=c1/c2;cout<<"c1/c2="c3.display();return 0;-可编辑修改-1 口1
8、0+翁习童作业 VaskW-ZexRcl+c2=<8,61l-c2=<-2,1413rl«c2=<15i.-40icl/c2-<-0.2,0.415Tracess returned 0 0x0 executlain time = 0.638 sFress any key to caintiriLiE_Task8-3/*-可编辑修改-3 .有两个矩阵a和b ,均为行m歹U (m、n的值自己给出),求两个矩阵之和、差、积、商,重载运算符“ +”、”,*, ,/,、/ ,使之能用于矩阵向加减乘除,如c=a+b 、 c=a*b 。*/#include <iost
9、ream>#define n 2#define m 3using namespace std;class Matrix/定义Matrix类public:Matrix。;/默认构造函数friend Matrix operator+(Matrix &,Matrix &);/重载运算符“ + ”friend Matrix operator-(Matrix &,Matrix &);friend Matrix operator*(Matrix &,Matrix &);friend Matrix operator/(Matrix &,Matri
10、x &);void input();/ 输入数据函数void display();private:/ 输出数据函数int matnm;Matrix:Matrix()for(int i=0;i<n;i+)for(int j=0;j<m;j+)matij=0;/ 定义构造函数Matrix operator+(Matrix &a,Matrix &b)函数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j+b.matij; return c;Matrix operator-(M
11、atrix &a,Matrix &b)/ 定义重载运算符“ +/ 定义重载运算符“ + ”函-可编辑修改-Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j-b.matij;return c;Matrix operator*(Matrix &a,Matrix &b)/ 定义重载运算符“ + ”函数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j*b.matij;return c;Ma
12、trix operator/(Matrix &a,Matrix &b)/ 定义重载运算符“ + ”函数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j/b.mati j;return c;void Matrix:input()/ 定义输入数据函数cout<<"input value of matrix:"<<endl;int i,j;for(i=0;i<n;i+)for( j=0;j<m;j+)cin>>matij;vo
13、id Matrix:display()/ 定义输出数据函数for (int i=0;i<n;i+)for(int j=0;j<m;j+)cout<<mati j<<" "cout<<endl;int main()Matrix a,b,c;a.input();b.input();cout<<endl<<"Matrix a:"<<endl;a.display();cout<<endl<<"Matrix b:"<<endl
14、;b.display();c=a+b;/ 用重载运算符“ + ” 实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl;c.display();c=a-b;/ 用重载运算符“ + ” 实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a - Matrix b :"<<endl;c.display();c=a*b;/ 用重载运算符“ + ”实现两个矩阵相加cout<<endl&l
15、t;<"Matrix c = Matrix a * Matrix b :"<<endl;c.display();c=a/b;/用重载运算符“ + ”实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a / Matrix b :"<<endl;c.display();return 0;E D:Cg酒;习茁8章作业g e8召田/ input value of matrix: 18 6 3 6 9 4 input v-alue of matrix: 1 2 3 4 3 2hat
16、1* lx a :ks 6 3 8 9 4Matrix h: 12 3 4 3 2Mfi'ts'ZLx c =d + Ma.tr ix h19 B 6 12 12 6c = Hat=i耳 a - Ha.tr-Ik b k7 4 elatrix c - Matrix a * Matrix b : 8 12 9 2 27 8latrix c - Matrix a / Matrix b * 8 3 1 ! 3 2irecess returned 0 (0x0) execution time e 46.069 s 电害意 anj Jtey to cont inu.e .Task8-4/
17、*4 . 在第三题的基础上,重载运算符>> 和 <<, 使之能用于该矩阵的输入和输出。# /#include <iostream># define n 2# define m 3using namespace std;class Matrix/ 定义 Matrix 类public:/ 默认构造函数/ 重载运算符“ +Matrix();friend Matrix operator+(Matrix &,Matrix &);friend Matrix operator-(Matrix &,Matrix &);friend Matri
18、x operator*(Matrix &,Matrix &);friend Matrix operator/(Matrix &,Matrix &);friend ostream& operator<<(ostream& ,Matrix&);friend istream& operator>>(istream& ,Matrix&);void input();/ 输入数据函数void display();/ 输出数据函数private:int matnm;-可编辑修改-;Matrix:Matri
19、x()for(int i=0;i<n;i+)for(int j=0;j<m;j+)matij=0;/ 定义构造函数Matrix operator+(Matrix &a,Matrix &b)函数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j+b.matij; return c;Matrix operator-(Matrix &a,Matrix &b)数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.
20、mati j=a.mati j-b.matij;/ 定义重载运算符“ +/ 定义重载运算符“ + ”函return c;Matrix operator*(Matrix &a,Matrix &b)/ 定义重载运算符“ + ”函数Matrix c;for(int i=0;i<n;i+)for(int j=0;j<m;j+)c.mati j=a.mati j*b.matij;return c;Matrix operator/(Matrix &a,Matrix &b)/ 定义重载运算符“ + ”函数Matrix c;for(int i=0;i<n;i+
21、)for(int j=0;j<m;j+)c.mati j=a.mati j/b.mati j;return c;ostream& operator<<(ostream& out,Matrix& c)for(int i=0;i<n;i+)for(int j=0;j<m;j+)cout<<c.mati j<<'t'cout<<endl;return out;istream& operator>>(istream& in,Matrix& c)for(int i
22、=0;i<n;i+)for(int j=0;j<m;j+)cin>>c.mati j;cout<<endl;return in;/ 定义输入数据函数void Matrix:input() cout<<"input value of matrix:"<<endl;int i,j;for(i=0;i<n;i+)for( j=0;j<m;j+)(cin>>matij;)/定义输出数据函数void Matrix:display()for (int i=0;i<n;i+)for(int j=0;
23、j<m;j+)cout<<mati j<<" "cout<<endl;int main()Matrix a,b,c;cout<<" 请输入第一个n*m矩阵"<<endl;cin>>a;cout<<" 请输入第二个n*m矩阵"<<endl;cin>>b;cout<<endl<<"Matrix a:"<<endl;cout<<a;cout<<end
24、l<<"Matrix b:"<<endl;cout<<b;c=a+b;用重载运算符“+”实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl;c=a-b;用重载运算符“+”实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a - Matrix b :"<<endl;cout<<c;c=a*b;/用重载运算符“ + ”实现两
25、个矩阵相加cout<<endl<<"Matrix c = Matrix a * Matrix b :"<<endl;cout<<c;c=a/b;/用重载运算符“ + ”实现两个矩阵相加cout<<endl<<"Matrix c = Matrix a / Matrix b :"<<endl;cout<<c;return 0;B港习罩a受作曲3 5 kB-4.su请输入第一个口矩阵 IS B 6B 6 4请输入第二个矩阵 2 4 64 3 2latriy a :
26、ISS6口64latrdx b : 246432latrix c = tlatrix q * Flatrix b : 1212121296latrdx c - Hatrlx a - Matrix L : B40432a -* Matrix b : 20323632168latrlx c - Hati*ix a / Matrix h - 521222Process PEui'ned 3 <0x0>1ahPresE Any key +0 con± inue,t ime J 2G.7U t sTask8-5/* 5.实现分数类中的运算符重载,在分数类中可以完成分数的加减
27、乘除-可编辑修改-(运算后再化简) 、求反、比较( 6 种关系)的运算。*/#include<iostream>#include<stdlib.h>using namespace std;int gcd(int m,int n);class Fractionprivate:int nume; / 分子int deno; / 分母public:Fraction(int nu=0,int de=1);/ 构造函数,初始化用void Set(int nu=0,int de=1);/ 置值,改变值时用Fraction operator+(Fraction &c2);Fr
28、action operator-(Fraction &c2);Fraction operator*(Fraction &c2);Fraction operator/(Fraction &c2);bool operator>=(Fraction &c2);Fraction operator-();void display();void Simplify(); / 化简(使分子分母没有公因子);Fraction:Fraction(int nu,int de)if(de!=0)nume=nu;deno=de;elsecout<<" 格式错误
29、,程序退出n"exit(0);void Fraction: Set(int nu,int de)if(de!=0)nume=nu;deno=de;void Fraction:display()cout<<nume<<'/'<<deno<<endl;/ 求分子,分母最大公约数int gcd(int m,int n)int r;if(m<n)r=m;m=n;n=r;while(r=m%n)if(r=0)break;m=n;n=r;return n;/ 将分数化简void Fraction:Simplify()int n
30、=gcd(nume,deno);nume=nume/n;deno=deno/n;cout<<nume<<'/'<<deno;Fraction Fraction:operator+(Fraction &c2)Fraction c;c.deno=deno*c2.deno;c.nume=nume*c2.deno+c2.nume*deno;return c;Fraction Fraction:operator-(Fraction &c2)Fraction c;c.deno=deno*c2.deno;c.nume=nume*c2.deno-c2.nume*deno;return c;Fraction Fraction:operator*(Fraction &c2)Fraction c;c.den
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胸腔积液诊疗要点解析
- 抢救药品的剂量及用途
- 男孩女孩认知活动
- 宿舍卫生管理标准
- 农行转型成效汇报
- 项目履约评价汇报
- 脑出血护考讲解
- 文档转换指南
- 医院内科工作总结
- 尿布皮炎护理技术
- engel恩格尔注塑机机操纵使用说明
- 花卉学 二年生花卉
- 附件1:中国联通动环监控系统B接口技术规范(V3.0)
- 箱变设备台账
- GB/T 1185-2006光学零件表面疵病
- 微课(比喻句)讲课教案课件
- 银行间本币市场业务简介
- 2023年厦门东海职业技术学院辅导员招聘考试笔试题库及答案解析
- 辽阳市出租汽车驾驶员从业资格区域科目考试题库(含答案)
- (完整版)剑桥通用五级PET考试练习题
- DB32- 4385-2022《锅炉大气污染物排放标准》
评论
0/150
提交评论