c++面向对象程序设计课后题答案 谭浩强 第四章

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;

}

c++面向对象程序设计课后题答案 谭浩强

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;

};

Complex Complex::operator+(Complex &c2)

{Complex c;

c.real=real+c2.real;

c.imag=imag+c2.imag;

return c;}

Complex Complex::operator-(Complex &c2)

{Complex c;

c.real=real-c2.real;

c.imag=imag-c2.imag;

return c;}

Complex 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 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;}

void Complex::display()

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

int main()

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

c3=c1+c2;

cout<<"c1+c2=";

c3.display();

c3=c1-c2;

cout<<"c1-c2=";

c3.display();

c3=c1*c2;

cout<<"c1*c2=";

c3.display();

c3=c1/c2;

cout<<"c1/c2=";

c3.display();

return 0;

}

c++面向对象程序设计课后题答案 谭浩强

3:

#include <iostream>        //用VC++时改为∶ #include <iostream.h>

using namespace std;      //用VC++时为取消此行

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;

};

Complex Complex::operator+(Complex &c)

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

Complex Complex::operator+(int &i)

{return Complex(real+i,imag);}

void Complex::display()

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

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

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

int main()

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

int i=5;

c3=c1+c2;

cout<<"c1+c2=";

c3.display();

c3=i+c1;

cout<<"i+c1=";

c3.display();

c3=c1+i;

cout<<"c1+i=";

c3.display();

return 0;

}

谭浩强

4:

#include <iostream>

using namespace std;

class Matrix                                          //定义Matrix类

{public:

Matrix();                                          //默认构造函数

friend Matrix operator+(Matrix &,Matrix &);        //重载运算符“+”

void input();                                      //输入数据函数

void display();                                    //输出数据函数

private:

int mat[2][3];

};

Matrix::Matrix()                                      //定义构造函数

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

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

mat[i][j]=0;

}

Matrix operator+(Matrix &a,Matrix &b)                //定义重载运算符“+”函数

{Matrix c;

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

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

{c.mat[i][j]=a.mat[i][j]+b.mat[i][j];}

return c;

}

void Matrix::input()                                   //定义输入数据函数

{cout<<"input value of matrix:"<<endl;

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

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

cin>>mat[i][j];

}

void Matrix::display()                                //定义输出数据函数

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

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

{cout<<mat[i][j]<<" ";}

cout<<endl;}

}

int main()

{Matrix a,b,c;

a.input();

b.input();

cout<<endl<<"Matrix a:"<<endl;

a.display();

cout<<endl<<"Matrix b:"<<endl;

b.display();

c=a+b;                                         //用重载运算符“+”实现两个矩阵相加

cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl;

c.display();

return 0;

}

c++面向对象程序设计课后题答案

5:

#include <iostream.h>

//using namespace std;

class Matrix

{public:

Matrix();

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

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

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

private:

int mat[2][3];

};

Matrix::Matrix()

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

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

mat[i][j]=0;

}

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

{Matrix c;

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

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

{c.mat[i][j]=a.mat[i][j]+b.mat[i][j];

}

return c;

}

istream& operator>>(istream &in,Matrix &m)

{cout<<"input value of matrix:"<<endl;

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

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

in>>m.mat[i][j];

return in;

}

ostream& operator<<(ostream &out,Matrix &m)

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

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

{out<<m.mat[i][j]<<" ";}

out<<endl;}

return out;

}

int main()

{ Matrix a,b,c;

cin>>a;

cin>>b;

cout<<endl<<"Matrix a:"<<endl<<a<<endl;

cout<<endl<<"Matrix b:"<<endl<<b<<endl;

c=a+b;

cout<<endl<<"Matrix c = Matrix a + Matrix b :"<<endl<<c<<endl;

return 0;

}

6:

#include <iostream>

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;}

operator double(){return real;}

void display();

private:

double real;

double imag;

};

void Complex::display()

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

int main()

{Complex c1(3,4),c2;

double d1;

d1=2.5+c1;

cout<<"d1="<<d1<<endl;

c2=Complex(d1);

cout<<"c2=";

c2.display();

return 0;

}

7:

#include <iostream>

using namespace std;

class Student

{public:

Student(int,char[],char,float);

int get_num(){return num;}

char * get_name(){return name;}

char get_sex(){return sex;}

void display()

{cout<<"num:"<<num<<"\nname:"<<name<<"\nsex:"<<sex<<"\nscore:"<<score<<"\n\n";}

private:

int num;

char name[20];

char sex;

float score;

};

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

{num=n;

strcpy(name,nam);

sex=s;

score=so;

}

class Teacher

{public:

Teacher(){}

Teacher(Student&);

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

void display();

private:

int num;

char name[20];

char sex;

float pay;

};

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

