类的编程题---还没用到构造函数----自定义日期类
来源:互联网 发布:淘宝网客服 编辑:程序博客网 时间:2024/05/20 10:55
题目:
定义一个日期类
有3个数据成员year、month、day分别表示年、月、日;
有4个成员函数:
void set( );//来完成对日期类对象中成员的设置
void display( );//来完成对日期类对象中成员的输出
int theDayofYear( ); // 来得到日期类对象是一年中的第几天
int isLeapYear( ); // 判断闰年函数,如果是闰年返回1,不是闰年返回0
在主函数中定义日期类对象,来完成类成员函数的调用。
/*定义一个日期类有3个数据成员year、month、day分别表示年、月、日;有5个成员函数: bool set( );//来完成对日期类对象中成员的设置 void display( );//来完成对日期类对象中成员的输出 int theDayofYear( ); // 来得到日期类对象是一年中的第几天 bool isLeapYear( ); // 判断闰年函数,如果是闰年返回1,不是闰年返回0 bool isValid( );//判断年月日是否有效 在主函数中定义日期类对象,来完成类成员函数的调用。*/#include <iostream>using namespace std;class Date{private: //私有成员 int year; //年 int month; //月 int day; //日 public: bool set( ); //来完成对日期类对象中成员的设置 void display( ); //来完成对日期类对象中成员的输出 int theDayofYear( ); // 来得到日期类对象是一年中的第几天 bool isLeapYear( ); // 判断闰年函数,如果是闰年返回1,不是闰年返回0 bool isValid( );//判断年月日是否有效};bool Date::isValid( ) //判断年月日是否有效{ bool leap; if (year<=0||month>12||month<=0||day<=0||day>31) return false; leap=isLeapYear( ); if((month==4||month==6||month==9||month==11)&&(day==31)||leap==1&&month==2&&day>29||leap==0&&month==2&&day>28) return false; return true;}bool Date::set( ) //来完成对日期类对象中成员的设置,成功返回true,失败返回false{ cout<<"日期设置开始,请输入年月日用空格隔开"<<endl;cin>>year; cin>>month; cin>>day;bool flag=false; //输入是否合法的标志 flag=isValid(); //对输入的日期是否合法的判断 if(flag==true){ cout<<"日期设置成功"; return true;}else{ cout<<"日期设置失败"; return false;}}void Date::display( ) //来完成对日期类对象中成员的输出{ cout<<"您设置的日期是:"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;}int Date::theDayofYear( )// 来得到日期类对象是一年中的第几天{ int sum; int leap=isLeapYear( ); switch(month)//先计算某月以前月份的总天数{case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;} sum=sum+day; //再加上某天的天数 if(leap==1&&month>2)//如果是闰年且月份大于2,总天数应该加一天 sum++; return sum;}bool Date::isLeapYear( ) // 判断闰年函数,如果是闰年返回true,不是闰年返回false{ if(year%400==0||(year%4==0&&year%100!=0))//判断是不是闰年 return true; //闰年 else return false; //非闰年 }int main(){ Date d; //定义日期类对象 bool flag=false; //日期是否有效标志 flag=d.set(); //对类对象中的年月日进行设置,同时返回设置的日期是否有效 while(flag==false) //如果设置的日期无效,则循环重新输入指导输入的日期有效 { flag=d.set(); } d.display(); //输出日期对象中的成员值 cout<<"您设置的年"<<(d.isLeapYear()==true?"是":"不是")<<"闰年"<<endl; cout<<"您设置的日期是本年中的第"<<d.theDayofYear()<<"天"<<endl; return 0; }
- 类的编程题---还没用到构造函数----自定义日期类
- Swift自定义类的构造函数
- 自定义String类:构造函数、复制构造函数、赋值函数的实现
- 去除可执行文件中没用到的符号或函数
- swift 自定义类的构造函数,有参构造、无参构造
- 自主编程实现String类的构造函数,析构函数,拷贝构造函数,赋值函数
- 类的构造函数、拷贝构造函数
- 自定义View的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 类的构造函数
- 无法识别的属性“targetFramework”
- 探讨Linux kernel中对序列号超前的ACK包的处理
- HttpClient入门
- 关于视频编码有刀切感觉画面的原因
- Android中后台定时任务实现,即时数据同步问题思考
- 类的编程题---还没用到构造函数----自定义日期类
- Listview异步加载图片之优化篇
- 你离成功还有多远?梦和现实的距离是否就是你与成功的距离?
- 公积金提取材料!
- 学习opencv第七章7.2
- Hive的预定义UDF函数
- 命令行运行java程序
- string image 和 byte的互相转换
- rtsp流媒体服务器初步选型http://hi.baidu.com/xoxoxo/item/e0f68c14b979014ae65e06c1