用Dev-c++实现复数的四则运算

第一步:

先创建一个项目:

 点击确定就行。

第二步:

添加三个文件,分别存为:文件名.h,文件名.cpp,的形式

 第三步:分别写三个文件的代码

main.cpp:

#include <iostream>
#include "cxpNum.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
cpxNum c1, c2; //声明两个‘复数’类型的变量
double real, imag; 
cout <<"请输入第一个复数的实部和虚部: "; 
cin >> real >>imag; 
assign(c1, real, imag); //初始化‘复数’c1 
cout <<"您生成的第一个复数是: "; 
print(c1); 
cout << endl <<"请输入第二个复数的实部和虚部: "; 
cin >> real >>imag; 
assign(c2, real, imag); //初始化‘复数’c2 
cout <<"您生成的第二个复数是: "; 
print(c2); 
cout << endl; 
cout << "***********复数运算测试*************"<<endl; 
cout << "c1 + c2的结果是: "; print(cplus(c1, c2)); cout << endl; 
cout << "c1 - c2的结果是: "; print(cmilus(c1, c2)); cout << endl; 
cout << "c1 * c2的结果是: "; print(cmultiply(c1, c2)); cout << endl; 
cout << "c1 / c2的结果是: "; print(cdivide(c1, c2)); cout << endl; 
cout << "***********复数运算测试结束*************"<<endl; 
	return 0;
}

cxpNum.h:这个是抽象数据

#ifndef _CXPNUM_
#define _CXPNUM_
typedef struct { 
double _real; 
double _imag; 
} cpxNum; //定义结构体类型cpxNum表示"复数"
void assign(cpxNum& c, double r, double i); //初始化复数
void print(const cpxNum& c); //将复数输出
cpxNum cplus(const cpxNum& c1, const cpxNum& c2) ;//复数的加法
cpxNum cmilus(const cpxNum& c1, const cpxNum& c2); //复数的减法
cpxNum cmultiply(const cpxNum& c1, const cpxNum& c2);//复数的乘法 
cpxNum cdivide(const cpxNum& c1, const cpxNum& c2); //复数的除法
#endif

cxpNum.cpp:这部分是接口函数的实现

#include <iostream>
#include "cxpNum.h" 
using namespace std;
cpxNum cplus(const cpxNum& c1, const cpxNum& c2) 
{
cpxNum result; 
result._real = c1._real + c2._real; 
result._imag = c1._imag + c2._imag; 
return result; 
}
void assign(cpxNum& c, double r, double i){
	c._real=r;
	c._imag=i;
}
void print(const cpxNum& c){
	  if(c._imag>=0){
	  	cout<<c._real<<"+"<<c._imag<<"i";
	  }
	  else{
	  	cout<<c._real<<c._imag<<"i";
	  }
}
 cpxNum cmilus(const cpxNum& c1, const cpxNum& c2){
   cpxNum resul;
   resul._real = c1._real - c2._real;
   resul._imag = c1._imag - c2._imag;
   return resul;
 }
 cpxNum cmultiply(const cpxNum& c1, const cpxNum& c2){
 cpxNum result;
 result._real=c1._real*c2._real-c1._imag*c2._imag;
 result._imag = c1._real*c2._imag+c2._real*c1._imag;
 return result;
 }
 cpxNum cdivide(const cpxNum& c1, const cpxNum& c2){
 cpxNum result;
 result._real =(c1._real*c2._real+c1._imag*c2._imag)/(c2._real*c2._real+c2._imag*c2._imag);
 result._imag =(c2._real*c1._imag-c1._real*c2._imag)/(c2._real*c2._real+c2._imag*c2._imag);
  return result;
 }

运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值