home *** CD-ROM | disk | FTP | other *** search
/ C++ for Dummies (3rd Edition) / C_FD.iso / CHAP18 / CHAP18_1.CPP next >
C/C++ Source or Header  |  1996-09-15  |  1KB  |  70 lines

  1. // Chap18_1.cpp
  2. #include <string.h>
  3. #include <iostream.h>
  4.  
  5. class Advisor
  6. {
  7. };
  8.  
  9. class Student
  10. {
  11.   public:
  12.    Student(char *pName = "no name") 
  13.    {
  14.      strncpy(name, pName, sizeof(name));
  15.         average = semesterHours = 0;
  16.    }
  17.    void addCourse(int hours, float grade)
  18.    {
  19.       average = (semesterHours * average + grade);
  20.       semesterHours += hours;
  21.       average = average / semesterHours;
  22.    }
  23.    int  hours( ) { return semesterHours;}
  24.    float gpa( )  { return average;}
  25.  
  26.    float calcTuition()
  27.    {
  28.       cout << "In Student calcTuition\n";
  29.       return 0.0F;
  30.    }
  31.  
  32.   protected:
  33.    char  name[40];
  34.    int   semesterHours;
  35.    float average;
  36. };
  37.  
  38. class GraduateStudent : public Student
  39. {
  40.   public:
  41.    GraduateStudent(char *pName,
  42.                    Advisor &adv) : Student(pName),
  43.                                    advisor(adv)
  44.    {
  45.       qualifierGrade = 0;
  46.    }
  47.  
  48.    qualifier( ) { return qualifierGrade;};
  49.  
  50.    float calcTuition()
  51.    {
  52.       cout << "In Student calcTuition\n";
  53.       return 0.0F;
  54.    }
  55.  
  56.   protected:
  57.    Advisor advisor;
  58.    int qualifierGrade;
  59. };
  60.  
  61. int main()
  62. {
  63.    Student s;
  64.    Advisor advisor;
  65.    GraduateStudent gs("No Name", advisor);
  66.    s.calcTuition();        //calls Student::calcTuition()
  67.    gs.calcTuition();       //calls GraduateStudent::calcTuition()
  68.    return 0;
  69. }
  70.