2.设计复数类,实现复数的+、-、*、/运算。

#include<iostream>
#include<iomanip>
using namespace std;
class fushu
{
public:
    fushu(double x = 1, double y = 1);
    fushu(fushu &p);
    ~fushu();
    double geta(void);
    double getb(void);
    fushu& add(fushu& c);
    fushu& sub(fushu& c);
    fushu& mul(fushu& c);
    fushu& div(fushu& c);
private:
    double a;
    double b;
};
fushu::fushu(double x, double y)
{
        b = y;
        a = x;
}
fushu::fushu(fushu& p)
{
    a = p.a;
    b = p.a;
}
fushu::~fushu()
{
}
double fushu::geta(void)
{
    return(a);
}
double fushu::getb(void)
{
    return(b);
}
fushu& fushu::add(fushu& c)
{
    fushu temp;
    temp.a = a + c.a;
    temp.b = b + c.b;
    return(temp);
}
fushu& fushu::sub(fushu& c)
{
    fushu temp;
    temp.a = a - c.a;
    temp.b = b - c.b;
    return(temp);
}
fushu& fushu::mul(fushu& c)
{
    fushu temp;
    temp.a = a * c.a - b * c.b;
    temp.b = a*c.b+b*c.a;
    return(temp);
}
fushu& fushu::div(fushu& c)
{
    fushu temp;
    temp.a = (a * c.a + b * c.b) / (c.a * c.a + c.b * c.b);
    temp.b = (b * c.a - a * c.b) / (c.a * c.a + c.b * c.b);
    return(temp);
}
int main()
{
    void set(fushu &c);
    int choice;
    while (1)
    {
        cout << "*欢迎使用复数运算操作小程序*" << endl;
        cout << "*        1.加法            *" << endl;
        cout << "*        2.减法            *" << endl;
        cout << "*        3.乘法            *" << endl;
        cout << "*        4.除法            *" << endl;
        cout << "*      请选择你的操作:    *" << endl;
        cin>>choice;
        double p = 0, q = 0, r = 0, s = 0;
        cout << "输入第一个复数的实部和虚部" << endl;
        cin >> p >> q;
        cout << "输入第二个复数的实部和虚部" << endl;
        cin >> r >> s;
        fushu x(p, q),y(r, s), z;
        cout << p << " + " << q << "i  " << r << " + " << s << "i" << endl;
        switch (choice)
        {
        case 1:z = x.add(y);
            cout << "加法:" << endl;
            set(z);
            system("pause");
            break;
        case 2:z = x.sub(y);
            cout << "减法:" << endl;
            set(z);
            system("pause");
            break;
        case 3:    z = x.mul(y);
            cout << "乘法:" << endl;
            set(z);
            system("pause");
            break;
        case 4:    z = x.div(y);
            cout << "除法:" << endl;
            set(z);
            system("pause");
            break;
            return(0);
        }
        system("cls");
    }
}
void set(fushu& c)
{
    if (c.getb() == 0)
        cout << "结果是" << c.geta() << endl;
    else if (c.geta() == 0)
        cout << "结果是" << c.getb() << "i" << endl;
    else if(c.getb()>0)
        cout << "结果是" << c.geta() << "+" << c.getb() << "i" << endl;
    else 
        cout << "结果是" << c.geta() << c.getb() << "i" << endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值