An educational institution wishes to maintain a database of its employees. The database is divided into number of classes whose hierarchical relationships are shown in below figure. The figure also shows minimum information required for each class. Specify all the classes and define functions to create the database and retrieve individual information as and when required.

 


#include<iostream>
using namespace std;
class staff
{
    protected:
            int code;
            string name;
    public:
            void setdata()
            {
                cout<<"enter the code : "<<endl;
                cin>>code;
                cout<<"enetr the name : "<<endl;
                cin>>name;
            }
};

class teacher : public staff
{
    private:
            string sub;
            string publication;
    public:
            void getdata();
            void showdata();
};

void teacher :: getdata()
{
    setdata();
    cout<<"enter the sub of teacher : "<<endl;
    cin>>sub;
    cout<<"enter the publication : "<<endl;
    cin>>publication;
}

void teacher :: showdata()
{
    cout<<"code            : "<<code<<endl;
    cout<<"name of teacher : "<<name<<endl;
    cout<<"sub of teacher  : "<<sub<<endl;
    cout<<"publication of teacher  : "<<publication<<endl;
}

class officer : public staff
{
    private:
            char grade;
    public:
            void getdata();
            void showdata();
};

void officer :: getdata()
{
    setdata();
    cout<<"enter the grade of officer : A, B, C, D :"<<endl;
    cin>>grade;
}

void officer :: showdata()
{
    cout<<"code             : "<<code<<endl;
    cout<<"name of officer  : "<<name<<endl;
    cout<<"grade of officer : "<<grade<<endl;
}

class typist : public staff
{
    protected:
            int speed;
    public:
            void getdata();
            void showdata();
};

void typist :: showdata()
{
    cout<<"code            : "<<code<<endl;
    cout<<"name of typist  : "<<name<<endl;
    cout<<"speed of typist : "<<speed<<" wps "<<endl;
}

void typist :: getdata()
{
    setdata();
    cout<<"enter the speed of typing in wps "<<endl;
    cin>>speed;
}

class regualar : public typist
{
    public:
    private:
        //    void display();
};


class casual : public typist
{
    private:
            int daily_wages;
    public:
            void set();
            void display();
};

void casual :: set()
{
    getdata();
    cout<<"enter the daily wages of casual typer : "<<endl;
    cin>>daily_wages;
}

void casual :: display ()
{
    showdata();
    cout<<"daily wages of casual typer : "<<daily_wages<<" Rs."<<endl;
}

int main()
{
    staff member;
    int i;
    cout<<"choose any staff member : \n1. Teacher\n2. Officer\n3. Typist "<<endl;
    cin>>i;
    if(i==1)
    {
        teacher mem;
        // mem.setdata();
        mem.getdata();
        mem.showdata();
    }

    if(i==2)
    {
        officer mem;
        // mem.setdata();
        mem.getdata();
        mem.showdata();
    }

    else if(i==3)
    {
        typist mem;
        int t;
        cout<<"choose typer type : \n1. Regular\n2. casual "<<endl;
        cin>>t;
        if(t==1)
        {
            regualar m;
            m.getdata();
            m.showdata();
        }

        else if(t==2)
        {
            casual m;
            m.set();
            m.display();
        }
    }
}

output :

choose any staff member : 1. Teacher 2. Officer 3. Typist 2 enter the code : 342 enetr the name : Rahul enter the grade of officer : A, B, C, D : B code : 342 name of officer : Rahul grade of officer : B


Comments

Popular Post

Write the definition for a class called complex that has floating point data members for storing real and imaginary parts. The class has the following member functions: void set(float, float) to set the specified value in object void disp() to display complex number object complex sum(complex) to sum two complex numbers & return complex number 1. Write the definitions for each of the above member functions. 2. Write main function to create three complex number objects. Set the value in two objects and call sum() to calculate sum and assign it in third object. Display all complex numbers.

Assume that a bank maintains two kinds of accounts, are called as saving account and current account. The saving account provides compound interest and withdrawal facilities but no cheque book facility. The current account provides cheque book facility but no interest. Current account holders should also maintain a minimum balance and if the balance falls below the level, a service charge is imposed. Create a class account that stores customer name, account number and type of account. From this derive the classes cur_acct and sav_acct to make them more specific to their requirements. Include necessary member functions in order to achieve the following tasks: a.Include constructor for all the three classes. b.Accept deposit amount from the customer and update the balance. c.Display the balance. d.Compute and deposit interest. e.Permit withdrawal and update the balance. f. Check for minimum balance, impose penalty, necessary and update the balance.