文档详情

多态补充案例.docx

发布:2017-12-09约1万字共15页下载文档
文本预览下载声明
一、编写程序,计算汽车运行的时间。首先建立基类car,其中使用数据成员distance存储两点间的距离。假定距离以英里计算,速度为每小时80英里,使用虚函数travel_time()计算并显示通过这段距离的时间。在派生类truck中,假定距离以千米计算,速度为每小时120千米,使用虚函数travel_time()计算并显示通过这段距离的时间1#includeiostreamusing namespace std;const double car_speed=80;//基类速度(以英里/小时计量)const double truck_speed=120;//派生类速度(以千米/小时计量)class car{private:double distance;//两点的距离用英里计数double t;//运行时间public:car(double dis,double t0=0):distance(dis),t(t0){}car(){}~car(){}virtual void travel_time(){t=distance/car_speed;coutcar运行时间:t小时endl;}};class truck:public car{private:double distance,t;public:truck(double dis1,double dis2=0,double t1=0):car(dis1),distance(dis2),t(t1){}~truck(){}void travel_time(){t=distance/truck_speed;couttruck运行时间:t小时endl;}};void fun(car *p){p-travel_time();}int main(){car c(160);fun(c);truck t(0,360);fun(t);return 0;}二、编写程序, 分别用成员函数和友元函数重载运输符“+”和“-”,将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。2#includeiostreamusing namespace std;class Matrix{public:int matrix[3][3];Matrix(int m[][3]){for(int i=0;i3;i++)for(int j=0;j3;j++)this-matrix[i][j]=m[i][j];}Matrix(){}Matrix operator=(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)this-matrix[i][j]=m.matrix[i][j];return *this;}Matrix operator+(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)matrix[i][j]=matrix[i][j]+m.matrix[i][j];return *this;}Matrix operator-(Matrix m){for(int i=0;i3;i++)for(int j=0;j3;j++)matrix[i][j]=m.matrix[i][j]-this-matrix[i][j];return *this;}void display(){for(int i=0;i3;i++){for(int j=0;j3;j++)coutthis-matrix[i][j] ;coutendl;}}};void main(){int a[3][3]={{1,1,1},{1,1,1},{1,1,1}};Matrix m(a);cout初始矩阵为:endl;m.display();int a1[3][3];cout\n请输入一个矩阵(3*3):endl;for(int i=0;i3;i++)for(int j=0;j3;j++)cina1[i][j];Matrix m1(a1);Matrix m2;m2=m+m1;cout\n相加后的矩阵为:endl;m2.display();m2=m1-m;cout\n相减后的矩阵为:endl;m2.display();}三、为日期类(年月日)重载“+”运算符,实现在某一个日期上加一个天数。如2012年12月9日加上49天则为2013年1月27日。3//本题的精华就是在处理日期相加的算法上面(见注释(1)(2))#includeiostreamusing namespace std;class Date{private:int year,month,day;static int a[2][13];//a[0]储存平年每月的天数;a[1]储存闰年每月的天
显示全部
相似文档