C++编程题 定义并实现一个复数类Complex,使得下面的代码能够工作 5

求个大佬教做... 求个大佬教做 展开
 我来答
山西优就业
2017-12-27 · TA获得超过787个赞
知道小有建树答主
回答量:731
采纳率:90%
帮助的人:215万
展开全部
#include<iostream>
#include<cmath>
using namespace std;
class Complex
{
public:
Complex();
Complex(float,float);
//Complex(Complex &Complex); //这个拷贝构造函数你下面没有定义 对象名不能与类名相同,改成小写
Complex(Complex &complex);
void put_real1(float); //获得复数的实部
void put_imaginary1(float); //获得复数的虚部 put应该是用于输出函数名的,严格来说应用Set_,你自己改吧
void out_real2(); //输出复数的实部 你的函数名都有同名的,编译器怎么区分?加个1和2
void out_imaginary2(); //输出复数的虚部
void out_size(); //输出复数的模
void out_view(); //输出复数的辐角
void out_it(); //输出这个复数
private:
float real,imaginary;
};Complex::Complex()
{
real=0;
imaginary=0;
}Complex::Complex(float a,float b)
{
//a=real;
//b=imaginary; 赋值错误,改为:
real=a;
imaginary=b;
}Complex::Complex(Complex &complex) //拷贝构造函数定义
{
real=complex.real;
imaginary=complex.imaginary;
}
/*void Complex::put_real()
{
cout<<"请输入复数的实部"<<endl;

cin>>real;}void Complex::put_imaginary(){
cout<<"请输入复数的虚部"<<endl;

cin>>imaginary;
}
void Complex::out_real()
{
cout<<"复数的实部为:"<<real<<endl;
} void Complex::out_imaginary()
{
cout<<"复数的虚部为:"<<imaginary<<endl;
}*/ //这4个函数跟下面的重复了,是多余的

void Complex::put_real1(float a)
{
//cout<<"请输入复数的实部"<<endl;
//cin>>a>>endl; // cin不需要换行符endl
real=a; //用户的输入可以放到主函数比较简单,这里只需要获得输入就行了
} void Complex::put_imaginary1(float b)
{
//cout<<"请输入复数的实部"<<endl;
//cin>>b>>endl; // cin不需要换行符endl
imaginary=b; //用户的输入可以放到主函数比较简单,这里只需要获得输入就行了
} //这两个成员函数跟你在类里声明的不一样,你声明的是无参的,定义就不能有参数,类里帮你改成有参数的了 void Complex::out_real2(){ //不需要参数,类里你声明的就是无参的
cout<<"复数的实部为:"<<real<<endl;
} void Complex::out_imaginary2() //不需要参数
{
cout<<"复数的虚部为:"<<imaginary<<endl;
}void Complex::out_size()
{ cout<<"该复数的模为:"<<sqrt(real*real+imaginary*imaginary)<<endl;
}void Complex::out_view()
{
cout<<"该复数的辐角为:"<<atan(real/imaginary)<<endl; //修改后的

}//void Complex::out_it(float a,float b) 这句也是一样,定义与声明不同
void Complex::out_it()
{
cout<<"复数="<<real<<"+"<<imaginary<<"i"<<endl;
} void main()
{
//float a=0,b=0; 不需要赋值
float a,b;
//Complex(); 没有对象
Complex Com1; //定义对象Com1的同时自动调用构造函数
cout<<"初始化的复数1为:";
Com1.out_it();
//Complex(float,float); 实参都没有,怎么传值给形参。实参不需要数据类型,只要一个具体的数
Complex Com2(1.0,2.0); //调用带参数的构造函数
cout<<"初始化的复数2为:";
Com2.out_it();
//Complex( &Complex); 你应该给一个具体的对象让它拷贝
Complex Com3(Com2); //拷贝对象Com2
cout<<"拷贝复数2的复数为:";
Com3.out_it();
//Complex Com;Complex
cout<<"请您输入一个复数的实部和虚部:"<<endl;
cin>>a>>b;
Complex Com4;
cout<<"您输入的复数信息如下:"<<endl;
Com4.put_real1(a); //取得复数的实部
Com4.put_imaginary1(b); //取得复数的虚部
Com4.out_real2(); //输出复数的实部
Com4.out_imaginary2(); //输出复数的虚部
Com4.out_size(); //输出复数的模
Com4.out_view(); //输出复数的辐角
Com4.out_it(); //输出这个复数
}
追问
看不懂,有没有简单一点的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式