Hierarchical
Inheritance – Can
have more than two types of Inheritance.
Example : Salary class derived
from Leave class and Loan class where Loan class derived from Employee class.
Therefore, single and multiple inheritance used for this program.
#include
<iostream.h>
  class
Employee
      {
          protected:
             int
ecode;
             char
ename[30];
          public:
             void
getData()
                 {
                      cout<<"\n\tEnter
Employee Code : ";
                      cin>>ecode;
                      cout<<"\n\tEnter
Employee Name : ";
                      cin>>ename;
                 }
          void
ShowData()
             {
                 cout<<"\n\tEmployee
Code : "<<ecode;
                 cout<<"\n\tEmployee Name :
"<<ename;
             }
      };
  class
Loan:public Employee
      {
          protected:
             float
Lamt,EMI;
          public:
             Loan()
                 {
                      Lamt=EMI=0;
                 }
             void
getLoan()
                 {
                      cout<<"\n\tEnter
Loan Amount :";
                      cin>>Lamt;
                      cout<<"\n\tEnter
EMI % : ";
                      cin>>EMI;
                 }
             void
ShowLoan()
                 {
                     cout<<"\n\tLoan
Taken  : "<<Lamt;
                      cout<<"\n\tEMI
Deducted : "<<Lamt*.1;
                 }
      };
  class
Leave
      {
          protected:
             int
CL,ML,OTH;
          public:
             Leave()
                 {
                      CL=ML=OTH=0;
                 }
             void
getLeave()
                 {
                     cout<<"\n\tEnter
Causual Leave : ";
                      cin>>CL;
                      cout<<"\n\tEnter
Medical Leave : ";
                      cin>>ML;
                      cout<<"\n\tEnter
Other Leave : ";
                      cin>>OTH;
                 }
             void
ShowLeave()
                 {
                      cout<<"\n\tCausual
Leave : "<<CL;
                      cout<<"\n\tMedical
Leave : "<<ML;
                      cout<<"\n\tOther
Leave : "<<OTH;
                 }
      };
  class
Salary : public Loan,public Leave
      {
          protected:
             float
wage,sal,ded,tax;
             int
day;
          public:
             void
getWage()
                 {
                      cout<<"\n\tEnter
Days Worked : ";
                      cin>>day;
                      cout<<"\n\tEnter
Wage : ";
                      cin>>wage;
                 }
             void
CalDed()
                 {
                      sal=day*wage;
                      if(CL>15)
                         {
                              ded=sal-(CL-15)*wage;
                         }
                      if(ML>30)
                         {
                              ded=sal-(ML-30)*wage;
                         }
                      ded=OTH*wage+(Lamt*EMI/100.0);
                      tax=(((sal*12)-200000)*0.1)/12.0;
                 }
             void
ShowSalary()
                 {
                      cout<<"\n\tSalary
: "<<sal;
                      cout<<"\n\tTax
: "<<tax;
                      cout<<"\n\tOther
Deduction : "<<ded;
                      cout<<"\n\tNet
Pay : "<<sal-(ded+tax);
                 }
      };
  int
main()
      {
          Salary
sl;
          sl.getData();
          sl.getLoan();
          sl.getLeave();
          sl.getWage();
          sl.ShowData();
          sl.ShowLoan();
          sl.ShowLeave();
          sl.CalDed();
          sl.ShowSalary();
          return
0;
      }
 
 
 
No comments:
Post a Comment