📄 complexfunc.cpp
字号:
/***********************************************************
* 复数类演示程序(成员,友元)
* 达内,陈宗权,2006/8
***********************************************************/
#include <iostream>
using namespace std;
class Complex{//定义复数类
int real;//实部
int image;//虚部
public:
Complex( int r=0,int i=0 )//构造
:real(r),image(i)//初始化列表
{}
Complex add( const Complex& cc )const//两个复数相加
{
int r=real+cc.real;
int i=image+cc.image;
return Complex(r,i);
}
//两个复数相加,友元
friend Complex add( const Complex&, const Complex& );
Complex sub( const Complex& cc )const//两个复数相减
{
int r=real-cc.real;
int i=image-cc.image;
return Complex(r,i);
}
//两个复数相减,友元
friend Complex sub( const Complex&, const Complex& );
//输出复数信息
void output()
{
cout << '(';
//实部非零输出实部
if( real!=0 )
cout << real;
if( image!=0 ){//虚部非零则输出虚部和i
if( image>0 && real!=0 )//如果实部为正则输出加号
cout << '+';
cout << image << 'i';
}
if( real==0&&image==0 )//整个复数为零输出零
cout << 0;
cout << ')';
}
//输入一个复数
void input()
{
char ch;//用来保存虚部输入的字符i
char s;//用来保存虚部的符号(+/-)
cin >> real >> s >> image >> ch;//输入
if( s=='-' ) image = -image;
}
};
Complex add( const Complex& c1, const Complex& c2 )//两个复数相加
{
int r=c1.real+c2.real;
int i=c1.image+c2.image;
return Complex(r,i);
}
Complex sub( const Complex& c1, const Complex& c2 )//两个复数相减
{
int r=c1.real-c2.real;
int i=c1.image-c2.image;
return Complex(r,i);
}
int main()
{
Complex c1, c2(3), c3( 4, 5 ), c4(c3);
c2.output();cout<<"+";c3.output();cout<<"=";
c2.add( c3 ).output();cout<<endl;
c2.output();cout<<"-";c3.output();cout<<"=";
c2.sub( c3 ).output();cout<<endl;
cout<<"input a complex:"<<endl;
c2.input();
cout<<"input another complex:"<<endl;
c3.input();
c2.output();cout<<"+";c3.output();cout<<"=";
add( c2, c3 ).output();cout<<endl;
c2.output();cout<<"-";c3.output();cout<<"=";
sub( c2, c3 ).output();cout<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -