C++實例教學(xué)(類的應(yīng)用-02)

字號:

9.2 職員檔案管理程序
    是這一個簡化了的雇員檔案管理程序。其中把雇員的檔案數(shù)據(jù)和對這些數(shù)據(jù)的設(shè)置、修改、刪除等操作組成一個程序模塊。程序通過這個模塊----類的公有部分對檔案數(shù)據(jù)進(jìn)行處理,實現(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,它在進(jìn)行結(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()的功能是當(dāng)某雇員檔案撤消或改成另一姓名時,把原占用的字符串空間釋放掉。