C++的题目 知道帮忙看一下

1.定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员,非有元的普通函数。编写程序,求两个复数之和2.定义RMB类,数据成... 1. 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员,非有元的普通函数。编写程序,求两个复数之和2.定义RMB类,数据成员有yuan、jf,请为该类定义构造函数、并重载“+”、“-”、“<<”、“>>”3.以下程序实际要输出0~9之间每个数的平方,请用增加拷贝构造函数的方法避免存在的问题。#include <iostream.h> #include <stdlib.h> class Vector{public: Vector(int s=100); void Display(); void Set(); ~Vector();protected: int size; int* buffer;};Vector::Vector(int s){ buffer=new int[size=s]; for(int i=0; i<size; i++) buffer[i]=i*i;}void Vector::Display(){ for(int j=0; j<size; j++) cout <<buffer[j] <<endl;}void Vector::Set(){ for(int j=0; j<size; j++) buffer[j]=j+1;}Vector::~Vector(){ delete[]buffer; } void main(){ Vector a(10); Vector b(a); a.Set(); b.Display();} 展开
 我来答
匿名用户
2013-11-21
展开全部
第一题:

#include <iostream>
using namespace std;

class Complex {
public:
Complex( double r, double i )
: real( r ), image( i )
{}
double real;
double image;
};

Complex operator + ( Complex& lhs, Complex& rhs )
{
Complex tmp( lhs );
tmp.real += rhs.real;
tmp.image += rhs.image;
return tmp;
}

ostream& operator << ( ostream& os, Complex& c )
{
return os << c.real << '+' << c.image << 'i';
}

int main()
{
Complex a( 3, 4 ), b( 2, 3 );
cout << a + b << endl;
}

第二题:

#include <iostream>
using namespace std;

class RMB {
public:
RMB( int a, int b, int c );
RMB operator + ( const RMB& r ) const;
RMB operator - ( const RMB& r ) const;
friend ostream& operator << ( ostream& os, const RMB& r );
friend istream& operator >> ( istream& is, RMB& r );
private:
int y;
int j;
int f;
static void adjust( RMB& r );
};

void RMB::adjust( RMB& r )
{
r.j += r.f / 10; r.f %= 10;
r.y += r.j / 10; r.j %= 10;
}

RMB::RMB( int a, int b, int c )
: y( a ), j( b ), f( c )
{
adjust( *this );
}

RMB RMB::operator + ( const RMB& r ) const
{
RMB tmp( *this );
tmp.y += r.y;
tmp.j += r.j;
tmp.f += r.f;
adjust( tmp );
return tmp;
}

RMB RMB::operator - ( const RMB& r ) const
{
int t = y*100 + j*10 + f - ( r.y*100 + r.j*10 + r.f );
RMB tmp( 0, 0, t );
adjust( tmp );
return tmp;
}

ostream& operator << ( ostream& os, const RMB& r )
{
return os << r.y << "元" << r.j << "角" << r.f << "分";
}

istream& operator >> ( istream& is, RMB& r )
{
return is >> r.y >> r.j >> r.f;
}

int main()
{
RMB a( 100, 1, 1 );
RMB b( 50, 20, 14 );
RMB c( a + b );
RMB d( a - b );
cout << a << endl;
cout << b << endl;
cout << c << endl;
cout << d << endl;
}

第三题:

#include <iostream.h>
#include <stdlib.h>

class Vector{
public:
Vector(int s=100);
Vector( const Vector& v );
void Display();
void Set();
~Vector();
protected:
int size;
int* buffer;
};

Vector::Vector(int s)
{
buffer=new int[size=s];
for(int i=0; i<size; i++)
buffer[i]=i*i;
}
Vector::Vector( const Vector& v )
:size( v.size ), buffer( 0 )
{
if ( !v.buffer )
return;
buffer = new int[size];
for ( int i = 0; i < size; ++i )
buffer[i] = v.buffer[i];
}

void Vector::Display()
{
for(int j=0; j<size; j++)
cout <<buffer[j] <<endl;
}

void Vector::Set()
{
for(int j=0; j<size; j++)
buffer[j]=j+1;
}
Vector::~Vector(){ delete[]buffer; }
void main()
{
Vector a(10);
Vector b(a);
a.Set();
b.Display();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式