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. Android 接入微信分享错误码-6

    官方的常见错误表示签名出错登录以后,需要重装微信(也就是清除微信本地数据)

  2. Android适配文件dimen自动生成代码

    1:保存下,别人的code import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputSt ...

  3. SQLServer之merge函数用法

    MERGE 目标表 USING 源表 ON 匹配条件 WHEN MATCHED THEN 语句 WHEN NOT MATCHED THEN 语句; 其中最后语句分号不可以省略,且源表既可以是一个表也可 ...

  4. Sql Server 优化----SQL语句的执行方式与锁以及阻塞的关系

    阻塞原因之一是不同的Session在访问同一张表的时候因为不兼容锁的原因造成的, 当前执行的SQL语句是否被阻塞(或者死锁),不仅跟当前表上的已有的锁有关,也会跟当前执行的SQL语句的执行方式有关 简 ...

  5. SqlServer数据库表导入SqlLite数据库表保持日期时间类型字段的格式

    在写查询功能的过程中遇到一个这样的问题:按日期范围查询,sql语句是:where dt>=用户选择起始日期&&dt<=用户选择结束日期.数据库中的数据如图1,我选择的测试数 ...

  6. Mac 查看 剪贴板/剪切板/粘贴板 内容与格式

    命令行形式 osascript -e 'clipboard info' GUI 形式 Finder->编辑->显示剪贴板 图示:

  7. 转载:html特殊字符 编码css3 content:&amp;quot;我是特殊符号&amp;quot;

    项目中用到的一些特殊字符和图标 html代码 <div class="cross"></div> css代码 .cross{ width: 20px; he ...

  8. 执行opatch apply 报错 OPatch failed with error code 73

    .执行opatch apply 报错 OPatch failed [oracle@ora_11g 14275605]$ /opt/oracle/product/db_1/OPatch/opatch a ...

  9. bzoj 1189: [HNOI2007]紧急疏散evacuate 分层图最大流_拆点_二分

    Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一 块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是 ...

  10. css3实现滚动手表

    静态html: <!DOCTYPE html><html> <head> <meta charset="utf-8" /> < ...