【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算

题型:填空题

问题:

【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。 在Date类中设计如下重载运算符函数: Date operator + (int days) : 返回某日期加上天数得到的日期。 Date operator - (int days) : 返回某日期减去天数得到的日期。 int operator - (Date&b): 返回两日期相差的天数。 【程序】 #include<iostream.h> int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; //day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date { int year, month, day//年,月,日 int leap(int); //判断是否闰年 int dton(Date&) Date ntod(int) public: Date() { } Date (int y, int mint d) I year = y; month = m; day = d;} void setday(intd){day = d;} void setmonth(int m) {month = m;} void setyear(int y) {year =y;} int getday() {return day;} int getmonth() {return month:} int getyear() {return yea;} Date operator + (int days) //+运算符重载函数 { static Date date; int number = (1) date = ntod(number) return date } Date operator - (int days) //-运算符重载函数 { staffs Date date; int number= (2) ; number - = days; date = ntod(number) return date; } int operator - (Date &b) //-运算符重载函数{ int days= (3) ; return days; } void disp() { cout<<year<<"."<<month<<". "<<day<<endl; } }; int Date: :leap( int year) if( (4) ) //是闰年 return 1;//不是闰年 else return0: } int Date:: dton( Date &d) //求从公元0年0月0日到d日期的天数 { inty,m,days =0; for(y=1;y<=d. year;y++) if( (5) )days+ =366; //闰年时加366天 else days + = 365;//非闰年时加365天 for(m =0;m<d. month-1;m++) if( (6) ) days += day_tab[1] [m]; else days +=day_tab[0] [m]; days + = d. day; return days; } Date Date::ntod(intn) //将从元0年0月0日的天数转换成日期 { int y=1,m = 1,d,rest = n,lp; while(1) { if(leap(y)) if(rest<= 366) break; else rest - = 366; else //非闰年if(rest = 365 ) break;else rest-=365; y++; } y--; Ip = leap(y);while(1) { if(lp)//闰年 if(rest>day_tab[1] [m - 1]) rest -= day_tab[1] [m-1]; else break; else //非闰 if(rest>day_tab[0] [m -1]) rest -= day_tab[0] [m-1]; else break; m++; } d = rest; return Date(y;m,d); } void main() { Date now(2003,10,1) ,then(2005,6,5); cout<<" now:";now. disp(); cout<<" then:";then. disp(); cout<<"相差天数:"<<(then-now)<<endl; Date dl = now + 1000,d2 = now - 1000; cout<<"now + 1000:" ;d1. disp(); cout<<" now - 1000:" :d2. disp(); }

考点:计算机软件水平考试初级程序员初级程序员下午试题
题型:填空题

一份稿件有4800个字,张小红平均每分钟能打115个字,她44分钟能把这份稿件打完吗?

题型:填空题

路由器转发分组是根据报文分组的______。

A.端口号

B.MAC 地址

C.IP 地址

D.域名

题型:填空题

中国早期宗教主要指()、()时期的宗教,其主要形式有()、()、()、()、()。

题型:填空题

除尽污秽杂质,满足()要求,是水产品初步加工的基本要求。

A.烹调工艺

B.营养卫生

C.食品卫生

D.整齐美观

题型:填空题

电极硬断的原因是什么?

更多题库