利用C++语言设计一个复数计算器,能计算复数,实数的加减乘除,以及计算单个复数向量角,两个复数夹角。 20

原题在此:利用C++语言设计和实现一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减... 原题在此:利用C++语言设计和实现一个复数计算器,要求具备如下主要功能:
(1)建立实数类、复数类
(2)实现实数、复数信息的初始化
(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作
(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算
(5)实现实数、复数信息的输出
展开
 我来答
令狐天天
2013-06-30 · 超过33用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:66.1万
展开全部

基本结构,输入输出,实数虚数的表示方法,部分运算已经给你写了。剩下的就是数学的东西了,参考我已经写好的结构自己完善好了。

实数就是 number(real),虚数就是 number(real,image)。

#include <iostream>
#include <math.h>
using namespace std;

class number{
    friend number operator +(const number& lhs,const number & rhs);
    friend number operator -(const number& lhs,const number & rhs);
    friend number operator *(const number& lhs,const number & rhs);
    friend ostream & operator<<(ostream& os, const number & num);
private:
    double real;
    double image;
    string sign() const{
        return (image<0 ? "" : "+");
    }
public:
    number(double real=0.0,double image=0.0):real(real),image(image){};
    //平方
    number square(){
        return number(real*real-image*image,2*real*image);
    }
    //取模
    double mod(){
        return sqrt(real*real+image*image);
    }
    
};

number operator +(const number& lhs,const number & rhs){
    return number(lhs.real+rhs.real,lhs.image+rhs.image);
}

number operator -(const number& lhs,const number & rhs){
    return number(lhs.real-rhs.real,lhs.image-rhs.image);
}

number operator *(const number& lhs,const number & rhs){
    return number(lhs.real*rhs.real-lhs.image*rhs.image,lhs.image*rhs.real+lhs.real*rhs.image);
}

//输出
ostream &
operator<<(ostream& os, const number & num){
    os<<num.real<<num.sign()<<num.image<<"i";
    return os;
}

int main(){
    //举例,计算 3+4i * 5-6i 的结果,并输出
    number result=number(3,4)*number(5,-7);
    cout<<result<<endl;
    //举例,计算 5 - 9-9i 的结果,并输出
    result=number(5)-number(9,-9);
    cout<<result<<endl;
    //举例,计算3+4i的模
    cout<<number(3,4).mod()<<endl;
    return 0;
}


上述程序运行结果如下:

43-1i

-4+9i

5

追问

运行出来有错误。

能告诉我具体怎么改吗?感谢大神了!!

追答
编译器太挫了。
建议使用新版本的Visual studio
http://zhidao.baidu.com/question/563157558?&oldq=1

另外,如果使用visual studio 的话,别忘了在第一行加上 #include "stdafx.h"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式