请打开考生文件夹下的解决方案文件proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元

admin2020-04-07  34

问题 请打开考生文件夹下的解决方案文件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{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 len,double data[]):len(fen){
      d:new double[len];
      for(int i=0; i<len;i++)
        d=(data==NULL?0.0:data);
    }
    DataList::DataList(DataList&data):len(data.len){
      d=new double[len];
      for(int i=0; i<len;i++)
      d=data.d
    }
    DataList DataList::operator+(const DataList&list)const{
    //两个数据表求和
      doubie * dd  =new double[list.length()];
    //******** 333 ********


    //******** 666 ********
        return DataList(list.length(),dd);
    }
    void DataList::show()con.st{//显示数据表
      for(int i=0;i<len一1;i++)
      cout<<d<<",";
        cout<<d[len—1]<<endl;
    }
    int msin(){
      double s1[]={1,2,3,4,5,6};
      double s2[]={3,4,5,6,7,8};
      DataList listl(6,s1),list2(6,s2);//定义两个数据表对象
      cout<<”两个数据表:”<<endl;
      list1.show();
      list2.show();
      cout<<endl<<"两个数据表之和:"<<endl;
      (listl+list2).show();
      writeToFile  (  "",  list1  +list2);
      return 0;
    }

选项

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

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

最新回复(0)