应用题
1. 请使用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<iostream>
using namespaee std;
class DataList {//数据表类
int len;
double*d;
public:
DataList(int len, double data[]=NULL);
DataList(DataList &data);
int length()const {return len;}
double getElement(int i)const {return d[i];}
DataList operator+(const DataList& list)const;//两个数据表求和
void show()const;//显示数据表
};
void writeToFile(char*, const DataList&);
//main. cpp
#include"DataList. h"
DataList::DataList(int len, double data[]): len(len) {
d=new double[len];
for(int i=0; i<len; i++)
d[i]=(data==NULL?0.0: data[i]);
}
DataList::DataList(DataList &data): len(data. len) {
d=new double[len];
for(int i=0; i<len; i++)
d[i]=data. d[i];
}
DataList DataList::operator+(const DataList& list)const {//两个数据表求和
double*dd=new double [1ist. length()];
//********333********
//********666********
return DataList(list. length(), dd);
}
void DataList::show()const {//显示数据表
for(int i=0; i<len-1; i++)
cout<<d[i]<<",";
cout<<d[len-1]<<endl;
}
int main() {
double s1[]={1, 2, 3, 4, 5, 6};
double s2[]={3, 4, 5, 6, 7, 8};
DataList list1(6, s1), list2(6, s2);//定义两个数据表对象
cout<<”两个数据表:”<<endl;
list1. show();
list2. show();
cout<<endl<<"两个数据表之和:"<<endl;
list1+list2). show();
writeToFile(" ", listl+list2);
return 0;
}