1、 (const tring &op) int k; k=strcmp(str,op.str); return k;int main() char a1100,a2100; int n; while(cina1a2) tring A1(a1); tring A2(a2); n=A1A2; coutnendl; return 0;1002:Problem B定义一个字符串类,该类包括一个字符型指针数据成员,构造函数、析构函数、显示字符串函数,以及重载=运算符函数(用于字符串赋值)。在主函数中对字符串对象的赋值运算进行测试。输入数据有多行,每行包括一个字符串。输出有多行,对应每个输入数据要求输出两行
2、,第一行是该输入的字符串对象,第二行是定义另一个对象进行赋值运算,将第一个对象赋值给第二个对象。Hello!530 i think you!class Aprivate: char *arr;public: A() A(char *s) arr=new charstrlen(s)+1; strcpy(arr,s); A() A &operator=(const A &s) arr=new charstrlen(s.arr)+1; strcpy(arr,s.arr); return *this; void print()arr0为计数器增加,n0计数器减少)的数。输出计数器自增或自减的结果。每组
3、输出占一行。1 105 -411class counter counter(int x)n=x; counter operator+()+n;return *this;counter operator+(int)counter t=*this;n+;return t; friend counter operator-(counter &p)-p.n;return p;p,int)p.n-;void print()coutn) counter c(m);if(n0) for(i=0;ii-)c-;c.print();运算符重载重载+和-对复数类对象进行加减运算Problem Descriptio
4、n定义一个复数类,该类包含两个double型的数据成员代表复数的实部和虚部,包含构造函数(默认值为0,0),和显示函数,现重载运算符+和-,使其能对复数类对象进行加和减运算。在主函数中进行测试输入数据有多行,每行包括4个数,前两个代表参与运算的第一个复数对象的实部和虚部,后两个代表第二个复数对象的实部和虚部。输出多行,每行包括了加和减运算后的结果。100 20 -10 2010 23 20 342.5 6 3.5 1.3(90,40) (110,0)(30,57) (-10,-11)(6,7.3) (-1,4.7)iostream.hclass Complex Complex(double r
5、=0.0,double i=0.0); friend Complex operator+ (Complex &a,Complex &b); friend Complex operator- (Complex & void print1()(real,imaga2b2) Complex op1(a1,b1); Complex op2(a2,b2); Complex op3,op4; op3=op1+op2; op3.print1(); op4=op1-op2; op4.print2();stringclass Point double a,b,c,d; Point(double i=0,doub
6、le j=0,double k=0,double l=0) a=i;b=j;c=k;d=l; void sd()a+cb+d void sd1()a-cb-dbcd) Point A(a,b,c,d); A.sd(); A.sd1();class Pro double x1,y1; Pro() x1=0,y1=0; Pro(double a1,double a2) x1=a1; y1=a2; x1y1 friend Pro operator+(Pro &m,Pro &n); friend Pro operator-(Pro &Pro operator+(Pro & Pro l; l.x1=m.
7、x1+n.x1; l.y1=m.y1+n.y1; return l;Pro operator-(Pro & Pro k; k.x1=m.x1-n.x1; k.y1=m.y1-n.y1; Pro toal1,toal2; double a1,b1,a2,b2; Pro ob1(a1,b1); Pro ob2(a2,b2); toal1=ob1+ob2; toal2=ob1-ob2; toal1.print(); cout toal2.print();设计一个复数类,实现复数的加减乘除计算功能:首先输入整数t,表示有t组数据,每组数据奇数行为m,n分别为一个复数的实部和虚部,偶数行为+、-、*、/
8、、=任意一个字符,根据偶数行的输入决定其前后两行的运算。运算一律从前往后算。若偶数行输入为=,则结束运算,并输出运算结果。输出最后计算的结果,以m+ni活m-ni,其中m,n分别为复数的实部和虚部(如果m为0,则不用输出)。若除0,则停止计算,并输出”divide by zero”的信息。31 2+4 5*2 2=/2.3 4.50 0-4+24idivide by zero复数class complex complex(double r=0,double i=0) void print()const if(real!=0) cout coutt; while(t-) int k=0; cin
9、xy; complex d(x,y); while(cinc,c!= cinb; complex e(a,b); if(c=+ d=d+e; else if(c=- d=d-e; else if(c=/ if(a=0&b=0) k=1; d=d/e; else if(c=* d=d*e; if(k=0) d.print(); else if(k=1)divide by zero设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符“+”,以实现求两个三角形对象的面积之和。输入数据有多组,每组占二行,每行包括3个整数,表示三角形的三条边(保证能构成三角形)。对于每
10、组数据,输出占一行。先是第1个三角形的面积,然后是第2个三角形的面积,接下来是两个面积之和。中间用空格隔开。3 4 54 5 6 Sample Output6.00 9.92 15.92cmathiomanipclass Triangle double x,y,z; double p,m; static double s; Triangle(double a,double b,double c) x=a; y=b; z=c; p=(y+x+z)/2; m=sqrt(p*(p-x)*(p-y)*(p-z); s=s+m; setiosflags(ios:fixed);setprecision(2
11、)m static void show()s s=0;double Triangle:s=0; double a,b,c,a1,b1,c1;c) c1; Triangle s1(a,b,c); Triangle s2(a1,b1,c1); s1.print(); s2.print(); Triangle:show();1162:求矩阵之和设计一个矩阵类Data,包括矩阵的行、列、矩阵数据等私有数据成员。要求实现两个矩阵的加。输入数据有多组,每组输入数据有三行,第一行两个整数,分别代表矩阵的行数m和列数n;第二行有m*n个整数,是第一个矩阵的数据;第三行也有m*n个整数,是第二个矩阵的数据。对于
12、每组输入数据,输出两个矩阵的和,具体格式见样例。3 31 1 1 2 2 2 3 3 31 1 1 1 1 1 1 1 1 Sample Output2 2 2 3 3 34 4 4 class Date int m,n,s100; Date(int a,int b,int c) m=a; n=b; int i; for(i=1;=m*n;i+) si=ci; Date() friend Date operator+(Date &a1,Date & int i,s100;=a1.m*a1.n; si=a1.si+a2.si; return Date(a1.m,a2.n,s);si if(i%n
13、=0) int m,n,i,a100,b100;ai;bi; Date a1(m,n,a),a2(m,n,b),d; d=a1+a2; d.print();Description设计一个字符串类MyString,通过运算符重载实现字符串的以下运算。class MyStringint length;/字符串的长度char *ptr;/指向字符串的指针MyString(const char *s=/构造函数MyString();/析构函数 MyString &operator=(const MyString &ms);/重载赋值运算符=bool operator(const MyString &m
14、s) const;/字符串的小于比较/字符串的大于于比较friend ostream &operator(istream &is, MyString &/重载输入运算符Input输入数据有多组,每组数据占两行,每行包含一串文本(长度不超过100)。Output对于每组数据,输出比较大的那个字符串,占一行。Sample Inputabc cbaCbaclass stu char *ch; char *sh; stu(char ch1,char sh1) ch=new charstrlen(ch1)+1; sh=new charstrlen(sh1)+1; strcpy(ch,ch1); strcpy(sh,sh1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1