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

admin2021-02-22  31

问题 请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang 20 Tsinghua。
    注意:只能在函数address_change的“//*******333*******”和“//*******666*******”之间填入若干语句,不要改动程序中的其他内容。
    程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//proj3.h
#include
#include
using namespace std;
Class Person{
    char name[20];
    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_display();
//人员信息显示
    ~Person();
///析构函数
};
void writeToFile(conSt char*path);

proj3.cpp
#include
#include
#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<    <  if(addresS!=NULL)
    cout<  cout<}
Person::~Person(){
  if(address!=NULL)
    delete[]address ;
}
void msin()
  PerSon p1;
  p1.name change("Zhang");
  p1.age change(20);
  p1.address_change("Tsing-hua University");
  p1.address~change("Tsing-hua");
  p1.info_di splay();
  writeToFiie(" ");
}

选项

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

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

最新回复(0)