我是giggleman 2016-04-28 07:34 采纳率: 0%
浏览 1216

各位大神帮忙看看哪里写错了,修改下谢谢 C++ 入门

================================================
dateType.h
================================================
#include
using namespace std;
class dateType {
private:
int year, month, day;
public:
void setDate(int month, int day, int year);
void setMonth(int month);
void setDay(int day);
void setYear(int year);
void print();
int numberOfDaysPassed();
int numberOfDaysLeft();
void incrementDays(int num);
int getMonth();
int getYear();
int getDay();
int getDaysInMonth();
int getDaysInMonth(int month);
bool isLeapYear();
dateType(int = 1, int = 1, int = 1900);
~dateType() {}
};

================================================
dateTypelmp.cpp
================================================
#include "dateType.h"

void dateType::setDate(int _month, int _day, int _year) {
year = _year;
month = _month;
day = _day;
}
dateType::dateType(int _month, int _day, int _year) {
year = _year;
month = _month;
day = _day;
}
void dateType::setMonth(int _month) {
month = _month;
}

void dateType::setDay(int _day) {
day = _day;
}

void dateType::setYear(int _year) {
year = _year;
}

void dateType::incrementDays(int num) {
int leftDays = numberOfDaysLeft();
while (num>leftDays) {
year++;
num -= leftDays;
leftDays = numberOfDaysLeft();
month = 1;
day = 0;
}

while (num>(getDaysInMonth() - day)) {

    num -= (getDaysInMonth() - day);
    month++;
    day = 0;
}
day += num;

}
int dateType::getDaysInMonth() {
return getDaysInMonth(month);
}
int dateType::getDaysInMonth(int _month) {
int days = 31;
switch (_month) {
case 2:
if (isLeapYear()) {
days = 29;
}
else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
}
return days;
}
bool dateType::isLeapYear() {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int dateType::getYear() {
return year;
}
int dateType::getMonth() {
return month;
}
int dateType::getDay() {
return day;
}
void dateType::print() {
cout << "date=" << month << "-" << day << "-" << year << endl;
}

int dateType::numberOfDaysPassed() {

int passedDays = 0;
for (int i = 1; i<month; i++) {
    passedDays += getDaysInMonth(i);
}
passedDays += day;
return passedDays;

}

int dateType::numberOfDaysLeft() {
int years = 365;
if (isLeapYear()) {
years = 366;
}
return years - numberOfDaysPassed();
}

int main(void)
{
dateType date1(3, 15, 2008);
date1.print();
date1.setDate(10, 10, 2010);
date1.print();

date1.setMonth(12);
date1.setDay(12);
date1.setYear(2012);
date1.print();

cout << "Elapesed Days since 1/1/2012 = " << date1.numberOfDaysPassed() << endl
    << "Days remaining in 2012 = " << date1.numberOfDaysLeft() << endl;
date1.incrementDays(378);
cout << date1.getMonth() << "/"
    << date1.getDay() << "/"
    << date1.getYear() << "/\n";
cout << "there are " << date1.getDaysInMonth() << " in this month\n"
    << "and this year " << (date1.isLeapYear() ? "is" : "is not ") << "a leap year\n";
cin.get();

system("pause");
return 0;

}

  • 写回答

4条回答 默认 最新

  • 我是giggleman 2016-04-28 07:35
    关注

    这个是我运行后的图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建