设计日期类Date,成员数据包含年(year)月(month)日(day)。 main函数已给定,提交时只需要提交main函数外的代码部分。 #include<iostream> using namespace std; //你提交的代码在这里 int main() { Date d1; cout<<"Show object d1:"<<d1<<endl; int year,month,day; cin>>year>>month>>day; Date d2(year,month,day); cout<<"Show object d2:"<<d2<<endl; cin>>year>>month>>day; d1.Set(year,month,day); cout<<"Reset and Show object d1:"<<d1<<endl; int n; n=d2-d1; cout<<d2<<" - "<<d1<<" = "<<n<<endl; cin>>n; cout<<d1<<" + "<<n<<" = "; d2=d1+n; cout<<d2<<endl; cout<<d1<<" - "<<n<<" = "; d1=d1-n; cout<<d1<<endl; return 0; }输入2023 1 5 2023 7 8 100 输出Show object d1:2023/5/20 Show object d2:2023/1/5 Reset and Show object d1:2023/7/8 2023/1/5 - 2023/7/8 = -184 2023/7/8 + 100 = 2023/10/16 2023/7/8 - 100 = 2023/3/30
时间: 2024-03-26 14:34:33 浏览: 41
```
#include<iostream>
using namespace std;
class Date {
private:
int year, month, day;
public:
Date() { // 默认构造函数
year = 2023;
month = 5;
day = 20;
}
Date(int y, int m, int d) { // 带参数构造函数
year = y;
month = m;
day = d;
}
void Set(int y, int m, int d) { // 设置日期
year = y;
month = m;
day = d;
}
friend ostream& operator<<(ostream& os, const Date& d) { // 重载输出运算符
os << d.year << "/" << d.month << "/" << d.day;
return os;
}
friend int operator-(const Date& d1, const Date& d2) { // 重载减法运算符
return (d2.year - d1.year) * 365 + (d2.month - d1.month) * 30 + (d2.day - d1.day);
}
Date operator+(int n) { // 重载加法运算符
Date d;
int days = n + (year-2023)*365 + (month-5)*30 + (day-20);
d.year = 2023 + days/365;
d.month = 5 + (days%365)/30;
d.day = 20 + (days%365)%30;
return d;
}
Date operator-(int n) { // 重载减法运算符
Date d;
int days = (year-2023)*365 + (month-5)*30 + (day-20) - n;
d.year = 2023 + days/365;
d.month = 5 + (days%365)/30;
d.day = 20 + (days%365)%30;
return d;
}
};
int main() {
Date d1;
cout<<"Show object d1:"<<d1<<endl;
int year,month,day;
cin>>year>>month>>day;
Date d2(year,month,day);
cout<<"Show object d2:"<<d2<<endl;
cin>>year>>month>>day;
d1.Set(year,month,day);
cout<<"Reset and Show object d1:"<<d1<<endl;
int n;
n=d2-d1;
cout<<d2<<" - "<<d1<<" = "<<n<<endl;
cin>>n;
cout<<d1<<" + "<<n<<" = ";
d2=d1+n;
cout<<d2<<endl;
cout<<d1<<" - "<<n<<" = ";
d1=d1-n;
cout<<d1<<endl;
return 0;
}
```
阅读全文