C++ Class Inheritance with Employees

Description

C++ Class Inheritance with Employees

#include <iostream>
using namespace std;
const int LEN = 80;           //maximum length of names
class Student/*  w  ww.  j  ava  2s. c  om*/
{
   private:
   char school[LEN];       //name of school or university
   char degree[LEN];       //highest degree earned
   public:
   void getedu()
   {
      cout << "   Enter name of school or university: ";
      cin >> school;
      cout << "   Enter highest degree earned \n";
      cout << "   (Highschool, Bachelor's, Master's, PhD): ";
      cin >> degree;
   }
   void putedu() const
   {
      cout << "\n   School or university: " << school;
      cout << "\n   Highest degree earned: " << degree;
   }
};
class Employee
{
   private:
   char name[LEN];         //Employee name
   unsigned long number;   //Employee number
   public:
   void getdata()
   {
      cout << "\n   Enter last name: "; cin >> name;
      cout << "   Enter number: ";      cin >> number;
   }
   void putdata() const
   {
      cout << "\n   Name: " << name;
      cout << "\n   Number: " << number;
   }
};
class Manager : private Employee, private Student  //management
{
   private:
   char title[LEN];        //"vice-president" etc.
   double dues;            //golf club dues
   public:
   void getdata()
   {
      Employee::getdata();
      cout << "   Enter Name:  ";          cin >> title;
      cout << "   Enter golf club dues: "; cin >> dues;
      Student::getedu();
   }
   void putdata() const
   {
      Employee::putdata();
      cout << "\n   Name:  " << title;
      cout << "\n   Golf club dues: " << dues;
      Student::putedu();
   }
};
class Scientist : private Employee, private Student  //Scientist
{
   private:
   int pubs;     //number of publications
   public:
   void getdata()
   {
      Employee::getdata();
      cout << "   Enter number of pubs: "; cin >> pubs;
      Student::getedu();
   }
   void putdata() const
   {
      Employee::putdata();
      cout << "\n   Number of publications: " << pubs;
      Student::putedu();
   }
};
class Programmer : public Employee
{
};
int main()
{
    Manager m1;
    Scientist s1, s2;
    Programmer l1;
    cout << endl;
    cout << "\nEnter data for Manager 1";    //get data for
    m1.getdata();                            //several Employees
    cout << "\nEnter data for Scientist 1";
    s1.getdata();
    cout << "\nEnter data for Scientist 2";
    s2.getdata();
    cout << "\nEnter data for Programmer 1";
    l1.getdata();
    cout << "\nData on Manager 1";           //display data for
    m1.putdata();                            //several Employees
    cout << "\nData on Scientist 1";
    s1.putdata();
    cout << "\nData on Scientist 2";
    s2.putdata();
    cout << "\nData on Programmer 1";
    l1.putdata();
    cout << endl;
    return 0;
}



PreviousNext

Related