河北工业大学-C++实验报告实验四

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、编写一个程序,要求:

(1)生明一个类Complex(复数类),定义类Complex的两个对象c1和c2,对象c1通过构造函数直接指定复数的实部和虚部(类私有数据成员为double类型:real和imag)为2.5及3.7,对象c2通过构造函数直接指定复数的实部和虚部为4.2及6.5;

(2)定义友元运算符重载函数,它以c1、c2对象为参数,调用该函数时能返回两个复数对象相加操作;

(3)定义成员函数print,调用该函数时,以格式“real+imag i”输出当前对象的实部和虚部,例如:对象的实部和虚部分别是4.2和6.5,则调用print函数输出格式为:4.2+6.5 i;

(4)编写主程序,计算出复数对象c1和c2相加结果,并将其结果输出。

#include

using namespace std;

class Complex

{

public:

Complex(double r=0.0,double i=0.0);

friend Complex operator+ (Complex& a,Complex& b);

void printf();

private:

double real;

double imag;

};

Complex::Complex(double r,double i)

{

real=r;

imag=i;

}

Complex operator+ (Complex& a,Complex& b)

{

Complex temp;

temp.real=a.real+b.real;

temp.imag=a.imag+b.imag;

return temp;

}

void Complex::printf()

{

cout<

if(imag>0)

cout<<"+";

if(imag!=0)

cout<

}

void main()

{

Complex c1(2.5,3.7),c2(4.2,6.5),c3;

c3=c1+c2;

c3.printf();

}

2、编写一个程序,其中设计一个时间类Time,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现两个时间的相加。要求将小时范围限制在大于等于0,分钟范围限制在0~59分,秒钟范围限制在0~59秒。

提示:时间类Time的参考框架如下:

class Time

{

public:

Time(int h=0,int m=0,int s=0);//构造函数

Time operator+(Time &);//运算符重载函数,实现两个时间的相加

void disptime();//显示时间函数

private:

int hours,minutes,seconds;

};

#include

using namespace std;

class Time

{

public:

Time(int h=0,int m=0,int s=0);//构造函数

Time operator+(Time &);//运算符重载函数,实现两个时间的相加

void disptime();//显示时间函数

private:

int hours;

int minutes;

int seconds;

};

Time::Time(int h,int m,int s)

{

hours=h;

minutes=m;

seconds=s;

}

Time Time::operator+(Time& t)

{

int h,m,s;

s=(t.seconds+seconds)%60;

m=(minutes+t.minutes+(t.seconds+seconds)/60)%60;

h=hours+t.hours+(minutes+t.minutes+(t.seconds+seconds)/60)/60;

hours=h;

minutes=m;

seconds=s;

return *this;

}

void Time::disptime()

{

cout<

}

void Input(int &h,int &m,int &s)

{

cout<<"输入时间:";

cin>>h ;

cin>>m ;

cin>>s ;

while(m<0||m>59||s<0||s>59)

{

cout<<"******时间输入错误!请重新输!******\n";

cout<<"输入时间: ";

cin>>h ;

cin>>m ;

cin>>s ;

}

}

int main()

{

int h1,m1,s1,h2,m2,s2;

Input(h1,m1,s1);

Input(h2,m2,s2);

相关文档
最新文档