阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。 [说明] 本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“Smith 31 2960.0”时,程序的输出是: 姓名:Smith 年龄:31 工

admin2009-02-15  32

问题 阅读以下说明C++代码,将应填入(n)处的字句写在对应栏内。
[说明]
   本程序实现了雇员信息管理功能,其中封装了雇员信息及其设置、修改、删除操作。已知当输入为“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)处则应调用析构函数.
转载请注明原文地址:https://kaotiyun.com/show/LbjZ777K
0

最新回复(0)