首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang20Tsinghua。 注意:只能在函数address_change的“//***
请打开考生文件夹下的解决方案文件proj3,其中声明的是一个人员信息类,补充编制程序,使其功能完整。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:Zhang20Tsinghua。 注意:只能在函数address_change的“//***
admin
2018-09-22
24
问题
请打开考生文件夹下的解决方案文件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://jikaoti.com/ti/Sht0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序的输出结果是【】#include<iostream>usingnamespacestd;intmain(){intnum=500;int&ref=num;ref
函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的语句后,a[0]和a[1]的值分别为【】。a[0]=1;a[1]=2;swap(a,2);
有如下类声明:classTestClassinti;private:intj;protected:intk;public:intm,n;其中,私有成员的数量为()。
重新定义标识符的作用域规定是外层变量被隐藏,______变量是可见的。
已知n是一个int型变量,下列语句中错误的是()。
main函数中发生编译错误的语句是______。#include<iostream.h>classA{public:inta;constintb;A():a(10
二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是______。
以下定义数组中错误的是
程序的3种基本控制结构是
随机试题
要做一个容积为V的圆柱形带盖容器,问它的高与底面半径的比值是多少时用料最省?
A.低钙血症B.全氨基酸尿C.高磷血症D.高钾血症E.低氯血症
治疗乳牙的目的()
35岁女性,性交后阴道流血2个月,妇科检查见宫颈中度糜烂状,宫颈活组织检查示异型细胞占据上皮层的下1/3~2/3,应如何处置
以下说法不正确的有()。
某社区居委会主任正在召集会议,与几位居民代表就开发社区服务项目进行商讨。会上,有位居民代表提议,居委会可以通过开展自筹性公益项目来筹集资金,并在社区开展盈利性社区服务,赚取利润来补贴居委会成员:另一位居民代表认为,社区只能针对老人、残疾人和贫困家庭等弱势群
根据我国劳动合同法的规定,三年以上固定期限和无固定期限的劳动合同,试用期不得超过:()
数据库运行环境和参数的调整是数据库优化的重要工作。下列关于此项工作的说法,错误的是()。
Tosaysomething______onething,andtodoit______another.
【B1】【B6】
最新回复
(
0
)