请使用菜单命令或直接用VC6打开考生文件夹下的工程prj03。请完善下列程序,实现一个Number类。Add函数计算2个Number类对象之和,并将和作为Number对象返回。这2个Number对象中各包含一个用字符串表示的10进制正整数,均不超过int的

admin2021-06-10  51

问题 请使用菜单命令或直接用VC6打开考生文件夹下的工程prj03。请完善下列程序,实现一个Number类。Add函数计算2个Number类对象之和,并将和作为Number对象返回。这2个Number对象中各包含一个用字符串表示的10进制正整数,均不超过int的表示范围。在main函数中给出了一组测试数据,使用这组数据进行测试时程序的输出应该是:100
    注意:只需在//********333********和//********666********之间填人所编写的若干语句,不要改动程序中的其他内容。
    1  #include
    2  #include
    3  #include
    4  #include"proj3.h"
    5  using namespace std;
    6  Number::Number(char*n){
    7    num=new char[strlen(n)+1];
    8    strcpy(num,n);
    9  }
    i0  Number::Number(Number&n){
    11    num=new char[strlen(n.num)+1];
    12    strcpy(num,n.num);
    13  }
    14  Number::Number(int n){
    15    char*tmp=new char[30];
    16    itoa(n,tmp,10);  //函数itoa的功能是将n转换为字符串,存放于tmp指向的数组中
    17    num=new char[strlen(tmp)+1];
    18    strcpy(num,tmp);
    19    }
    20  Number::~Number(){
    21    if(num)
    22 delete[]num;
    23  }
    24  Number Number::Add(Number n){
    25    //****333****
    26
    27
    28    //*******666*******
    29  }
    30 int main(){
    31   Number numl("32");
    32    Number num2("68");
    33    Number&num3=numl.Add(nurn2);
    34    cout<    35    writeToFile("c:\test\");
    36    return 0;
    37  }
    1  //proj3\proj3.h
    2  class Number {
    3  private:
    4    char*num;//具体数字,num[0]表示最高位的数
    5   public:
    6    ~Number();
    7    Number(char*n);
    8    Number(Number&n);
    9    Number(int n);
    10    Number Add(Number n);
    11    char*GetNum(){return num;}
    12    };
    13  void writeToFile(const char*path);

选项

答案1 int i=atoi(hum); 2 int j=atoi(n.GetNum()); 3 retum Numt)er(i+i);

解析 主要考查考生对库函数、对象成员和构造函数使用的掌握情况,函数Add的功能是将函数参数n与自身相加,返回相加后的Number对象,Number类中成员字符串num是用来表示十进制的整数,所以将两个Number相加需要首先将字符串num转化为整数,这里需要使用库函数atoi,将调用对象的num和对象n的num转化为十进制整数i,j,在转化对象n的num成员时,由于num是Number类的私有成员,所以不能直接使用,而应该通过成员函数GetNum()返回num;得到十进制数i、j后,再用i与j的和构造成Number对象,所以需要使用Number的参数为整数的构造函数,即Number(int i),构造Number对象后返回。
转载请注明原文地址:https://kaotiyun.com/show/l0fp777K
0

最新回复(0)