/********************************************************************
--程序描述: 实现复数的加、减、乘、除法
--修改时间: 从前写的代码不够规范——2009.6.17
--修改人: 吴强
--输入要求: 输入1为加法运算,然后输入两复数;
输入2为减法运算,然后输入两复数;
输入3为剩法运算,然后输入两复数;
输入4为除法运算,然后输入两复数;
输入5为求实部,然后输入一复数;
输入6为求虚部,然后输入一复数;
********************************************************************/
#include
#include
//复数类
class Plural
{
public:
float numA;
float numA_i;
float numB;
float numB_i;
float ret;
float ret_i;
Plural()
{
numA = numA_i = numB = numB_i = ret = ret_i = 0;
};
public:
void addr(); //俩复数进行加法运算
void jian(); //俩复数进行减法运算
void sheng(); //俩复数进行乘法运算
void chu(); //俩复数进行除法运算
void virl() //求实部
{
printf("input plural(A,Ai): ");
scanf("%f,%f",&numA,&numA_i);
printf("Virtual is : %f/n",numA_i);
}
void real() //求虚部
{
printf("input plural(A,Ai): ");
scanf("%f,%f",&numA,&numA_i);
printf("Real is : %f/n",numA);
}
void OutResult();
};
//实现俩复数加法
void Plural::addr()
{
printf("input two plural(A,Ai;B,Bi): ");
scanf("%f,%f;%f,%f", &numA, &numA_i, &numB, &numB_i);
ret = numA+numB;
ret_i = numA_i+numB_i;
OutResult();
}
//实现俩复数减法
void Plural::jian()
{
printf("input two plural(A,Ai;B,Bi): ");
scanf("%f,%f;%f,%f", &numA, &numA_i, &numB, &numB_i);
ret = numA-numB;
ret_i = numA_i-numB_i;
OutResult();
}
//实现俩复数乘法
void Plural::sheng()
{
printf("input two plural(A,Ai;B,Bi): ");
scanf("%f,%f;%f,%f", &numA, &numA_i, &numB, &numB_i);
ret = numA*numB-numA_i*numB_i;
ret_i = numA*numB_i+numA_i*numB;
OutResult();
}
//实现俩复数除法
void Plural::chu()
{
//分数表示。分别代表实部分母、分子,虚部分母、分子
float real_M;
float real_Z;
float vir_M;
float vir_Z;
printf("input two plural(A,Ai;B,Bi): ");
scanf("%f,%f;%f,%f", &numA, &numA_i, &numB, &numB_i);
if (0 != numB && 0 != numB_i)
{
real_M = numA*numB_i-numA_i*numB;
real_Z = numB*numB_i;
vir_M = numA*numB+numA_i*numB_i;
vir_Z = numB*numB_i;
printf("result is: %f/%f+(%f/%f)i/n", real_M, real_Z, vir_M, vir_Z);
}
else if (0 == numB)
{
real_M = -numA_i;
real_Z = numB_i;
vir_M = numA;
vir_Z = numB_i;
printf("result is: %f/%f+(%f/%f)i/n", real_M, real_Z, vir_M, vir_Z);
}
else if (0 == numB_i)
{
real_M = numA;
real_Z = numB;
vir_M = numA_i;
vir_Z = numB;
printf("result is: %f/%f+(%f/%f)i/n", real_M, real_Z, vir_M, vir_Z);
}
}
//输出结果
void Plural::OutResult()
{
printf("Result is: ");
if (0 != ret)
{
printf("%f", ret);
}
if (0 != ret && ret_i > 0)
{
printf("+");
}
if (0 != ret_i)
{
printf("%fi/n", ret_i);
}
}
void main()
{
int oper;
Plural plu;
printf("*******************/n"
" 1.加法/n"
" 2.减法/n"
" 3.剩法/n"
" 4.除法/n"
" 5.求实部/n"
" 6.求虚部/n"
"******************/n");
printf("input operation(1~6)/n");
scanf("%d", &oper); //选择操作
switch (oper)
{
case 1:
{
plu.addr();
break;
}
case 2:
{
plu.jian();
break;
}
case 3:
{
pul.sheng();
break;
}
case 4:
{
plu.chu();
break;
}
case 5:
{
plu.virl();
break;
}
case 6:
{
plu.real();
break;
}
default:
{
printf("No operation!/n/n");
}
}
}
复数简单运算
最新推荐文章于 2025-04-09 12:45:59 发布
本文介绍了一个简单的复数运算程序,该程序使用C++实现复数的加、减、乘、除等基本运算,并提供求实部和虚部的功能。
2366

被折叠的 条评论
为什么被折叠?



