阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
(说明)
设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。
在Date类中设计如下重载运算符函数:
D.ate operator+(int days):返回某日期加上天数得到的日期。
D.ate 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&);
D.ate ntod(int);
public:
D.ate(){}
D.ate(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;)
D.ate operator+(int days)∥+运算符重载函数
{
static Date date;
int number= (1) ;
date=ntod(number);
return date;
}
D.ate 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;
}
D.ate 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()
{
D.ate now(2003,10,1),then(2005,6,5);
cout<<"now:";now.disp();
cout<<"then:";then.disp();
cout<<"相差天数:"<<(then-now)<<endl;
D.ate dl=now+1000,d2=now-1000;
cout<<"now+1000:";d1.disp();
cout<<"now-1000:":d2.disp();
}
[试题]试题六阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。(说明)设计一个类模板Sample用于对一个有序数组采用二分法查找元素下标。(C++程序)#include<iostream.h>#define Max 100∥最多元素个数template<class T>class Sample{T A[Max]:∥存放有序数序int n:∥实际元素个数publicSample(){}∥默认构造函数Sample(T a[],int i);∥初始化构造函数int
[试题]试题七阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。(说明)以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。(程序)#include<iostream.h>#include<stdliB.h>const int Max=20;∥栈大小template<class T>class stack{∥栈元素数组T s[Max];∥栈顶下标int top;public:stack(){top=-1;∥栈顶初始化为-1}v
[试题]试题六阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本题将有向网(带权有向图)定义为类AdjacencyWDigraph。类中的数据成员n表示有向网中的顶点数;a为带权邻接矩阵,用于存储有向网中每一对顶点间弧上的权值;c为二维数组,存储有向网中每一对顶点间的最短路径长度;kay为二维数组,存储最短路径,kay[i][j]=k表示顶点i 到达顶点j的最短路径必须经过顶点k。类中的主要成员函数有:Input():输入有向网的顶点数、各条弧及权值,建立带权领接矩阵a。若顶
[试题]试题六阅读以下说明和C++程序,将应填入(n)处的语句写在答题纸的对应栏内。(说明)以下程序的功能是计算三角形、矩形和正方形的面积并输出。程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述3种图形面积的通用接口(C++程序)#include<iostream.h>#include<math.h>class Figure{public:virtual dou
[试题]试题二阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)函数MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#define MAXSIZE 32typedef struct{int *elem;/*栈的存储区*/int max; /*栈的容量
[试题]试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列,新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面),最后调用writeDat()函数的新序列输出到文件out.dat中。在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。例:序列 {6,8,9,1,2,5,4,7,3}经重排后成为{3,4,5,2,1,6,8,9,7}(函数)
[试题]试题四阅读以下说明和C代码,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]函数MultibaseOutput(long n, int B)的功能是:将一个无符号十进制整数n转换成B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把B进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:#define MAXSIZE 32typedef struct {int *elem; /* 栈的存储区 */int max;
[试题]试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号
[试题]试题四阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT(),把结果XX输出到文件OUT5.DAT中。例如:原文:You can create an index on any fi
[试题]试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(程序5说明)著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。程序中用1~4表示四种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。