技术学习C++C++问题 D: C++类与对象实验——复数类
Ramsayi题目描述
定义一个复数类 Complex,复数的实部 real 和虚部 image 定义为类的私有数据成员。成员函数均为公有,其中 input()函数给实部和虚部赋值,output()函数按照“实部,虚部 i”的格式输出复数,add()函数实现两个复数的相加。设计一个友元函数 sub()实现两个复数的相减。主函数中定义若干对象,通过调用成员函数和友元函数,完成两个复数的相加和相减。
输入
共有两行,每行两个整数,中间用空格隔开,代表两个复数。其中,前一个数是实部,后一个数是虚部。
输出
共有两行,每行按照“实部,虚部 i”的格式,逗号为英文逗号,不要输出引号。第一行是相加后的复数,第二行是相减后的复数,行尾输出换行。
样例输入
样例输出
提示
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
| #include<iostream> #include<cmath> using namespace std; class Complex { int real, image; int real1, image1; int real2, image2; public: void input() { cin >> real >> image; } void output() { cout << real1 << ',' << image1 << 'i' << endl; cout << real2 << ',' << image2 << 'i' << endl; } void add(Complex m, Complex n); void sub(Complex m, Complex n); }; void Complex::add(Complex m, Complex n) { real1 = m.real + n.real; image1 = m.image + n.image; } void Complex::sub(Complex m, Complex n) { real2 = m.real - n.real; image2 = m.image - n.image; } int main() { Complex m, n, p; m.input(); n.input(); p.add(m, n); p.sub(m, n); p.output(); return 0; }
|