/** Program Copyright and version description Section * copyright (c) 2013, Yantai University Computer college student * All rightsreserved. * file name: object. CPP * Author: Yang shaoning * Completion Date: July 15, April 26, 2013 * version: V1.0 * input Description: none * Problem description: * program output: omitted. */# Include <iostream> using namespace STD; Class Complex {public: complex () {real = 0; imag = 0;} complex (Double R, double I) {real = r; imag = I;} complex operator + (complex & C2); complex operator * (complex & C2); complex operator/(complex & C2 ); friend complex operator-(complex & C1, complex & C2); friend istream & operator> (istream &, complex &); friend ostream & operator <(ostream &, complex &); void display (); Private: Double real; double imag;}; istream & operator> (istream & input, complex & C) {input> C. real> C. imag; return input;} ostream & operator <(ostream & output, complex & C) {output <"(" <C. real <"," <C. imag <"I)" ;}complex complex: Operator + (complex & C2) {Complex C; C. real = real + c2.real; C. imag = imag + c2.imag; return C;} complex: Operator * (complex & C2) {Complex C; C. real = real * c2.real-imag * c2.imag; C. imag = imag * c2.real + real * c2.imag; return C;} complex: Operator/(complex & C2) {Complex C; double D; D = c2.real * c2.real + c2.imag * c2.imag; C. real = (Real * c2.real + imag * c2.imag)/d; C. imag = (-Real * c2.imag + imag * c2.real)/d; return C;} complex operator-(complex & C1, complex & C2) {Complex C; C. real = c1.real-c2.real; C. imag = c1.imag-c2.imag; return C;} void complex: Display () {cout <"(" <real <", "<imag <" I "<") "<Endl;} int main () {complex C1, C2, C3; CIN> C1> C2; cout <"C1 ="; cout <C1 <Endl; cout <"C2 ="; cout <C2 <Endl; C3 = C1 + C2; cout <"C1 + C2 ="; cout <C3 <Endl; C3 = c1-c2; cout <"c1-c2 ="; cout <C3 <Endl; c3 = C1 * C2; cout <"C1 * C2 ="; cout <C3 <Endl; C3 = C1/C2; cout <"C1/C2 = "; cout <C3 <Endl; return 0 ;}
Experience: Heavy stream extraction operator> makes the problem simple.