用C++实现复数的四则运算

Itachi

前言

第一次写C++,用户界面感觉还行,内部实现不太高级,搞得能看。。。
想发出来留作纪念

功能介绍

这个代码包括一个复数类和四个运算函数,一个用户界面函数和一个功能函数
细节:当复数不足两个时无法进行运算,等等…忘了

结果展示

使用页面
img
建立复数
img
复数相加
img
其他功能诸如此类,不作展示

代码区

由于个人看着头疼所以将其拆开,在此声明这个代码无阉割
复数类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<stdlib.h>
using namespace std;

class Plural {
public:
Plural(int r, int i);
void Display();
int Real; //实部
int Imag; //虚部
};

Plural::Plural(int r, int i) {
Real = r;
Imag = i;
}
void Plural::Display() {
cout << "z = " << Real << "+ " << Imag << "i" << endl;
}

全局变量
这就是我说的不高级的地方,我知道可以弄static呀什么的,我就是不会

1
2
3
//全局变量 
int n = 1; //在后面用于辅助p指针
Plural* p[100]; //在后面用于指向复数对象

四则运算
别看我这写的花里胡哨,主要还是为了用户界面好看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//复数相加
void sum(const Plural& z1, const Plural& z2) {
cout << "+---------------------------------------+" << endl;
cout << " z1 + z2 = (" << z1.Real << "+ " << z1.Imag << "i) + ("
<< z2.Real << "+ " << z2.Imag << "i) = " << z1.Real + z2.Real
<< " + " << z1.Imag + z2.Imag << "i" << endl;
cout << "+---------------------------------------+" << endl;
}
//复数相减
void sub(const Plural& z1, const Plural& z2) {
cout << "+---------------------------------------+" << endl;
cout << " z1 - z2 = (" << z1.Real << "+ " << z1.Imag << "i) - ("
<< z2.Real << "+ " << z2.Imag << "i) = " << z1.Real - z2.Real
<< " + " << z1.Imag - z2.Imag << "i" << endl;
cout << "+---------------------------------------+" << endl;
}
//复数相乘
void mul(const Plural& z1, const Plural& z2) {
cout << "+---------------------------------------+" << endl;
cout << " z1 * z2 = (" << z1.Real << "+ " << z1.Imag << "i) * ("
<< z2.Real << "+ " << z2.Imag << "i) = " << z1.Real * z2.Real - z1.Imag * z2.Imag
<< " + " << z2.Real * z1.Imag + z1.Real * z2.Imag << "i" << endl;
cout << "+---------------------------------------+" << endl;
}
//复数相除
void div(const Plural& z1, const Plural& z2) {
int rTop = z1.Real * z2.Real + z1.Imag * z2.Imag;
int iTop = z2.Real * z1.Imag - z1.Real * z2.Imag;
int Down = z2.Real * z2.Real + z2.Imag * z2.Imag;
cout << "+----------------------------------------------------+" << endl;
cout << " z1 / z2 = (" << z1.Real << "+ " << z1.Imag << "i) / ("
<< z2.Real << "+ " << z2.Imag << "i) = (" << rTop << "/" << Down
<< ") + (" << iTop << "/" << Down << ")i " << endl;
cout << "+----------------------------------------------------+" << endl;
}

打印菜单

1
2
3
4
5
6
7
8
9
10
11
12
//打印菜单
void makeMenu() {
cout << "+---【欢迎使用复变四则运算系统】---+" << endl;
cout << "+-----------------+----------------+" << endl;
cout << "| 0.退出系统 | 1.输入复数 |" << endl;
cout << "+-----------------+----------------+" << endl;
cout << "| 2.复数相加 | 3.复数相减 |" << endl;
cout << "+-----------------+----------------+" << endl;
cout << "| 4.复数相乘 | 5.复数相除 |" << endl;
cout << "+-----------------+----------------+" << endl;
cout << "请输入指令:";
}

按键交互
与菜单结合食用更香哦

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//按键交互
void keyDown() {
int key = 0;
cin >> key;
switch (key) {
case 0:
cout << "退出成功!" << endl;
exit(0);
break;
case 1:
int m_real, m_imag;
// Plural* p[100];
cout << "请依次输入复数的实部和虚部:";
cin >> m_real >> m_imag;
p[n] = new Plural(m_real, m_imag);//用指针实现复数的调用
n++;
break;
case 2:
if (n >= 3) {
int n1, n2;
cout << "请选择要相加的复数(如:1 2):";
cin >> n1 >> n2;
sum(*p[n1], *p[n2]);
} else cout << "您没有大于两个的复数!" << endl;
break;
case 3:
if (n >= 3) {
int n1, n2;
cout << "请选择要相减的复数(如:1 2):";
cin >> n1 >> n2;
sub(*p[n1], *p[n2]);
} else cout << "您没有大于两个的复数!" << endl;
break;
case 4:
if (n >= 3) {
int n1, n2;
cout << "请选择要相乘的复数(如:1 2):";
cin >> n1 >> n2;
mul(*p[n1], *p[n2]);
} else cout << "您没有大于两个的复数!" << endl;
break;
case 5:
if (n >= 3) {
int n1, n2;
cout << "请选择要相除的复数(如:1 2):";
cin >> n1 >> n2;
div(*p[n1], *p[n2]);
} else cout << "您没有大于两个的复数!" << endl;
break;
default:
cout << "请输入正确指令!" << endl;
break;
}
}

主函数

1
2
3
4
5
6
7
8
9
10
int main() {
while (1) {
makeMenu();
keyDown();
system("pause");
system("cls");
}

return 0;
}

没啥好讲的,只是为了留作纪念
今天的分享到此结束!

  • 标题: 用C++实现复数的四则运算
  • 作者: Itachi
  • 创建于 : 2021-11-02 01:29:18
  • 更新于 : 2021-11-02 03:12:10
  • 链接: https://blog.tarchi.top/c/用C实现复数的四则运算/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
用C++实现复数的四则运算