C++自定义日期类DateType设计该类欲实现的功能进而设计出相应的类成员函数
需求分析:
本程序主要解决的是: 自定义一个简单的日期类DateType,它具有数据成员y、m、d,用来表示当前日期的年、月、日。而后设计该类欲实现(完成)的功能,进而设计出相应的类成员函数。
本程序中设计的成员函数包括实现对天的增加,比较两个日期是否相等,以及对日期的输出等操作。并在主函数中对定义的各成员函数进行调用,以验证它们的正确性。
6.2概要设计:
程序中设计了日期类DateType,具有数据成员y、m、d,用来表示当前日期的年、月、日,设计了成员数incrementDay()、equal(DateType dt2); printDate(DateType &);分别表示天数的增加、判断二日期是否相等、和完成日期的输出,并且要注意不同月份天数的不同及闰年的判断。
6.3 详细设计与编码:
见上传程序。
6.4 调试分析:
在调试过程中出现的主要问题是闰年的判断条件的简化问题及如何实现不同月份间天数增加后月份进位的问题,在incrementDay()成员函数中写入了闰年的判断条件及月份天数的共用体。,本实现程序的难点主要是年、月、日的进位问题。
程序执行的结果:
1验证闰年且是2月的特殊情况:
2.一般情况
6.5 用户使用说明:
用户根据程序的提示输入*****年*月及*日,输入时注意每输入一个数便按下回车键
6.6 设计心得:
这是我第一次完全用c++语言中的类编写程序,编写过程中感到一切都比较生疏,对于类中的数据成员的使用及定义比较陌生,对于构造函数的不同声明方式有了一定得认识,对于类在主函数中的调用时,必须事先声明对象,且采用“对象名.成员函数”的方式进行使用。通过本次实验,我对面向对象编程有了更好的认识,对于类的使用有了一定了解,虽然构造类的方法与函数调用很相近,但类能更好的实现封装,独立性好,受外部影响较小。
#include<iostream>
using namespace std;
class DateType { //自定义的日期类DateType
int y,m,d; //数据成员,表示当前日期的年、月、日
public:
DateType(int y0 , int m0, int d0);
//构造函数,设定年、月、日;并设置参数默认值
void incrementDay(); //增加1天
bool equal(DateType dt2); //判断二日期是否相等
void printDate(DateType &); //屏幕输出日期对象的有关数据(年、月、日)
};
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/
void DateType::incrementDay() //天数递加
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int IsLeap;
if(y%4==0 && y%100!=0 || y%400==0) //判断是否为闰年
IsLeap=1;
else
IsLeap=0;
if(m==2&&IsLeap==1) //对2月判断
{
if(d==29)
{
d=1;
m++;
}
else
d++;
}
else 1832