问答题 [说明] 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“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;} {{U}} (1) {{/U}}; ~ employee(){delete[] name;} }; employee::employee() { name=""; age=0; salary=0.0; void employee::set_name(char *n) { name=new char[strlen(n)+1]; {{U}}(2) {{/U}} (name,n); } void employee::print() { cout<<"姓名":"<<name<<" 年龄:"<<agc<<" 工资:" <<salary<<endl; } void main() { char *na; short ag=0; float sa=0; {{U}} (3) {{/U}}; na=new char[10]; cin>>na>>ag>>sa; emp.set_name(na); emp.set_age(ag); emp.set_salary(sa); emp.print(); {{U}} (4) {{/U}} (3500.0); emp.print(); {{U}} (5) {{/U}}; 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)处则应调用析构函数.