选择题:●试题八 阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 设计一个

  • 题目分类:软考初级
  • 题目类型:选择题
  • 查看权限:VIP
题目内容:
●试题八

阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

设计一个日期类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){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 year;)

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=Ieap(y);

while (1)

{

if(Ip)∥闰年

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();

}




参考答案:

●一般认为,对编程语言的性能要求有:Ⅰ.一致性Ⅱ.无二义性Ⅲ.简洁性Ⅳ.局部性Ⅴ.线性当逻辑操作中出现

●一般认为,对编程语言的性能要求有:Ⅰ.一致性Ⅱ.无二义性Ⅲ.简洁性Ⅳ.局部性Ⅴ.线性当逻辑操作中出现

查看答案

●操作系统是计算机系统的核心软件。按功能特征的不同,可把操作系统分为批处理系统、分时系统、实时

●操作系统是计算机系统的核心软件。按功能特征的不同,可把操作系统分为批处理系统、分时系统、实时

查看答案

●I/O与主机交换信息的方式中,中断方式的特点是 (17) 。(17) A.CPU与设备串行工作,传送与主程序串

●I/O与主机交换信息的方式中,中断方式的特点是 (17) 。(17) A.CPU与设备串行工作,传送与主程序串

查看答案

●软件测试的目的是 (1) 。通常 (2) 是在代码编写阶段可进行的测试,它是整个测试工作的基础。逻辑覆

●软件测试的目的是 (1) 。通常 (2) 是在代码编写阶段可进行的测试,它是整个测试工作的基础。逻辑覆

查看答案

● (18) 属于不对称加密法。DES加密算法的密钥长度是 (19) 。(18) A.DES B.IDEA C.RC-5 D.RSA(19) A

● (18) 属于不对称加密法。DES加密算法的密钥长度是 (19) 。(18) A.DES B.IDEA C.RC-5 D.RSA(19) A

查看答案