请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang 20 Tsinghtin。 注意:只能在函数address_change

admin2020-04-07  61

问题 请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang 20 Tsinghtin。
    注意:只能在函数address_change的“//********333 ********”和“// ******** 666 ********”之间填入若干语句,不要改动程序中的其他内容。
    程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
    //proj3.h
    #include<iostream>
    #include<string>
    using namespace std;
    class Pemson{
        char name[2 0];
        int age;
        char * address;
      public:
        Person(){ age=0;address=0;}
        void name change(char * _name);
    //名字修改函数
        void age_change(int_age);
    //年龄修改函数
        void address change(char *_ add);
    //地址修改函数
      void info_isplay();
    //人员信息显示
    ~Person();
    //析构函数
    };
    void writeToFile (const char * path);

    proj 3.cpp
    #include<iostream>
    #include<siring>
    #include"proj3.h"
    using namespace std;

    void Person::name_change(char*_name)
    {
      strcpy(name,_name);
    }
    void Person::age_change(int_age)
    {
      age=_age;
    }
    void Person::address_change(char* _add)
    {
      if(address!=NULL)delete[]address;
    //******** 333 ********


    //******** 666 ********
    }
    void Person::info_display(){
      cout<<name<<’\t’ <<age<<’\t’;
      if(address!=NULL)
        cout<<address<<endl;
      cout<<end1;
    }
    Person::~Person(){
      if(address!=NULL)
        delete[]addreas;
    }
    void main()
    {
      Person p1;
      p1.name_change("Zhan9");
      p1.age_change(20);
      p1.address_change("Tsinghua UniVersity");
      p1.address_change("Tsinghua");
      p1.info_display();
      writeToFile("");
}

选项

答案address=new char[strlen(_add)+1]; //给类成员变量动态分配空间 strcpy(address,_add); //把字符串add复制给address

解析 函数address_change(chin*_add)的功能是地址修改,也就是说通过该函数把类的地址修改为add字符串。类的私有成员address是字符指针,因此首先要给address分配空间,通过new语句来实现:address=newchar[strlen(_add)+1];。接下来就是要复制字符串,使用系统函数strcpy,其用法为strcpy(参数1,参数2),将参数2的内容复制到参数1中。
转载请注明原文地址:https://jikaoti.com/ti/wPA0FFFM
0

最新回复(0)