用c#实现复数的加减乘除_用C实现复数

用c#实现复数的加减乘除

在本文中,我将向您展示一种使用C编程语言实现复数的方法。 请注意,使用此处提供的代码没有任何保证。

复数是一个数字,例如z,表示z = realPart + i * imaginaryPart,其中i是虚数单位,有时用j表示。 另外,i * i = -1,这在找到两个复数的乘积/除法时很重要。

自然,我们可以将复数实现为结构:

/* Definition of a Complex number: */
typedef struct complex {
    double realPart;
    double imaginaryPart;
} Complex;
我们可以按如下方式将接口与实现分开。

首先,我们有标题

Complex.h ,它定义了Complex结构并包含操作一个或多个Complex数字的函数的原型:
/* Complex.h */ 
#ifndef COMPLEX_H
#define COMPLEX_H 
/* Definition of a Complex number: */
typedef struct complex {
    double realPart;
    double imaginaryPart;
} Complex; 
/* Prototypes for functions to manipulate Complex number(s) (these functions are implemented in file Complex.c): */
Complex addition( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex subtraction( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex multiplication( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
Complex division(  const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 );
void print( const Complex *pointerToComplexNumber ); 
#endif
文件Complex.c实现了以上功能:
/* Complex.c */ 
#include <stdio.h>
#include "Complex.h" 
/* Adds two Complex numbers, returning a new one, without modifying the ones received: */
Complex addition( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{
    Complex complexNumber3; 
    complexNumber3.realPart = pointerToComplexNumber1->realPart + pointerToComplexNumber2->realPart;
    complexNumber3.imaginaryPart = pointerToComplexNumber1->imaginaryPart + pointerToComplexNumber2->imaginaryPart; 
    return complexNumber3;
} 
/* Subtracts two Complex numbers, returning a new one, without modifying the ones received: */
Complex subtraction( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{
    Complex complexNumber3; 
    complexNumber3.realPart = pointerToComplexNumber1->realPart - pointerToComplexNumber2->realPart;
    complexNumber3.imaginaryPart = pointerToComplexNumber1->imaginaryPart - pointerToComplexNumber2->imaginaryPart; 
    return complexNumber3;
} 
/* Multiplies two Complex numbers, returning a new one, without modifying the ones received: */
Complex multiplication( const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{
    Complex complexNumber3; 
    complexNumber3.realPart = pointerToComplexNumber1->realPart * pointerToComplexNumber2->realPart -
        pointerToComplexNumber1->imaginaryPart * pointerToComplexNumber2->imaginaryPart; 
    complexNumber3.imaginaryPart = pointerToComplexNumber1->realPart * pointerToComplexNumber2->imaginaryPart +
        pointerToComplexNumber1->imaginaryPart * pointerToComplexNumber2->realPart; 
    return complexNumber3;
} 
/* Divides two Complex numbers, returning a new one, without modifying the ones received: */
Complex division(  const Complex *pointerToComplexNumber1, const Complex *pointerToComplexNumber2 )
{
    Complex complexNumber3;
    double commonDenominator = pointerToComplexNumber2->realPart * pointerToComplexNumber2->realPart +
        pointerToComplexNumber2->imaginaryPart * pointerToComplexNumber2->imaginaryPart; 
    complexNumber3.realPart = ( pointerToComplexNumber1->realPart * pointerToComplexNumber2->realPart +
        pointerToComplexNumber1->imaginaryPart * pointerToComplexNumber2->imaginaryPart ) / commonDenominator; 
    complexNumber3.imaginaryPart = ( pointerToComplexNumber1->imaginaryPart * pointerToComplexNumber2->realPart -
        pointerToComplexNumber1->realPart * pointerToComplexNumber2->imaginaryPart ) / commonDenominator; 
    return complexNumber3;
} 
/* Prints a Complex number in the form ( realPart ) + i( imaginaryPart ), without modifying it: */
void print( const Complex *pointerToComplexNumber )
{
    printf( "( %.4f ) + i( %.4f )", pointerToComplexNumber->realPart, pointerToComplexNumber->imaginaryPart );
}
最后,我们有一个名为ComplexTest.c的文件,该文件在主函数中测试文件Complex.cComplex.h ,这是我们C程序的起点:
/* ComplexTest.c */ 
#include <stdio.h>
#include "Complex.h" 
int main( void )
{
    Complex number1;
    Complex number2;
    Complex sumOfNumber1WithNumber2;
    Complex subtractionOfNumber2FromNumber1;
    Complex multiplicationOfNumber1WithNumber2;
    Complex divisionOfNumber1PerNumber2; 
    number1.realPart = 1.2343;
    number1.imaginaryPart = 4.7621; 
    number2.realPart = -3.213;
    number2.imaginaryPart = -9.8; 
    sumOfNumber1WithNumber2 = addition( &number1, &number2 );
    subtractionOfNumber2FromNumber1 = subtraction( &number1, &number2 );
    multiplicationOfNumber1WithNumber2 = multiplication( &number1, &number2 );
    divisionOfNumber1PerNumber2 = division( &number1, &number2 ); 
    printf( "Number1 = " );
    print( &number1 );
    printf( "\nNumber2 = " );
    print( &number2 );
    printf( "\nNumber1 + Number2 = " );
    print( &sumOfNumber1WithNumber2 );
    printf( "\nNumber1 - Number2 = " );
    print( &subtractionOfNumber2FromNumber1 );
    printf( "\nNumber1 * Number2 = " );
    print( &multiplicationOfNumber1WithNumber2 );
    printf( "\nNumber1 / Number2 = " );
    print( &divisionOfNumber1PerNumber2 );
    putchar( '\n' ); 
    return 0;
}
要使用Visual Studio 2013编译该程序,请从命令行打开VS2013的“开发人员命令提示符”,转到上述三个文件所在的目录,然后输入命令cl ComplexTest.c Complex.c。

然后,使用以下命令运行程序

综合测试

翻译自: https://bytes.com/topic/c/insights/956447-implementation-complex-numbers-c

用c#实现复数的加减乘除

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要创建一个窗体应用程序,实现计算器加减乘除功能,你可以按照以下步骤进行操作: 1. 创建一个新的 Windows 窗体应用程序项目。 2. 在窗体上放置所需的控件,例如按钮和文本框,以便用户输入和显示计算结果。 3. 为每个按钮创建一个事件处理程序,以便在用户点击按钮时执行相应的操作。 4. 在事件处理程序中,获取用户输入的数字和操作符,并执行相应的计算操作。 5. 将计算结果显示在文本框或标签中。 下面是一个示例代码,展示了如何实现加减乘除功能的简单计算器: ```csharp using System; using System.Windows.Forms; namespace CalculatorApp { public partial class CalculatorForm : Form { public CalculatorForm() { InitializeComponent(); } private void btnAdd_Click(object sender, EventArgs e) { Calculate('+'); } private void btnSubtract_Click(object sender, EventArgs e) { Calculate('-'); } private void btnMultiply_Click(object sender, EventArgs e) { Calculate('*'); } private void btnDivide_Click(object sender, EventArgs e) { Calculate('/'); } private void Calculate(char operation) { if (!double.TryParse(txtOperand1.Text, out double operand1) || !double.TryParse(txtOperand2.Text, out double operand2)) { MessageBox.Show("请输入有效的数字!"); return; } double result = 0; switch (operation) { case '+': result = operand1 + operand2; break; case '-': result = operand1 - operand2; break; case '*': result = operand1 * operand2; break; case '/': if (operand2 == 0) { MessageBox.Show("除数不能为零!"); return; } result = operand1 / operand2; break; } txtResult.Text = result.ToString(); } } } ``` 上述代码假设你已经创建了一个 Windows 窗体应用程序项目,并在窗体上放置了两个文本框(`txtOperand1` 和 `txtOperand2`)、四个按钮(加、减、乘、除)和一个文本框(`txtResult`)用于显示计算结果。 通过为每个按钮的点击事件绑定相应的事件处理程序,并在事件处理程序中调用 `Calculate()` 方法来执行计算操作。该方法首先检查用户输入的数字是否有效,然后根据操作符执行相应的计算,并将结果显示在 `txtResult` 文本框中。 在你的窗体应用程序中,你还需要实例化 `CalculatorForm` 类,并运行主消息循环,以显示窗体和响应用户操作。 请根据你的具体需求进行修改和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值