请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每

admin2020-06-29  45

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和。
请编写这个operator+函数。程序的正确输出应该是:
两个数据表:
1,2,3,4,5,6
3,4,5,6,7,8
两个数据表之和:
4,6,8,10,12,14
要求:
补充编制的内容写在“//**********333**********”与
“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//DataList.h
#include
usingnamespacestd;
classDataList{//数据表类
intlen;
double*d;
public:
DataList(intlen,doubledata[]=
NULL);
DataList(DataList&data);
intlength()const{returnlen;}
doublegetElement(inti)const{returnd;}
DataListoperator+(constDataList&
list)const;//两个数据表求和
voidshow()const;//显示数据表
};
voidwriteToFile(char*,constDataList&);
//main.cpp
#include"DataList.h"
DataList::DataList(intlen,double
data[]):len(len){
d=newdouble[len];
for(inti=0;id=(data==NULL?0.0:data);
}
DataList::DataList(DataList&data):
len(data.len){
d=newdouble[len];
for(inti=0;id=data.d
}
I?ataListDataList::operator+(const
DataList&j.j_st)constf//两个数据表求和
double*dd=Flewdouble[1ist.length()];
//********333********
//********666********
returnDataList:(list.length(),dd);
}
voidDataList::show()const{//显示数据表
for(inti=0;icout;<<<",";
cout<}
intmain(){
doubles1[]:{1,2,3,4,5,6};
doubles2[]={3,4,5,6,7,8};
DataListlistl(6,s1),list2(6,s2);//定义两个数据表对象
Gout<<"两个数据表:"<list1.show();
list2.show();
cout<end1;
(listl+list2).show();
writeToFile("",list1+list2);
return0;
}

选项

答案for(inti=0;i
解析 主要考查考生对重载运算符的掌握,题目要求对两个数据表求和。程序已经定义了动态数组dd,并已经分配好了空间,接下来只要运用循环语句完成元素相加并进行赋值即可。
转载请注明原文地址:https://kaotiyun.com/show/iByp777K
0

最新回复(0)