• 自考新教材-p166


    源程序:

    #include<iostream>
    #include<string>
    #include<cstdlib>
    using namespace std;

    class myComplex
    {
    private:
    double real,imag;
    public:
    myComplex():real(0),imag(0){}
    myComplex(double r,double i):real(r),imag(i){}
    ostream & operator<<(ostream & os); //成员函数,插入
    friend istream & operator>>(istream & is,myComplex & c); //友元,提取
    };

    ostream & myComplex::operator<<(ostream & os) //类的成员函数
    {
    if(this->imag>=0)
    os<<this->real<<"+"<<this->imag<<"i"; //以a+bi的形式输出
    else
    os<<this->real<<"+"<<(-this->imag)<<"i";
    return os;
    }

    istream & operator>>(istream & is,myComplex & c)
    {
    string s;
    is>>s; //将a+bi作为字符串读入,a+bi中间不能有空格
    int pos = s.find("+",0); //查找虚部
    if(pos==-1)
    pos=s.find("-",1); //虚部为负数时
    string sReal=s.substr(0,pos); //分离出代表实部的字符串
    c.real=atof(sReal.c_str()); //atof()能将参数内容转换成浮点数
    sReal=s.substr(pos,s.length()-pos-1); //分离出代表虚部的字符串
    c.imag=atof(sReal.c_str());
    return is;
    }

    int main()
    {
    myComplex c,c1;
    int n;
    cout<<"请输入两个复数([-]a+-bi)和一个整数,以空格分隔"<<endl;
    cin>>c>>c1>>n;
    cout<<(c<<cout<<",")<<","<<n<<endl; //注意调用的形式
    return 0;
    }

     运行结果:

  • 相关阅读:
    AVAP 与 BuySell
    JDM 模式
    正态分布
    C++ 指针指向右值导致的野指针
    使用 pyreverse 生成 Python 代码库的 UML 图
    sed 的文本插入,添加,替换
    记一次完整的上云经历
    浅谈高可用设计
    开工第一天,这个api超时优化把我干趴下了!
    Fidddler抓不到某些程序某些http请求
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12259136.html
Copyright © 2020-2023  润新知