码迷,mamicode.com
首页 > 其他好文 > 详细

自考新教材-p166

时间:2020-02-04 13:53:06      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:注意   int   real   字符   image   bsp   public   clu   类的成员   

源程序:

#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;
}

 运行结果:

技术图片

 

自考新教材-p166

标签:注意   int   real   字符   image   bsp   public   clu   类的成员   

原文地址:https://www.cnblogs.com/duanqibo/p/12259136.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!