前言
第一次写C++,用户界面感觉还行,内部实现不太高级,搞得能看。。。
想发出来留作纪念
功能介绍
这个代码包括一个复数类和四个运算函数,一个用户界面函数和一个功能函数
细节:当复数不足两个时无法进行运算,等等…忘了
结果展示
使用页面
建立复数
复数相加
其他功能诸如此类,不作展示
代码区
由于个人看着头疼所以将其拆开,在此声明这个代码无阉割
复数类
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; 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;
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; }
|
没啥好讲的,只是为了留作纪念
今天的分享到此结束!