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

admin2017-02-21  22

问题 请使用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 namespace std;
class DataList{//数据表类
  int len;
  double *d;
public:
DataList(int len,double data[]=NULL);
  DataList(DataList&data);
  int length()const{returnlen;}
  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 len,
double data[]):len(1en){
  d=new double[len];
  for(int i=0;i<len;i++)
    d=(data==NULL?0.0:data);
}
DataList∷DataList(DataList
&data):fen(data.fen){ d=new double[len];
for(int i=0;i<len;i++)
d=data.d
}
DataList DataList∷operator+(const DataList&list)const{
//两个数据表求和
  double  * dd=new double
[list.1ength()];
    //********333********
    //********666********
    return DataList(list.length(),dd);
}
void DataList∷show()const{//显示数据表
  for(int i=0;i<len-1;i++)
  cout<<d<<",";
    cout<<d[len-1]<<end1;
  }
  int main(){
  double sl[]=(1,2,3,4,5,6};
  double s2[]={3,4,5,6,7,8);
  DataList listl(6,s1),list2
(6,s2);//定义两个数据表对象
  cout<<"两个数据表:"<<end1;
  list1.show();
  list2.show();
  cout<<end1<<"两个数据表之和:"<<end1;
  (list1+list2).show();
  writeToFile  (  "", listl+list2);
  return 0;
}

选项

答案for(int i=0;i<len;++i) //遍历对象list中的数组和d数组,把对应的值相加后放到数组dd中。 dd[i]=d[i]+list.d[i];

解析
转载请注明原文地址:https://kaotiyun.com/show/iBAp777K
0

最新回复(0)