无知的自己

    技术2024-12-15  53

           今天看了一段用C++写的一段代码,说句心里话我并没有看懂。虽然我知道代码的作用,而且我也用C语言也将其作用实现了,可是心里却一点儿也没有初期学习C语言所带来的那种的满足感了。学习C语言已经有5个月了,可是总觉得自己真正会的东西不多。很多人都说:C语言的精髓在于指针。其实,我也写了不少的代码,可是又用了多少的指针呢?

           还有,对于面对对象的C++我也是特别想学的;下面也许是一段简单的代码,可是我无法理解,我的计划是在2011年9月1日之前理解他.是的,我的学校 目前还并不打算教我C++,可是我完全有自学的能力。

    作用:

    代码如下:

    #include <iostream> #include <iomanip> using namespace std; class Complex { private: double real; double imag; public: Complex() { real=0; imag=0; } void Init(); Complex operator+(Complex &c2); Complex operator-(Complex &c2); Complex operator*(Complex &c2); Complex operator/(Complex &c2); double Get_real() { return real; } double Get_imag() { return imag; } void display(); }; void Complex::Init() { cin>>real>>imag; } Complex Complex::operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } Complex Complex::operator-(Complex &c2) { Complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return c; } Complex Complex::operator*(Complex &c2) { Complex c; c.real=real*c2.real-imag*c2.imag; c.imag=real*c2.imag+imag*c2.real; return c; } Complex Complex::operator/(Complex &c2) { Complex c; double t=c2.real*c2.real+c2.imag*c2.imag; c.real=(real*c2.real+imag*c2.imag)/t; c.imag=(imag*c2.real-real*c2.imag)/t; return c; } void Complex::display() { double re=real,im=imag; if(re==0) { if(im==0) cout<<"0.0/n"; else { if(im==1) cout<<"i"<<endl; else if(im==-1) cout<<"-i"<<endl; else cout<<setiosflags(ios::fixed)<<setprecision(1)<<im<<"i"<<endl; } } else { if(im==0) cout<<setiosflags(ios::fixed)<<setprecision(1)<<re<<endl; else if(im>0) { if(im==1) { cout<<setiosflags(ios::fixed)<<setprecision(1)<<re; cout<<"+"<<setiosflags(ios::fixed)<<setprecision(1)<<"i"<<endl; } else { cout<<setiosflags(ios::fixed)<<setprecision(1)<<re; cout<<"+"<<setiosflags(ios::fixed)<<setprecision(1)<<im<<"i"<<endl; } } else { if(im==-1) { cout<<setiosflags(ios::fixed)<<setprecision(1)<<re; cout<<setiosflags(ios::fixed)<<setprecision(1)<<"-i"<<endl; } else { cout<<setiosflags(ios::fixed)<<setprecision(1)<<re; cout<<setiosflags(ios::fixed)<<setprecision(1)<<im<<"i"<<endl; } } } } int main() { Complex c1,c2,c3; int t; cin>>t; while(t--) { char ch; c1.Init(); cin>>ch; c2.Init(); if(ch=='+') c3=c1+c2; else if(ch=='-') c3=c1-c2; else if(ch=='*') c3=c1*c2; else c3=c1/c2; c3.display(); } return 0; }

      

    代码似乎很长,却包含了许多的C++知识点。

                                                                               dabbysunshine@qq.com

    最新回复(0)