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

admin2021-06-10  32

问题 请使用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文件,并且在本程序中调用。
1   //DataList.h
2   #include
3   using namespace std;
4    class DataList{//数据表类
5  int len;
6  double*d;
7    public:
8  DataList(int len,double data[]=NULL);
9  DataList(DataList&data);
10  int length()const{return fen;}
11  double getElement(int i)const{re-turn d;}
12  DataList operator+(const DataList&list)const;//两个数据表求和
13   void show()const;//显示数据表
14   };
15   void  writeTOFile  (char *,constDataList&);
1  //main.cpp
2   #include"DataList.h"
3   DataList::DataList(int len,doubl data[]):len(1en){
4  d=new double[len];
5  for(int i=0;i6  d=(data==NULL?0.0:data);
7    }
8  DataList::DataList(DataList&data):len(data.1en){
9  d=new double[len];
10    for(int i=0;i11  d:data.d;
12    }
13  DataList DataList::operator+(const
14  DataList&1ist)const{//两个数据表求和
15  double,*dd=new double[list.length()];
16    //********333********
17
18
19    //********666********
20    return DataList(list.length(),dd);
21    }
22  void DataList::show()const{//显示数据表
23    for(int i=0;i24    cout<<<",";
25    cout<26    }
27  int main(){
28  double sl[]==[]={1,2,3,4,5,6};
29  double s2[]={3,4,5,6,7,8};
30  DataList listl(6,s1),list2(6,s2);//定义两个数据表对象
31    cout<<"两个数据表:"<32    list1.show();
33    list2.show();
34    cout<35    (listl+list2).show();
36    writeToFile(" ",listl+list2);
37    return 0;
38    }

选项

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

最新回复(0)