2023.5.15编程一小时打卡

一、问题描述:

1、声明一个复数类Complex(类私有数据成员为double型的real和image)

2、定义构造函数,用于指定复数的实部与虚部。

3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。

4、定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。

5、编写加法友元函数,以复数对象c1,c2为参数,求两个复数对象相加之和。

6、主程序实现:

(1)读入两个实数,用于初始化对象c1。

(2)读入两个实数,用于初始化对象c2。

(3)计算c1与c2相加结果,并输出。

(4)计算c2的相反数与c1相加结果,并输出。

二、解题思路:

首先定义一个复数类,定于俩个成员数据实部和虚部,再定义所需的成员函数,取反成员函数中将实部和虚部变为相反数,再编写加法函数,俩实部相加,俩虚部相加,最后,在主函数中,定义一个复数类的对象并对其进行初始化,利用对象的成员函数对其进行取反,相加等操作,最后输出。

三、代码实现:

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 class Complex
 5 {
 6 private:
 7     double real,image;
 8 public:
 9     Complex(double a,double b):real(a),image(b){}
10     void fan();
11     void Print();
12     void add(Complex a,Complex b);
13 };
14 void Complex::fan()
15 {
16     real=-real;
17     image=-image;
18 }
19 void Complex::Print()
20 {
21     cout<<"("<<real<<", "<<image<<")";
22 }
23 void Complex::add(Complex a,Complex b)
24 {
25     double r,i;
26     r=a.real+b.real;
27     i=a.image+b.image;
28     cout<<"("<<r<<", "<<i<<")";
29 }
30 int main()
31 { 
32     double c11,c22,c31,c42;
33     cin>>c11>>c22>>c31>>c42;
34     Complex c1(c11,c22);
35     Complex c2(c31,c42);
36     c1.add(c1,c2);
37     cout<<endl;
38     c2.fan();
39     c1.add(c1,c2);
40     cout<<endl;
41     c2.fan();
42     c2.Print();
43 }

 

posted @ 2023-05-15 21:25  信2211-8李欣垚  阅读(29)  评论(0)    收藏  举报