{num=n;

strcpy(name,nam);

sex=s;

pay=p;

}

Teacher::Teacher(Student& stud)

{num=stud.get_num();

strcpy(name,stud.get_name());

sex=stud.get_sex();

pay=1500;}

void Teacher::display()

{cout<<"num:"<<num<<"\nname:"<<name<<"\nsex:"<<sex<<"\npay:"<<pay<<"\n\n";}

int main()

{Teacher teacher1(10001,"Li",'f',1234.5),teacher2;

Student student1(20010,"Wang",'m',89.5);

cout<<"student1:"<<endl;

student1.display();

teacher2=Teacher(student1);

cout<<"teacher2:"<<endl;

teacher2.display();

return 0;

}

c++面向对象程序设计 课后题 答案 谭浩强 第四章的更多相关文章

  1. c++面向对象程序设计 谭浩强 第三章答案

    2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,in ...

  2. javase程序设计课后题答案

    ;第1章 Java概述 编译java application源程序文件将产生相应的字节码文件,这些字节码文件别的扩展名为.java 执行一个java程序fristapp的方法是运行java frist ...

  3. c++面向对象程序设计 谭浩强 第五章答案

    1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>&g ...

  4. 谭浩强第四版第九章课后习题12>>>建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,若链表 中的结点所包含的年龄等于此年龄,则删除此结点。

    #include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct lin { struct ...

  5. C程序设计(谭浩强)第五版课后题答案 第一章

    大家好,这篇文章分享了C程序设计(谭浩强)第五版课后题答案,所有程序已经测试能够正常运行,如果小伙伴发现有错误的的地方,欢迎留言告诉我,我会及时改正!感谢大家的观看!!! 1.什么是程序?什么是程序设 ...

  6. c++面向对象程序设计 谭浩强 第一章答案

    c++面向对象程序设计 谭浩强 答案 第一章 目录: c++面向对象程序设计 谭浩强 答案 第一章 c++面向对象程序设计 谭浩强 答案 第二章 c++面向对象程序设计 谭浩强 答案 第三章 c++面 ...

  7. c++面向对象程序设计 谭浩强 第二章答案

    类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...

  8. 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)

    挂羊头卖狗肉蓄意欺骗读者——谭浩强<C程序设计(第四版)>中所谓的“按照C99”(二) 在<谭C>p4:“本书的叙述以C99标准为依据”,下面从C89到C99的主要变化方面来看 ...

  9. 再论谭浩强《C语言程序设计》

    一些同学学不好C语言,把罪责归于“因为教材是谭浩强写的”实在是很滑稽. 谭浩强老先生 1934 年生,现在已经 80 岁了.他 1958 年从清华大学自动控制系毕业,那年 24 岁.要知道 C 语言那 ...

随机推荐

  1. js隐藏与显示回到顶部按钮

    window.onscroll = function () { if (document.documentElement.scrollTop + document.body.scrollTop > ...

  2. jQuery动画知识总结

    jQuery动画概述 我们之前实现的下拉菜单的案例,是没有动画效果的,但是在日常开发中,动画效果是经常会用到的,所以我们可以尝试使用jQuery动画,将下拉菜单案例实现的更动感一些. jQuery提供 ...

  3. 图像的全局特征--LBP特征

    原文链接:http://blog.csdn.net/zouxy09/article/details/7929531#comments 这个特征或许对三维图像特征提取有很大作用.文章有修改,如有疑问,请 ...

  4. 理解题意后的UVa340

    之前理解题意错误,应该是每一次game,只输入一组答案序列,输入多组测试序列,而之前的错误理解是每一次输入都对应一组答案序列和一组测试序列,下面是理解题意后的代码,但是还是WA,待修改 #includ ...

  5. 与PhotoZoom Classic 6相比,Classic 7新增了哪些?

    PhotoZoom Classic 6凭借屡获殊荣的S-Spline XL的专利技术,以清晰和锐利的方式调整照片大小非常简单快捷甚至可以放大和改善互联网上的照片. PhotoZoom Classic ...

  6. trigger事件就是继承某一个类的事件.

    <html><head><script type="text/javascript" src="/jquery/jquery.js" ...

  7. JS中增加日期格式化原型函数之prototype

    /** * javascript Date format(js日期格式化) * 对Date的扩展,将 Date 转化为指定格式的String 月(M).日(d).小时(h).分(m).秒(s).季度( ...

  8. P1892 团伙

    题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友. 两个强盗是同一团伙的 ...

  9. php 安装mysql扩展注意事项

    1.yum search php-mysql (Linux环境) 这一点,根据具体的情况会遇到不同的搜索结果.我搜索到的结果是:php-mysql.i386 : A module for PHP ap ...

  10. Django安装部署

    MVC模式说明 Model:是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据 View: 是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的 Controlle ...