第一题
#includeusing namespace std;class Point {public: Point(int xx = 0, int yy = 0) { setX(xx); setY(yy); } void setX(int xx) { x = xx; } int getX() { return x; } void setY(int yy) { y = yy; } int getY() { return y; } void print() { cout << " (" << x << "," << y << ")"; } void moveRight(int offset) { x += offset; } void moveDown(int offset) { y += offset; }private: int x; int y;};int main () { int x, y; cout << "Please input a point:"; cin >> x >> y; cout << x <
第二题
#includeusing namespace std;bool isleap(int year) { bool flag = 0; if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) flag = 1; return flag;}int mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};class Date{public: Date(int year = 1990, int month = 1, int day = 1) { setYear(year); setMonth(month); setDay(day); } void setDate(int year_, int month_, int day_) { year = year_; month = month_; day = day_; } void setYear(int year_) { year = year_; } int getYear() { return year; } void setMonth(int month_) { month = month_; } int getMonth() { return month; } void setDay(int day_) { day = day_; } int getDay() { return day; } void setSeparator(char separator_ = '-') { separator = separator_; } char getSeparator() { return separator; } void printFullYear() { if (getMonth() > 10) cout << getYear() << getSeparator() << getMonth() << getSeparator() << getDay() << endl; else cout << getYear() << getSeparator() << 0 << getMonth() << getSeparator() << getDay() << endl; } void printStandardYear() { if (getMonth() > 10) cout << getYear() % 100 << getSeparator() << getMonth() << getSeparator() << getDay() << endl; else cout << getYear() << getSeparator() << 0 << getMonth() << getSeparator() << getDay() << endl; } int fullYearsTo(int year_, int month_, int day_) { int ans = year_ - year; if(month_ < month) ans--; else if (day_ < day) ans--; // cout << ans << ',' << "满" << ans << "岁" << endl; return ans; } int daysTo(int year_, int month_, int day_) { if (year_ > year) { int ans = 0; for (int i = getYear() + 1; i < year_; ++i) { ans += 365; if(isleap(i)) ans++; } for (int i = 1; i < month_; ++i) { ans += mon[i - 1]; } for (int i = 12; i > month; --i) { ans += mon[i - 1]; } if(isleap(year_) && month_ > 2) ans++; if(isleap(year) && month < 3) ans++; ans += day_; ans += mon[month] - day + 1; return ans; } else { int ans = 0; for (int i = year_ + 1; i < getYear(); ++i) { ans += 365; if(isleap(i)) ans++; } for (int i = 1; i < month; ++i) { ans += mon[i - 1]; } for (int i = 12; i > month_; --i) { ans += mon[i - 1]; } if(isleap(year) && month > 2) ans++; if(isleap(year_) && month_ < 3) ans++; ans += day; ans += mon[month_] - day_ + 1; return -ans; } // cout << -ans << "," << "共和国比我早诞生了" << ans << "天" << endl; }private: int year; int month; int day; char separator = '-';};int main () { Date birthDate(1969, 8, 11); birthDate.printFullYear(); birthDate.printStandardYear(); birthDate.setSeparator('/'); birthDate.printFullYear(); cout << birthDate.fullYearsTo(2010, 4, 15); cout << "," << "满四十岁" << endl; cout << birthDate.daysTo(2010, 4, 15) << endl; cout << birthDate.daysTo(1949, 10, 1); cout << "," << "共和国比我早诞生了" << -birthDate.daysTo(1949, 10, 1) << "天" << endl; return 0;}