第九周任务1(Complex类中的<<和>>运算符的重载)
2012-04-16 17:20
411 查看
/*(文件注释头部开始)
*程序的版权和版本声明部分
*Copyright (c) 2011,烟台大学计算机学院学生
*All rights reserved.
*文件名称:Complex类中的<<和>>运算符的重载
*作 者:王智凯
*完成日期:2011年4月16号
*版本号:凯子
* 对任务及求解方法的描述部分
* 输入描术:
* 问题描述:在重载运算符+、-、*、/的基础上,增加重载运算符>> << ,实现输入和输出。
* 程序输出:
* 程序头部的注释结束
*/
上机感言:其实用重载流运算符挺方便的
*程序的版权和版本声明部分
*Copyright (c) 2011,烟台大学计算机学院学生
*All rights reserved.
*文件名称:Complex类中的<<和>>运算符的重载
*作 者:王智凯
*完成日期:2011年4月16号
*版本号:凯子
* 对任务及求解方法的描述部分
* 输入描术:
* 问题描述:在重载运算符+、-、*、/的基础上,增加重载运算符>> << ,实现输入和输出。
* 程序输出:
* 程序头部的注释结束
*/
#include <iostream> #include <iomanip> using namespace std; class Complex { public: Complex(){real = 0; imag = 0;} Complex(double r){real = r;imag = 0;}//类型转换函数 Complex(double r,double i){real = r; imag = i;} friend Complex operator+ (Complex c1,Complex c2); friend Complex operator- (Complex c1, Complex c2); friend Complex operator- (Complex &c); friend Complex operator* (Complex c1, Complex c2); friend Complex operator/ (Complex c1, Complex c2); friend ostream& operator << (ostream &,Complex &); friend istream& operator >> (istream &,Complex &); private: double real; double imag; }; Complex operator+ (Complex c1, Complex c2) { return Complex(c1.real + c2.real, c1.imag + c2.imag); } Complex operator- (Complex c1, Complex c2) { return Complex(c1.real - c2.real, c1.imag - c2.imag); } Complex operator - (Complex &c) { return Complex(-c.real, -c.imag); } Complex operator* (Complex c1, Complex c2) { return Complex(c1.real * c2.real - c1.imag * c2.imag, c1.imag * c2.real + c1.real * c2.imag); } Complex operator/ (Complex c1, Complex c2) { return Complex((c1.real * c2.real + c1.imag * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag), (c1.imag * c2.real - c1.real * c2.imag) / (c2.real * c2.real + c2.imag * c2.imag)); } ostream& operator << (ostream &ouput,Complex &c) { ouput << "(" << setprecision(3) << c.real; if(c.imag >= 0) ouput << "+"; ouput << setprecision(3) << c.imag << "i)" << endl; return ouput; } istream& operator >> (istream &input, Complex &c) { char c1; cout << "input real part and imaginary part of complex number:"; input >> c.real >> c.imag; return input; } int main() { double d = 3; Complex c1, c2, c3; cin >> c1; cout << "c1 = " << c1; cin >> c2; cout << "c2 = " << c2; c3 = c1 + c2; cout << "c1 + c2 = " << c3; c3 = c1 + d; cout << "c1 + " << d << "= " << c3; c3 = d + c1; cout << d << " + c1" << "= " << c3; c3 = c1 - c2; cout << "c1 - c2 = " << c3; c3 = c1 - d; cout << "c1 - " << d << "= " << c3; c3 = d - c1; cout << d << " - c1" << "= " << c3; c3 = - c1; cout << " -c1= " << c3; c3 = c1 * c2; cout << "c1 * c2 = " << c3; c3 = c1 * d; cout << "c1 * " << d << "= " << c3; c3 = d * c1; cout << d << " * c1" << "= " << c3; c3 = c1 / c2; cout << "c1 / c2 = " << c3; c3 = c1 / d; cout << "c1 / " << d << "= " << c3; c3 = d / c1; cout << d << " / c1" << "= " << c3; system("pause"); return 0; }
上机感言:其实用重载流运算符挺方便的
相关文章推荐
- 第九周 C++任务一。定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 第九周任务一(定义Complex类中的<<和>>运算符的重载,实现输入和输出)
- 第九周 项目1--定义一目运算符-和Complex中的<< >>的重载
- 第九周实验报告 任务2 定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
- 第九周任务一之定义Complex类中的<<和>>运算符的重载
- C++第九周【任务一】定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 第九周任务一:定义Complex类中的<<和>>运算符的重载
- 《第九周任务二》定义Time类中的<<和>>运算符的重载,实现时间输入输出,改造源程序中对运算结果的显示方式,使程序读起来更自然
- 第九周实验任务二--定义Complex类中的<<和>>运算符的重载,实现输入和输出,使程序读起来更自然
- 第九周实验报告(一)定义Time类中的<<、>>运算符的重载
- 第9周任务2(定义CTime类中的<<和>>运算符的重载)
- 《C++第九周实验报告1-1》--------接第8周任务1,定义Complex类中的<<和>>运算符的重载,实现输入和输出
- 第九周实验报告(三)定义分数类中的<<、>>运算符的重载。
- 第九周实验报告2(Time类中的<<和>>运算符的重载)
- 第九周任务三(定义类中的"<<"和">>"运算符的重载)
- 第九周任务二(接第八周任务二--实现Complex类中的"<<"和">>"运算符的重载)
- 第九周试验任务1--定义Time类中的<<和>>运算符的重载,实现输入和输出。
- 第九周实验报告(二)定义Complex类中的<<、>>运算符的重载
- 第九周任务一之Complex类流运算符的重载
- 第九周实验报告任务 1 定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。