-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFaculty.cpp
More file actions
150 lines (127 loc) · 3.04 KB
/
Faculty.cpp
File metadata and controls
150 lines (127 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
//Ewan Shen
//2396486
//ewshen@chapman.edu
//Michael Smith
//2396546
//michsmith@chapman.edu
//CPSC-350-01
//PA5
//describes the attributes of a faculty object
//including the faculty's id, name, level, department, and list of advisees' id
#include "Faculty.h"
#include <iostream>
#include <cstdlib>
//default constructor
Faculty::Faculty(){
m_ID = 0;
m_name = "";
m_level = "";
m_department = "";
m_adviseesID = new DblList<int>();
}
//constructor
Faculty::Faculty(int id, string name, string level, string department){
m_ID = id;
m_name = name;
m_level = level;
m_department = department;
m_adviseesID = new DblList<int>();
}
//destructor
Faculty::~Faculty(){
}
// accessors
int Faculty::getID(){
return m_ID;
}
string Faculty::getName(){
return m_name;
}
string Faculty::getLevel(){
return m_level;
}
string Faculty::getDepartment(){
return m_department;
}
// mutators
void Faculty::setID(int id){
m_ID = id;
}
void Faculty::setName(string name){
m_name = name;
}
void Faculty::setLevel(string level){
m_level = level;
}
void Faculty::setDepartment(string department){
m_department = department;
}
void Faculty::addStudent(int id){
m_adviseesID->addBack(id);
}
void Faculty::removeStudent(int id){
m_adviseesID->removeElement(id);
}
DblList<int>* Faculty::getAdviseesID(){
return m_adviseesID;
}
//overloaded operators
//simplifies code by overloading the operator and directly comparing two faculty objects
//standard comparison operations are implemented (greater than, less than, equal to, etc...)
//the faculy IDs are compared
bool operator>(Faculty& a, Faculty& b){
if (a.getID() > b.getID()){
return true;
}else{
return false;
}
}
bool operator<(Faculty& a, Faculty& b){
if (a.getID() < b.getID()){
return true;
}else{
return false;
}
}
bool operator>=(Faculty& a, Faculty& b){
if (a.getID() >= b.getID()){
return true;
}else{
return false;
}
}
bool operator<=(Faculty& a, Faculty& b){
if (a.getID() <= b.getID()){
return true;
}else{
return false;
}
}
bool operator==(Faculty& a, Faculty& b){
if (a.getID() == b.getID()){
return true;
}else{
return false;
}
}
bool operator!=(Faculty& a, Faculty& b){
if (a.getID() != b.getID()){
return true;
}else{
return false;
}
}
//overloaded operator
//directly prints the information of the faculty when the operator is called upon
ostream& operator<<(ostream& os, Faculty& f)
{
os << "Faculty ID: " << f.getID() << "\n";
os << "Faculty Name: " << f.getName() << "\n";
os << "Faculty Level: " << f.getLevel() << "\n";
os << "Faculty Department: " << f.getDepartment() << "\n";
os << "Faculty Advisees' IDs:\n";
DblList<int>* advisees = f.getAdviseesID();
advisees->log(os);
os << std::endl;
return os;
}