数据结构中对于抽象数据类型的理解(以简单的复数为例)

#include <iostream>
using namespace std;

typedef struct        //复数类型 
{
    float Realpart;        //实部
    float Imagepart;    //虚部
}Complex;

void Create(Complex &C, float x, float y);
float GetReal(Complex C);
float GetImag(Complex C);
Complex Add(Complex C1, Complex C2);
Complex Sub(Complex C1, Complex C2);


void Create(Complex &C, float x, float y)
{
    //构造一个复数
    C.Realpart = x;
    C.Imagepart = y; 
}

float GetReal(Complex C)
{
    //取复数C=x+yi的实部
    return C.Realpart; 
}

float GetImag(Complex C)
{
    //取复数C=x+yi的虚部
    return C.Imagepart; 
}

Complex Add(Complex C1, Complex C2)
{    //求两个复数C1和C2的和sum
    Complex sum;
    sum.Realpart = C1.Realpart + C2.Realpart;
    sum.Imagepart = C1.Imagepart + C2.Imagepart;
    return sum; 
}

Complex Sub(Complex C1, Complex C2)
{
    //求两个复数C1和C2的差difference
    Complex difference;
    difference.Realpart = C1.Realpart - C2.Realpart;
    difference.Imagepart = C1.Imagepart - C2.Imagepart;
    return difference; 
}

// 重载 << 运算符以输出 Complex对象(学习借鉴)
/*<<运算符的重载版本会被调用,它会正确地格式化并输出复数的实部和虚部。*/
ostream& operator<<(ostream& os, const Complex& C)
{
    os << "(" << C.Realpart << " + " << C.Imagepart << "i)";  
    return os;  
}  

int main()
{
    Complex i1, i2, e1;
    Create(i1, 3, 5);    //3+5i
    Create(i2, -3, 6);    //-3+6i

    cout << "复数i1:" << i1 << " 它的实部:" << GetReal(i1) << endl;
    cout <<    "复数i2:" << i2 << " 它的虚部:" << GetImag(i2) << endl;
    cout << "复数i1和i2的和:" << Add(i1, i2) << endl;
    cout << "复数i1和i2的差:" << Sub(i1, i2) << endl;
    
    return 0; 
    
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值