问题 问答题

[说明] 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是: 姓名:Smith 年龄:31 工资:2960 姓名:Smith 年龄:31 工资:3500 姓名:Mary 年龄:23 工资:2500[C++程序]#include <iostream.h>#include <string.h>class employee{ char *name; //雇员姓名 short age; //年龄 float salary;//工资 public:employee();void set_name(char *);void set_age(short a) {age=a;}void set_salary(float s) {salary=s;} (1) ;~ employee(){delete[] name;}};employee::employee() { name=""; age=0; salary=0.0;void employee::set_name(char *n){ name=new char[strlen(n)+1]; (2) (name,n);}void employee::print(){ cout<<"姓名":"<<name<<" 年龄:"<<agc<<" 工资:" <<salary<<endl;}void main(){ char *na; short ag=0; float sa=0; (3) ; na=new char[10]; cin>>na>>ag>>sa; emp.set_name(na); emp.set_age(ag); emp.set_salary(sa); emp.print(); (4) (3500.0); emp.print(); (5) ; emp.set_name("Mary"); emp.set_age(23); emp.set_salary(2500.0); emp.print();}

答案

参考答案:

解析:(1) void print() (2) strcpy (3) employee emp (4) emp.set_salary (5)emp.~employee() 程序定义了一个employee类,它包含了一个雇员的档案数据,及对这些数据的若干处理函数:构造函数employee创建一个雇员空档案;set_name(),set_age ()和set_salary()分别用来为雇员档案填入姓名、年龄和工资;print()函数的功能是输出该雇员的档案内容;析构函数~employee()的功能是当某雇员档案撤销或改成另一姓名时,释放原数据占用的空。(1)此处应声明print函数;(2)此处应调用字符申拷贝函数,以更改name属性的值;(3)此处显然应声明emp变量;(4)~(5):由程序的输出可知(4)处重新设置了emp变量salary属性的值,(5)处则应调用析构函数.

解答题
单项选择题 B1型题