【发布时间】:2017-02-13 06:35:56
【问题描述】:
这个程序的目标是从 1 到 365 取一个整数并将其转换为月和日。前任。 2 = 1 月 2 日,365 = 12 月 31 日。我以为我输入的所有内容都正确,我走在正确的轨道上,但现在我的头文件中的第 12-14 行有 16 个错误,还有 1 个错误来自我的类文件。
我不确定它是否真的是标题,还是我在其他地方搞砸了。
头文件
#ifndef DAYOFYEAR_H
#define DAYOFYEAR_H
class DayOfYear
{
private:
int day;
public:
DayOfYear();
static int daysAtEndOfMonth[];
static string monthName[];
void print();
void setDay(int day) { this->day = day; };
};
#endif
类
#include "DayOfYear.h"
#include <iostream>
#include <string>
using namespace std;
DayOfYear::DayOfYear() {
}
int DayOfYear::daysAtEndOfMonth[] = {
31, 59, 90,
120, 151, 181,
212, 243, 273,
304, 334, 365
};
string DayOfYear::monthName[] = { "January", "February",
"March", "April",
"May", "June"
"July", "August",
"September", "October",
"November", "December"
};
void DayOfYear::print() {
int month = 0;
while (daysAtEndOfMonth[month] < day)
month = (month + 1) % 12;
if (month == 0) {
cout << "\nJanuary" << day << endl << endl;
}
else
{
cout << endl << monthName[month] << " " << day - daysAtEndOfMonth[month - 1]
<< "\n\n";
};
};
主要
#include <iostream>
#include <string>
#include "DayOfYear.h"
using namespace std;
int main() {
int day;
DayOfYear DayOfYearObj;
cout << "This program will convert an integer between 1 and 365 to a Month/Day format"
<< endl << endl;
cout << "Please enter an integer from 1 to 365:";
cin >> day;
//set day
DayOfYearObj.setDay(day);
//display
DayOfYearObj.print();
return 0;
}
【问题讨论】:
-
请包括您遇到的实际错误,但我的水晶球告诉我 this 是您所需要的。
-
第 12-14 行没有正确写入。 (当你说“你有错误”时,唯一可能给你的答案是“那么你一定做错了什么”。)
-
因未能提供 MVCE 而投票关闭。
-
对静态数组使用 constexpr,将它们的值放在标题中,稍后再感谢我。