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

admin2019-03-05  23

问题 请使用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已经编译为0bj文件,并且在本程序中调用。
  //DataList,h
  #include
  using namespace std;
  class DataList{//数据表类
    int fen;
    double*d;
public:
  DataList(int len,double data[]=
NULL);
    DataList(DataList&data);
    int length()const{return len;)
    double getElement(int i)const{return d;}
  DataList operator+(const DataList&
list)const;//两个数据表求和
  void show()const;//显示数据表
    };
    void  writeToFile  (char  *,    const
    DataList&);
    //main.cpp
    #include"DataList.h"
    DataList::DataList(int fen,double
    data[]):len(len){
  d=new double[1en];
  for(int i=0;i    d=(data==NULL?0.0:data
  );
  }
  DataList::DataList(DataList:&data):
  len(data.len){
  d=new double[len];
  for(int i=0;i  d=data.d
    }
    DataList Data.List:::operator+(const
    DataList&list;)const {//两个数据表求和
  double*dd=new double[list.
length()];
    //********333********
    //********666********
    return DataList;(list.length(),rid);
    }
    void DataList:::show()const{//显示数据表
  for(int:i=0;i  cout<<<”,”;
    cout:<  }
  int main(){
  double sl[]={1,2,3,4,5,6};
  double s2[]==f3,4,5,6,7,8};
  DataList;list1(6,s1),list2(6,
s2);//定义两个数据表对象
    cout:<<”两个数据表:”<    list1.show();
    liSt2.show();
    cout;<endl;
    (1istl+list2).show();
    writeToFile(””,listl+list2);
    return 0;
    }

选项

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

最新回复(0)