Complex.h
上传用户:weigute
上传日期:2007-03-02
资源大小:1287k
文件大小:2k
源码类别:

数学计算

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////////////////
  2. // Complex.h
  3. //
  4. // 操作复数的类 CComplex 的声明接口
  5. //
  6. // 周长发编制, 2002/8
  7. //////////////////////////////////////////////////////////////////////
  8. #if !defined(AFX_COMPLEX_H__C231AD4B_6F7F_4A30_84E7_D6036F926132__INCLUDED_)
  9. #define AFX_COMPLEX_H__C231AD4B_6F7F_4A30_84E7_D6036F926132__INCLUDED_
  10. #if _MSC_VER > 1000
  11. #pragma once
  12. #endif // _MSC_VER > 1000
  13. #include <math.h>
  14. // 类声明
  15. class CComplex  
  16. {
  17. //
  18. // 公有接口函数
  19. //
  20. public:
  21. //
  22. // 构造与析构
  23. //
  24. CComplex(); // 基本构造函数
  25. CComplex(double dblX, double dblY); // 指定值构造函数
  26. CComplex(const CComplex& other); // 拷贝构造函数
  27. virtual ~CComplex() {}; // 析构函数
  28. //
  29. // 输入与显示
  30. //
  31. void SetReal(double dblX); // 指定复数的实部
  32. void SetImag(double dblY); // 指定复数的虚部
  33. double GetReal(); // 取复数的实部
  34. double GetImag(); // 取复数的虚部
  35. CString ToString() const; // 将复数转化为"a+bj"形式的字符串
  36. // 将"a,b"形式的字符串对转化为复数,以a为复数的实部,b为复数的虚部
  37. void FromString(CString s, const CString& sDelim = " ");
  38. //
  39. // 数学运算
  40. //
  41. BOOL operator==(const CComplex& cpxX) const;
  42. BOOL operator!=(const CComplex& cpxX) const;
  43. CComplex& operator=(const CComplex& cpxX);
  44. CComplex operator+(const CComplex& cpxX) const;
  45. CComplex operator-(const CComplex& cpxX) const;
  46. CComplex operator*(const CComplex& cpxX) const;
  47. CComplex operator/(const CComplex& cpxX) const;
  48. double Abs() const; // 复数的模
  49. //
  50. // 函数运算
  51. //
  52. void Root(int n, CComplex cpxR[]) const; // 复数的根
  53. CComplex Pow(double dblW) const; // 复数的实幂指数
  54. CComplex Pow(CComplex cpxW, int n = 0) const; // 复数的复幂指数
  55. CComplex Log() const; // 复数的对数
  56. CComplex Sin() const; // 复数的正弦
  57. CComplex Cos() const; // 复数的余弦
  58. CComplex Tan() const; // 复数的正切
  59. //
  60. // 保护性数据
  61. //
  62. protected:
  63. double m_dblX; // 复数的实部
  64. double m_dblY; // 复数的虚部
  65. };
  66. #endif // !defined(AFX_COMPLEX_H__C231AD4B_6F7F_4A30_84E7_D6036F926132__INCLUDED_)