第四章

1.

#include <iostream> 

using namespace std; 

class Complex 

{public:  

     Complex(){real=0;imag=0;}  

     Complex(double r,double i){real=r;imag=i;} 

     double get_real(); 

     double get_imag(); 

     void display(); 

 private:  

 double real; 

     double imag; 

}; 

double Complex::get_real() 

{

return real;

double Complex::get_imag() 

{

return imag;

void Complex::display()  

{

cout<<"("<<real<<","<<imag<<"i)"<<endl;

Complex operator + (Complex &c1,Complex &c2) 

{  

return Complex(c1.get_real()+c2.get_real(),c1.get_imag()+c2.get_imag()); 

int main()  

{

Complex c1(3,4),c2(5,-10),c3; 

c3=c1+c2; 

cout<<"c3="; 

    c3.display(); 

    return 0; 

}



2.

#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);

 Complex operator/(Complex &c2);

     void display(); 

 private:  

 double real; 

     double imag; 

}; 

void Complex::display()  

{

cout<<"("<<real<<","<<imag<<"i)"<<endl;

Complex Complex::operator+(Complex &c2) 

{  

return Complex(real+c2.real,imag+c2.imag); 

Complex Complex::operator-(Complex &c2) 

{  

return Complex(real-c2.real,imag-c2.imag); 

Complex Complex::operator*(Complex &c2) 

{  

return Complex(real*c2.real-imag*c2.imag,imag*c2.real+real*c2.imag);

Complex Complex::operator/(Complex &c2) 

{  

Complex c;  

c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); 

c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag); 

return c; 

int main()  

{

Complex c1(3,4),c2(5,-10),c3,c4,c5,c6; 

c3=c1+c2; 

cout<<"c3="; 

    c3.display(); 

c4=c1-c2; 

cout<<"c4="; 

    c4.display();

c5=c1*c2; 

cout<<"c5="; 

    c5.display();

c6=c1/c2; 

cout<<"c6="; 

    c6.display();

    return 0; 

}



3.

#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+(int &i);

 friend Complex operator+(int &,Complex &);

     void display(); 

 private:  

 double real; 

     double imag; 

}; 

void Complex::display()  

{

cout<<"("<<real<<","<<imag<<"i)"<<endl;

Complex Complex::operator+(Complex &c) 

{  

return Complex(real+c.real,imag+c.imag); 

}

Complex Complex::operator+(int &i)

{  

return Complex(real+i,imag); 

}

Complex operator+(int &i,Complex &c)

{  

return Complex(i+c.real,c.imag); 

}

int main()  

{

Complex c1(3,4),c2(5,-10),c3,c4,c5;

int i=4;

c3=c1+c2; 

cout<<"c3="; 

    c3.display();

c4=i+c1; 

cout<<"c4="; 

    c4.display();

c5=c1+i; 

cout<<"c5="; 

    c5.display();

    return 0; 

}



4.

#include <iostream> 

using namespace std; 

class Juzhen 

{public:  

     Juzhen();

     friend Juzhen operator+(Juzhen &,Juzhen &);

 void input(); 

 void display(); 

 private:  

 int juzhen[2][3]; 

}; 

Juzhen::Juzhen()

{

for(int i=0;i<2;i++)

for(int j=0;j<3;j++)

juzhen[i][j]=0;

}

Juzhen operator+(Juzhen &a,Juzhen &b) 

{

    Juzhen c;  

    for(int i=0;i<2;i++) 

    for(int j=0;j<3;j++)  

    {   

    c.juzhen[i][j]=a.juzhen[i][j]+b.juzhen[i][j];

    return c; 

void Juzhen::input() 

{

    for(int i=0;i<2;i++) 

for(int j=0;j<3;j++) 

cin>>juzhen[i][j]; 

}

void Juzhen::display()  

{

for(int i=0;i<2;i++)

{

    for(int j=0;j<3;j++)

    {

         cout<<juzhen[i][j]<<" ";

    }

    cout<<endl;

}

int main()  

{

Juzhen a,b,c;

a.input();

    a.display();

    cout<<"*************"<<endl;

b.input();

    b.display();

    cout<<"*************"<<endl;

c=a+b;  

    c.display();

    return 0; 

}



5.

#include <iostream> 

using namespace std; 

class Juzhen 

{public:  

     Juzhen();

     friend Juzhen operator+(Juzhen &,Juzhen &);

 friend ostream& operator<<(ostream&,Juzhen&);

 friend istream& operator>>(istream&,Juzhen&); 

 private:  

 int juzhen[2][3]; 

}; 

Juzhen::Juzhen()

{

for(int i=0;i<2;i++)

for(int j=0;j<3;j++)

juzhen[i][j]=0;

}

Juzhen operator+(Juzhen &a,Juzhen &b) 

{

    Juzhen c;  

    for(int i=0;i<2;i++) 

    for(int j=0;j<3;j++)  

    {   

    c.juzhen[i][j]=a.juzhen[i][j]+b.juzhen[i][j];

    return c; 

istream& operator>>(istream &input,Juzhen &J) 

{

    for(int i=0;i<2;i++) 

    {

     for(int j=0;j<3;j++) 

        {

     input>>J.juzhen[i][j];

        }

    } 

    return input; 

ostream& operator<<(ostream &output,Juzhen &J) 

{

    for(int i=0;i<2;i++) 

    {

     for(int j=0;j<3;j++) 

        {

         output<<J.juzhen[i][j]<<" ";

        }

        output<<endl;

    } 

    return output; 

int main()  

{

Juzhen a,b,c;

cin>>a;

    cout<<a<<endl;

    cout<<"*************"<<endl;

cin>>b;

    cout<<b<<endl;

    cout<<"*************"<<endl;

c=a+b;  

    cout<<c<<endl;

    return 0; 

}



6.

#include <iostream> 

using namespace std; 

class Complex 

{public:  

      Complex(){real=0;imag=0;}

      Complex(double r,double i){real=r;imag=i;}

      Complex(double r){real=r;imag=4;}

      operator double(){return real;}

      void display();

 private:  

  double real;

  double imag;

}; 

void Complex::display()

{

    cout<<"("<<real<<", "<<imag<<")"<<endl;

int main()  

{

Complex c1(3,4);

double dl;

dl=2.5+c1;

cout<<dl<<endl;

Complex c2;

c2=2.5+c1;

c2.display();

    return 0; 

}



7.

#include <iostream> 

using namespace std; 

class Student 

{public:  

    Student(int,char[],char); 

    int get_num(){return num;}  

    char * get_name(){return name;} 

    char get_sex(){return sex;} 

    void display()  

{

cout<<num<<"  "<<name<<"  "<<sex<<endl;

 private: 

    int num;  

    char name[20]; 

    char sex; 

}; 

Student::Student(int n,char nam[],char s) 

{

num=n; 

strcpy(name,nam); 

sex=s; 

class Teacher 

{public: 

    Teacher(){}  

    Teacher(Student&); 

    Teacher(int n,char nam[],char sex); 

    void display(); 

 private: 

    int num;  

    char name[20]; 

    char sex; 

}; 

Teacher::Teacher(int n,char nam[],char s) 

{

num=n;  

strcpy(name,nam); 

sex=s;  

}

Teacher::Teacher(Student& stud) 

{

num=stud.get_num();  

strcpy(name,stud.get_name()); 

sex=stud.get_sex(); 

void Teacher::display()  

{

cout<<num<<"  "<<name<<"  "<<sex<<endl;

int main()  

{

Teacher teacher1(101,"Li",'f'),teacher2; 

Student student1(201,"Wang",'m'); 

cout<<"student1:"<<endl; 

student1.display();

cout<<endl;

teacher2=Teacher(student1); 

cout<<"teacher1:"<<endl; 

teacher1.display();

cout<<endl;

cout<<"teacher2:"<<endl; 

teacher2.display(); 

return 0; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值