运用C语言编写复数的四则运算

运用C语言编写复数的四则运算
运用C语言编写复数的四则运算

运用 C 语言编写复数的四则运算

一、需求分析

1. 设计一个可进行复数运算的演示程序

2. 实现下列六种基本运算:

(1)由于输入的实部和虚部生成一个复数;(2)两个复数求和;(3)两个复数求差;(4)两个复数求积;(5)从已知复数中分离出虚部。运算结果一相应的复数或实数的表示形式显示。

3. 程序执行的命令包括:

a. 输入数据生成一个复数

b. 求复数和

c. 求复数差

d. 求复数积

4. (1)建立一个复数,然后根据提示用户输入两个复数,使得能同时进行两个复数的加.减.乘运算。

(2)输入形式和输入值得范围:分别输入两个复数,其格式为:a+bi 用enter 结束输入。

(3)输出形式:按程序规定输出其运算值。如:运算后只有实数时只输出实数虚部部分不表示,反之一样

5. 测试程序

(1)0,0;0,0;应输出“ 0”

(2)3.1,0; 4.22, 8.9; 应输出“ 7.32+i8.9”

(3)-1.33, 2.34; 0.1, -6.5; 应输出“ -1.23-i4.16”

(4)0, 9.7; -2.1, -9.7;应输出“ -2.1”

(5)7.7,-8;-7.7,0;应输出“ -i8”

二.概要分析

1.为实现上述程序的功能,需要定义一个表示复数的抽象数据类型。

2.本程序包含的函数:

(1)主函数main();

(2)构造函数typedef struct ();

(3)调用函数Complex createComplex(float a,float b)

Complex add(Complex z1,Complex z2)

Complex jian(Complex z1,Complex z2)

Complex cheng(Complex z1,Complex z2)

void printComplex(Complex z);

各函数关系如下:

5)主函数伪代码

main( )

{

说明一个构造函数Complex;定义两个实数和虚数分别为

z1,z2;

提示输入实数和虚数z1,z2;调用子函数;提示输入+

- *;

根据输入的符号判断输入的复数做何运算{

输入+时,调用加法子函数,打印输出;

输入-时,调用加法子函数,打印输出;

输入*时,调用加法子函数,打印输出;

}

三.详细设计

1. 主函数及其他函数

#include

#include

typedef struct

{

float re;

float im;

} Complex;

Complex createComplex(float a,float b) // 编写一个函数生成复数// { Complex z;

z.re=a;

z.im=b;

return z;

void

Pl1nfcomp-ex(comp-ex

z)

//

B 圧*選

半?^*叢^ 宀

if (z ?

reH

H

O

QO

QO

Z

?

i

m H

H

0)

prinffco

云》

e-se

i

f

(

z .

r e H o

QO

QO

z

.

i

r

T

F

H

O )

p

if(z.imvo)

p 「

inffu%.2f\rrN

my

e-se

if(z.imco)

p 「

inff(-=%.2f\n=fabs(z

m))_

e-se 宀

if(z.imvo)

printf("%.2f+i%.2f\n",z.re,z.im);

else

printf("%.2f-i%.2f\n",z.re,fabs(z.im));

}

}

Complex add(Complex z1,Complex z2)

{

Complex z;

z.re=z1.re+z2.re;

z.im=z1.im+z2.im;

return z;

}

Complex jian(Complex z1,Complex z2)

{

Complex z;

z.re=z1.re-z2.re;

z.im=z1.im-z2.im;

return z;

}

Complex cheng(Complex z1,Complex z2) {

Complex z;

z.re=z1.re*z2.re-z1.im*z2.im;

z.im=z1.re*z2.im+z1.im*z2.re;

return z;

}

main()

{

float a,b,c,d;

printf(" 请输入元素");

Complex z1,z2,c1,c2,c3;

相关主题
相关文档
最新文档