裁判測驗程式樣例:
#include<iostream>
using namespace std;
int const monthDay[12]={31,28,31,30,31,30,31,31,30,31,30,31};
char* const weekName[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
char* const monthName[12]={"Jan","Feb","Mar","Api","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
/*請在這里填寫答案*/
int main(){
int year,month,day;
Date d1;
Date d2(d1);
cin>>year>>month>>day;
d1.setYear(year);
d1.setMonth(month);
d1.setDay(day);
d1.yesterday();
d1.chineseFormat();
cin>>year>>month>>day;
d2.setYear(year);
d2.setMonth(month);
d2.setDay(day);
d2.tomorrow();
d2.americaformat();
d2.printMonthCalendar();
return 0;
}
輸入樣例:
2019 3 27
2016 2 31
輸出樣例:
Constructor run
CopyConstructor run
2019年3月26日
Mar 1,2016
SunMonTueWedThuFriSat
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Destructor run
Destructor run
uj5u.com熱心網友回復:
我寫好了,輸出一致
uj5u.com熱心網友回復:
//head
#define DATE_H
#include <iostream>
#include <iomanip>
#include <string>
class Date
{
private:
int year;
int month;
int day;
int isLeapYear(int _year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1;
else
return 0;
}
public:
Date() : year(1990), month(1), day(1) { std::cout << "Constructor run\n"; }
Date(int _y, int _m, int _d) : year(_y), month(_m), day(_d) { std::cout << "Constructor run\n"; }
Date(const Date &d) : year(d.year), month(d.month), day(d.day) { std::cout << "CopyConstructor run\n"; }
Date& operator=(const Date&);
~Date() { std::cout << "Destructor run\n"; }
void setYear(int y) { year = y; }
int getYear() { return year; }
void setMonth(int m) { month = m; }
int getMonth() { return month; }
void setDay(int d) { day = d; }
int getDay() { return day; }
int nyear(int _y);
int nmonth(int _y, int _m);
int getDays(int y, int m);
int weekDay();
void printMonthCalendar();
void chineseFormat();
void amerciaFormat();
bool ifMonthOverload(int y, int m, int d);
bool ifDayOverload(int y, int m, int d);
void tomorrow();
void yesterday();
};
Date& Date::operator=(const Date &rdate)
{
year = rdate.year;
month = rdate.month;
day = rdate.day;
return *this;
}
inline int Date::nyear(int _y)
{
if (isLeapYear(_y))
return 366;
else
return 365;
}
inline int Date::nmonth(int _y, int _m)
{
if (_m == 1 || _m == 8 || _m == 5 || _m == 7 || _m == 8 || _m == 10 || _m == 12)
return 31;
else if (nyear(_y) == 366 && _m == 2)
return 29;
else if (nyear(_y) == 365 && _m == 2)
return 28;
else
return 30;
}
inline int Date::getDays(int y, int m)
{
int sum = 0;
for (int i = 1990; i < year; i++)
sum += nyear(i);
if (m > 1)
for (int i = 1; i < m; i++)
sum += nmonth(y, i);
return sum;
}
inline void Date::printMonthCalendar()
{
int sum = getDays(year, month);
int front_space = (sum + 1) % 7;
int days = nmonth(year, month);
std::cout << "SunMonTueWedThuFriSat" << std::endl;
for (int i = 0; i < front_space; i++)
std::cout << std::setw(3) << " ";
for (int i = 1, j = front_space + 1; i <= days; i++, j++)
{
std::cout << std::setw(3) << i;
if (j % 7 == 0)
std::cout << std::endl;
}
std::cout << std::endl;
}
inline void Date::chineseFormat()
{
std::cout << year << "年" << month << "月" << day << "日" << std::endl;
}
inline void Date::amerciaFormat()
{
std::string mon[12] = {
"Jan", "Feb", "Mar",
"Api", "May", "Jun",
"Jul", "Aug", "Sep",
"Oct", "Nov", "Dec"};
std::cout << mon[month - 1] << " " << day << ", " << year << std::endl;
}
bool Date::ifMonthOverload(int y, int m, int d)
{
if (m < 1 || m > 12)
return true;
return false;
}
bool Date::ifDayOverload(int y, int m, int d)
{
int curDay = nmonth(y, m);
if (d < 1 || d > curDay)
return true;
return false;
}
inline void Date::tomorrow()
{
day += 1;
if (ifDayOverload(year, month, day))
{
day = 1;
month += 1;
if (ifMonthOverload(year, month, day))
month = 1;
}
}
inline void Date::yesterday()
{
day -= 1;
if (ifDayOverload(year, month, day))
{
month -= 1;
if (ifMonthOverload(year, month, day))
month = 12;
day = nmonth(year, month);
}
}
int Date::weekDay()
{
int y = year, m = month, d = day;
if (m == 1 || m == 2)
{
m += 12;
y--;
}
int curWeek = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
return curWeek;
}
//main
#include "Date.h"
#include <cstdlib>
int main()
{
int year, month, day;
Date d1;
Date d2(d1);
std::cin >> year >> month >> day;
d1.setYear(year);
d1.setMonth(month);
d1.setDay(day);
d1.yesterday();
d1.chineseFormat();
std::cin >> year >> month >> day;
d2.setYear(year);
d2.setMonth(month);
d2.setDay(day);
d2.tomorrow();
d2.amerciaFormat();
d2.printMonthCalendar();
system("pause");
return 0;
}
uj5u.com熱心網友回復:
so?在哪兒呢?
uj5u.com熱心網友回復:
就在你上面啊
uj5u.com熱心網友回復:
我寫好了,輸出一致
so?在哪兒呢?
就在你上面啊
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
char* const weekName[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
^
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:5:99: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
char* const monthName[12]={"Jan","Feb","Mar","Api","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
uj5u.com熱心網友回復:
我寫好了,輸出一致
so?在哪兒呢?
就在你上面啊
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
char* const weekName[7]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
^
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:4:67: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
a.cpp:5:99: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
char* const monthName[12]={"Jan","Feb","Mar","Api","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......
值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......