首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang20Tsinghua。 注意:只能在函数address_change的“//***
请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang20Tsinghua。 注意:只能在函数address_change的“//***
admin
2018-09-22
35
问题
请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang20Tsinghua。
注意:只能在函数address_change的“//*******333*******”和“//*******666*******”之间填入 若干语句,不要改动程序中的其他内容。
程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//proj3.h
#include<iostream>
#include<string>
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<iostream>
#include<string>
#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<<endl;
}
Person::~Person( ){
if(address!=NULL)
delete[ ]address;
}
void main( )
{
Person p1;
p1.name_change("Zhang");
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(char*_add)的功能是地址修改,也就是说通过该函数把类的地址修改为add字符串。类的私有成员address是字符指针,因此首先要给address分配空间,通过new语句来实现:address=newchar[strlen(_add)+1];。接下来就是要复制字符串,使用系统函数strcpy,其用法为strcpy(参数1,参数2),将参数2的内容复制到参数1中。
转载请注明原文地址:https://kaotiyun.com/show/HfAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
已知:doubleA(doubleA){return++a;}和intA(inA){return++a;}是一个函数模板的两个实例,则该函数模板定义为【】
函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【】。a[0]=1;a[1]=2;swap(a,2);
已知枚举类型定义语句为:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};则下列叙述中错误的是()。
有如下程序:#include<iostream.h>usingnamespacestd;classBase{protected:inti;public:intj;}
假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()。
请定义一个函数名为fun,返回值为int,没有参数的纯虚函数的定义是______。
相对于数据库系统,文件系统的主要缺陷有数据关联性差、数据不一致性和
main函数中发生编译错误的语句是______。#include<iostream.h>classA{public:inta;constintb;A():a(10
随机试题
教育对社会发展有巨大的作用,可以决定社会的发展方向。
Therearen’tmanywildpandas______intheworldtoday.
脑出血最常见的原因是
抗原应具有的两个性质是
下列关于商业银行风险管理信息系统的表述,正确的有()。
根据公务员法规定,下列选项中,应纳入公务员管理的人员为()。
下列关于医学常识的表述,错误的是()。
从消费心理学角度讲,消费者在__________个品牌的时候,往往感性大于理性,尤其当一种品牌产品与另一种品牌产品本身的感性区别并不需要特殊的理性参与评价的时候,消费者更倾向于凭借其最__________好恶选择产品。填入划横线部分最恰当的一项是:
轻重音主要跟语音的物理属性四要素中的___________有关。(中国人民大学2016)
设((x一1)(t一1)>0,x≠t),函数f(x)由下列表达式确定,求出f(x)的连续区间和间断点,并研究f(x)在间断点处的左右极限.
最新回复
(
0
)