第九周C++实验报告(一)

来源:互联网 发布:张湘艳精准医学大数据 编辑:程序博客网 时间:2024/05/17 08:19
[cpp] view plaincopy
  1. #include<iostream.h>      
  2. class Complex      
  3. {  
  4. public:      
  5.     Complex(){real=0;imag=0;}      
  6.     Complex(double r,double i){real=r;imag=i;}      
  7.     Complex operator+(Complex &c2);      
  8.     Complex operator-(Complex &c2);      
  9.     Complex operator*(Complex &c2);      
  10.     Complex operator/(Complex &c2);      
  11.     friend ostream& operator << (ostream&,Complex&);    
  12.     friend istream& operator >> (istream&,Complex&);    
  13. private:      
  14.     double real;      
  15.     double imag;      
  16. };      
  17. //下面定义成员函数      
  18. istream& operator >> (istream& input,Complex& c)    
  19. {     
  20.     input>>c.real>>c.imag;    
  21.     return input;    
  22. }  
  23.     
  24. ostream &operator << (ostream &output,Complex &c)    
  25. {    
  26.     output<<"("<<c.real<<" "<<c.imag<<"i)"<<endl;    
  27.     return output;    
  28. }    
  29. //复数相加: (a+bi)+(c+di)=(a+c)+(b+d)i.      
  30. Complex Complex::operator+(Complex &c2)          
  31. {        
  32.     Complex c;         
  33.     c.real=real+c2.real;        
  34.     c.imag=imag+c2.imag;        
  35.     return c;        
  36. }        
  37. //复数相减:(a+bi)-(c+di)=(a-c)+(b-d)i.            
  38. Complex Complex::operator-(Complex &c2)            
  39. {            
  40.     Complex c;            
  41.     c.real=real-c2.real;            
  42.     c.imag=imag-c2.imag;            
  43.     return c;            
  44. }            
  45. //复数相乘:(a+bi)(c+di)=(ac-bd)+(bc+ad)i.        
  46. Complex Complex::operator*(Complex &c2)       
  47. {            
  48.     Complex  c;            
  49.     c.real=real*c2.real-imag*c2.imag;            
  50.     c.imag=imag*c2.real+real*c2.imag;            
  51.     return c;            
  52. }            
  53. //复数相除:(a+bi)/(c+di)=(ac+bd)/(c^2+d^2) +(bc-ad)/(c^2+d^2)i        
  54. Complex Complex::operator/(Complex &c2)       
  55. {            
  56.     Complex  c;            
  57.     double d=c2.real*c2.real+c2.imag*c2.imag;        
  58.     c.real=(real*c2.real+imag*c2.imag)/d;             
  59.     c.imag=(imag*c2.real-real*c2.imag)/d;            
  60.     return c;            
  61. }         
  62.     
  63. int main()      
  64. {      
  65.     Complex c1,c2,c3;     
  66.     cout<<"请输入复数c1的值:(以a b的形式输入)";    
  67.     cin>>c1;    
  68.     cout<<"请输入复数c2的值:(以a b的形式输入)";    
  69.     cin>>c2;    
  70.     cout<<"c1=";      
  71.     cout<<c1;      
  72.     cout<<"c2=";      
  73.     cout<<c2;      
  74.     c3=c1+c2;      
  75.     cout<<"c1+c2=";      
  76.     cout<<c3;      
  77.     c3=c1-c2;      
  78.     cout<<"c1-c2=";      
  79.     cout<<c3;      
  80.     c3=c1*c2;      
  81.     cout<<"c1*c2=";      
  82.     cout<<c3;      
  83.     c3=c1/c2;      
  84.     cout<<"c1/c2=";      
  85.     cout<<c3;       
  86.     return 0;      

原创粉丝点击