1、有一个Time类,包含数据成员minute分和sec秒,模拟秒表,每次走1秒,满60秒进1,此时又从0起算。要求输出分和秒的值。
#include <iostream>
using namespace std;
/*
有一个Time类,包含数据成员minute分和sec秒,模拟秒表,每次走1秒,满60秒进1,此时又从0起算。要求输出分和秒的值。
*/
class Time{
public:
Time(){int m=0;int s=0;}
Time(int m,int s):minute(m),second(s){}
Time operator++();
Time operator++(int);
void display();
private:
int minute;
int second;
};
Time Time::operator++(){//前置
if(++second>=60){
second-=60;
++minute;
}
return *this;
}
Time Time::operator++(int){//后置
second++;
if (second>=60){
second-=60;
++minute;
}
return *this;
}
void Time::display(){
cout<<minute<<":"<<second<<endl;
}
int main(){
Time time1(29,0);
for(int i=0;i<61;i++){
++time1;
time1.display();
}
for(int j=0;j<61;j++){
time1++;
time1.display();
}
return 0;
}
2、有两个矩阵a,b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。
#include <iostream>
using namespace std;
/*
有两个矩阵a,b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加。
*/
class Matrix{
public:
Matrix(){
for (int i=0;i<2;i++)
for(int j=0;i<3;j++)
mat[i][j]=0;
}
void input(){
cout<<"please input a 2x3 matrix:"<<endl;
for (int i=0;i<2;i++)
for(int j=0;i<3;j++)
cin>>mat[i][j];
}
void display(){
for (int i=0;i<2;i++){
for(int j=0;i<3;j++)
{cout<<mat[i][j]<<" ";}
cout<<endl;
}
}
friend Matrix operator+(Matrix &m1,Matrix &m2);
private:
int mat[2][3];
};
Matrix operator+(Matrix &m1,Matrix &m2){
Matrix m3;
for (int i=0;i<2;i++)
for(int j=0;i<3;j++){
m3.mat[i][j]=m1.mat[i][j]+m2.mat[i][j];
}
return m3;
}
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;
}