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 }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号