社区
C#
帖子详情
SOS请各位前辈帮帮帮小弟呀!!!(才学C++)
libobby
2006-04-22 07:08:05
怎么写一个关于复数的四则运算了 要用类 和模板 谢谢!!!!!
...全文
124
4
打赏
收藏
SOS请各位前辈帮帮帮小弟呀!!!(才学C++)
怎么写一个关于复数的四则运算了 要用类 和模板 谢谢!!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
libobby
2006-04-22
打赏
举报
回复
谢谢 啦:)
zCheng
2006-04-22
打赏
举报
回复
给一个 c# 版的,自己转一下(语法很类似的),用模板替换掉 double 就可以了;属性可以用get 和 set 方法代替。运算符重载也可以用方法代替。
public struct Complex
{
/// <summary>
/// 表示零复数。
/// </summary>
public static readonly Complex Zero = new Complex(0.0, 0.0);
private double real;
private double imaginary;
/// <summary>
/// 获取或设置复数的实部。
/// </summary>
/// <value>表示复数的实部。</value>
public double Real
{
get { return real; }
set { real = value; }
}
/// <summary>
/// 获取或设置复数的虚部。
/// </summary>
/// <value>表示复数的虚部。</value>
public double Imaginary
{
get { return imaginary; }
set { imaginary = value; }
}
/// <summary>
/// 获取复数的模。
/// </summary>
/// <value>表示复数的模。</value>
public double Length
{
get { return Math.Sqrt(real * real + imaginary * imaginary); }
}
/// <summary>
/// 获取复数的幅角。
/// </summary>
/// <value>表示复数的幅角。</value>
public double Arc
{
get { return Math.Atan2(imaginary, real); }
}
/// <summary>
/// 判断该复数是否为实数。
/// </summary>
/// <value>表示该复数是否为实数。</value>
public bool IsReal
{
get { return imaginary == 0; }
}
/// <summary>
/// 判断该复数是否为纯虚数。
/// </summary>
/// <value>表示该复数是否为纯虚数。</value>
public bool IsPureImaginary
{
get { return real == 0; }
}
/// <summary>
/// 获取该复数的共轭复数。
/// </summary>
public Complex ConjugateComplex
{
get { return new Complex(real, -imaginary); }
}
/// <summary>
/// 初始化一个复数的新实例。
/// </summary>
/// <param name="real">复数的实部。</param>
/// <param name="imaginary">复数的虚部。</param>
public Complex(double real, double imaginary)
{
this.real = real;
this.imaginary = imaginary;
}
/// <summary>
/// 初始化一个复数的新实例。
/// </summary>
/// <param name="real">复数的实部。</param>
/// <param name="imaginary">复数的虚部。</param>
public Complex(int real, int imaginary)
{
this.real = real;
this.imaginary = imaginary;
}
/// <summary>
/// 求该复数本身。
/// </summary>
/// <param name="c">要求算的复数。</param>
/// <returns>该复数本身。</returns>
public static Complex operator +(Complex c)
{
return c;
}
/// <summary>
/// 求该复数的相反数。
/// </summary>
/// <param name="c">要求算的复数。</param>
/// <returns>给定复数的相反数。</returns>
public static Complex operator -(Complex c)
{
return new Complex(-c.real, -c.imaginary);
}
/// <summary>
/// 复数的加法运算。
/// </summary>
/// <param name="c1">第一个复数。</param>
/// <param name="c2">第二个复数。</param>
/// <returns>两个复数的和。</returns>
public static Complex operator +(Complex c1, Complex c2)
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}
/// <summary>
/// 复数的减法运算。
/// </summary>
/// <param name="c1">第一个复数。</param>
/// <param name="c2">第二个复数。</param>
/// <returns>两个复数的差。</returns>
public static Complex operator -(Complex c1, Complex c2)
{
return new Complex(c1.real - c2.real, c1.imaginary - c2.imaginary);
}
/// <summary>
/// 复数的乘法运算。
/// </summary>
/// <param name="c1">第一个复数。</param>
/// <param name="c2">第二个复数。</param>
/// <returns>两个复数的积。</returns>
public static Complex operator *(Complex c1, Complex c2)
{
return new Complex(c1.real * c2.real - c1.imaginary * c2.imaginary, c1.real * c2.imaginary + c1.imaginary * c2.real);
}
/// <summary>
/// 复数的除法运算。
/// </summary>
/// <param name="c1">第一个复数。</param>
/// <param name="c2">第二个复数。</param>
/// <returns>两个复数的商。</returns>
public static Complex operator /(Complex c1, Complex c2)
{
double m = c2.real * c2.real + c2.imaginary * c2.imaginary;
return new Complex((c1.real * c2.real + c1.imaginary * c2.imaginary) / m, (c1.real * c2.imaginary - c1.imaginary * c2.real) / m);
}
}
boci
2006-04-22
打赏
举报
回复
这儿是c#专区,不是c++.呵呵.
libobby
2006-04-22
打赏
举报
回复
怎么没有人帮忙呀:(
cplex/gurobi 中的
sos
约束
SOS
(special ordered sets,特殊顺序集)是指一组有序集合里,顶多有一个非零值(
SOS
1 型),或顶多有两个非零值(
SOS
2 型)。这类约束单独列出来,可以加快线性规划的求解速度。1 线性规划模型中使用大 M 表示的...
SOS
调试扩展 (
SOS
.dll)
SOS
调试扩展 (
SOS
.dll) 提供公共语言运行时(CLR)内部环境的有关信息,
帮
助你在WinDbg.exe调试器和Visual Studio中调试托管程序。![command] [options]命令 命令 描述
文档服务器
sos
,Cliosoft
SOS
使用手册
SOS
使用手册
SOS
是Cliosoft针对集成电路设计现状,提出的于现有EDA工具无缝连接的一种解决方案,实现多时区直接设计数据协同设计,不同工程师之间数据协同工作,版本管理,版本控制,工作区管理,发布涉及版本数据等...
sos
求助 !!!项目四
* 问题描述:一些同学的学号、姓名、
C++
、 高数、英语成绩,定义一个学生成绩的结构体数组,其中的成员包括学号(char num[12])、姓名 (name)、三门课的成绩(grade)、总分(score))。 * 输出: (1)从...
matlab函数编译成库供
C++
调用(非常详细)
MATLAB具有着很高的计算性能,一些算法用MATLAB很容易实现,而用
C++
很难实现,如果想在
C++
中调用MATLAB编写的函数,可以将该函数编译成库文件,之后在
C++
中对其进行调用。 本文详细讲解如何将MATLAB函数编译成库,并...
C#
111,110
社区成员
642,556
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章