//
// NAME
// person.cpp
//
// DESCRIPTION
// This file contains the function definitions for the member
// functions of the person class and global functions which are
// related to the person class.
//
// For descriptions of the parameters and return values,
// see person.h.
//
//
// Include files.
//
#include <iostream.h>
#include <string.h>
#include "bool.h"
#include "person.h"
//
// NAME
// person::readName
//
// DESCRIPTION
// This function reads the name of the person.
//
void person::readName() {
cout << "Enter the person's name (up to " << person::nameLen << " characters): ";
cin >> name;
}
//
// NAME
// person::displayName
//
// DESCRIPTION
// This function displays the name of a person.
//
void person::displayName() const {
cout << "Name: " << name << endl;
}
//
// NAME
// academic::readDept
//
// DESCRIPTION
// This function reads the department of an academic.
//
void academic::readDept() {
cout << "Enter the department (up to " << academic::deptLen << " characters): ";
cin >> dept;
}
//
// NAME
// academic::displayDept
//
// DESCRIPTION
// This function displays the department of an academic.
//
void academic::displayDept() const {
cout << "Department: " << dept << endl;
}
//
// NAME
// industry::readCompany
//
// DESCRIPTION
// This function reads the company name of an industry.
//
void industry::readCompany() {
cout << "Enter the company name (up to " << industry::companyLen << " characters): ";
cin >> company;
}
//
// NAME
// industry::displayCompany
//
// DESCRIPTION
// This function displays the company name of an industry.
//
void industry::displayCompany() const {
cout << "Company: " << company << endl;
}
//
// NAME
// employee::readSalary
//
// DESCRIPTION
// This function reads the salary of an employee.
//
void employee::readSalary() {
cout << "Enter the salary (integer): ";
cin >> salary;
}
//
// NAME
// employee::displaySalary
//
// DESCRIPTION
// This function display the salary of an employee.
//
void employee::displaySalary() const {
cout << "Salary: " << salary << endl;
}
//
// NAME
// student::student
//
// DESCRIPTION
// This is the copy constructor for a student.
//
student::student(const student& s) {
strcpy(name, s.name);
strcpy(dept, s.dept);
}
//
// NAME
// student::clone
//
// DESCRIPTION
// This function clones a student.
//
person * student::clone() const {
return new student(*this);
}
//
// NAME
// student::read
//
// DESCRIPTION
// This function reads the information of a student.
//
void student::read() {
person::readName();
academic::readDept();
}
//
// NAME
// student::display
//
// DESCRIPTION
// This function displays the information of a student.
//
void student::display() const {
cout << endl << "STUDENT" << endl;
person::displayName();
academic::displayDept();
}
//
// NAME
// instructor::instructor
//
// DESCRIPTION
// This is the copy constructor for a instructor.
//
instructor::instructor(const instructor& i) {
strcpy(name, i.name);
strcpy(dept, i.dept);
salary = i.salary;
}
//
// NAME
// instructor::clone
//
// DESCRIPTION
// This function clones an instructor.
//
person * instructor::clone() const {
return new instructor(*this);
}
//
// NAME
// instructor::read
//
// DESCRIPTION
// This function reads the information of an instructor.
//
void instructor::read() {
employee::readName();
employee::readSalary();
academic::readDept();
}
//
// NAME
// instructor::display
//
// DESCRIPTION
// This function displays the information of an instructor.
//
void instructor::display() const {
cout << endl << "INSTRUCTOR" << endl;
employee::displayName();
employee::displaySalary();
academic::displayDept();
}
//
// NAME
// programmer::programmer
//
// DESCRIPTION
// This is the copy constructor for a programmer.
//
programmer::programmer(const programmer& p) {
strcpy(name, p.name);
strcpy(company, p.company);
salary = p.salary;
}
//
// NAME
// programmer::clone
//
// DESCRIPTION
// This function clones a programmer.
//
person * programmer::clone() const {
return new programmer(*this);
}
//
// NAME
// programmer::read
//
// DESCRIPTION
// This function reads the information of a programmer.
//
void programmer::read() {
employee::readName();
employee::readSalary();
industry::readCompany();
}
//
// NAME
// programmer::display
//
// DESCRIPTION
// This function displays the information of a programmer.
//
void programmer::display() const {
cout << endl << "PROGRAMMER" << endl;
employee::displayName();
employee::displaySalary();
industry::displayCompany();
}
//
// End of file.
//