9.2 職員檔案管理程序
是這一個簡化了的雇員檔案管理程序。其中把雇員的檔案數(shù)據(jù)和對這些數(shù)據(jù)的設(shè)置、修改、刪除等操作組成一個程序模塊。程序通過這個模塊----類的公有部分對檔案數(shù)據(jù)進行處理,實現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的“封裝”功能。
// program 6_2.cpp
#include
#include
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;}
void print();
~employee(){delete[]name;}
};
employee::employee()
{
name=0;
age=0;
salary=0.0;
}
void employee::set_name(char *n)
{
name=new char[strlen(n)+1];
strcpy(name,n);
}
void employee::print()
{
cout<<"Name: "< cout<<"Age: " }
void main()
{
char *na=0;
short ag=0;
float sa=0;
na=new char[10];
employee emp[5];
for(int i=0;i<5;i++)
{
cin>>na;
cin>>ag;
cin>>sa;
emp[i].set_name(na);
emp[i].set_age(ag);
emp[i].set_salary(sa);
emp[i].print();
}
emp[3].set_salary(5100.0);
emp[3].print();
emp[1].~employee();
cin>>na;
emp[1].set_name(na);
emp[1].set_age(23);
emp[1].set_salary(2000.0);
emp[1].print();
}
說明:
這是一個簡化的雇員檔案管理程序,其中5~33行定義了一個employee類,它包含了一個雇員的檔案數(shù)據(jù),及對這些數(shù)據(jù)的若干處理函數(shù)。
構(gòu)造函數(shù)employee,它在進行結(jié)象說明時被自動調(diào)用。這時創(chuàng)建的是一個雇員的空檔案。
第39行說明的是一個對象數(shù)組,一次建立了五個雇員的空檔案。
set_name(),set_age(),set_salary()三個函數(shù)可用來為雇員檔案填 入姓名、年齡、工資。其中填 入姓名時要創(chuàng)建一個長度為該姓名字符串長度+1的字符數(shù)組,以便以字符串形式存放該雇員的姓名。
print()函數(shù)的功能是輸出該雇員的檔案內(nèi)容。
析構(gòu)函數(shù)~employee()的功能是當某雇員檔案撤消或改成另一姓名時,把原占用的字符串空間釋放掉。
是這一個簡化了的雇員檔案管理程序。其中把雇員的檔案數(shù)據(jù)和對這些數(shù)據(jù)的設(shè)置、修改、刪除等操作組成一個程序模塊。程序通過這個模塊----類的公有部分對檔案數(shù)據(jù)進行處理,實現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的“封裝”功能。
// program 6_2.cpp
#include
#include
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;}
void print();
~employee(){delete[]name;}
};
employee::employee()
{
name=0;
age=0;
salary=0.0;
}
void employee::set_name(char *n)
{
name=new char[strlen(n)+1];
strcpy(name,n);
}
void employee::print()
{
cout<<"Name: "<
void main()
{
char *na=0;
short ag=0;
float sa=0;
na=new char[10];
employee emp[5];
for(int i=0;i<5;i++)
{
cin>>na;
cin>>ag;
cin>>sa;
emp[i].set_name(na);
emp[i].set_age(ag);
emp[i].set_salary(sa);
emp[i].print();
}
emp[3].set_salary(5100.0);
emp[3].print();
emp[1].~employee();
cin>>na;
emp[1].set_name(na);
emp[1].set_age(23);
emp[1].set_salary(2000.0);
emp[1].print();
}
說明:
這是一個簡化的雇員檔案管理程序,其中5~33行定義了一個employee類,它包含了一個雇員的檔案數(shù)據(jù),及對這些數(shù)據(jù)的若干處理函數(shù)。
構(gòu)造函數(shù)employee,它在進行結(jié)象說明時被自動調(diào)用。這時創(chuàng)建的是一個雇員的空檔案。
第39行說明的是一個對象數(shù)組,一次建立了五個雇員的空檔案。
set_name(),set_age(),set_salary()三個函數(shù)可用來為雇員檔案填 入姓名、年齡、工資。其中填 入姓名時要創(chuàng)建一個長度為該姓名字符串長度+1的字符數(shù)組,以便以字符串形式存放該雇員的姓名。
print()函數(shù)的功能是輸出該雇員的檔案內(nèi)容。
析構(gòu)函數(shù)~employee()的功能是當某雇員檔案撤消或改成另一姓名時,把原占用的字符串空間釋放掉。