第一步:
先创建一个项目:
点击确定就行。
第二步:
添加三个文件,分别存为:文件名.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;
}
运行结果如下: