Question
USE ONLY C++ #include #include using namespace std; // The declaration for class 'Student' is fully given. Do nothing to it. // As for other
USE ONLY C++
#include
#include
using namespace std;
// The declaration for class 'Student' is fully given. Do nothing to it.
// As for other classes, the declaration are partially given. Complete the rest.
class Student{
string name;
public:
Student(string n = "");
string getName() const;
void setName(string n);
void print() const;
};
class Mentor{
public:
Mentor(string n, double c);
};
class Coach{
public:
Coach(string n, double c, string e);
};
class Support{
public:
Support(string n, double c, string p);
};
class Mentee{
public:
Mentee(string n, int l);
};
//-------------------------------------------------------------------------------------------------------------
// Definition for the class 'Student' is fully given. Do nothing to it.
Student::Student(string n) : name(n) {}
string Student::getName() const { return name; }
void Student::setName(string n) { name = n; }
void Student::print() const { cout
int main()
{
return 0;
}
A school is currently running a mentoring programme for its students. The students are divided into two groups, mentors and mentees. Mentors are more knowledgeable students and offer helps to mentees. They are chosen from those students with good CPAs. The programme offers two types of mentoring: Coaching-based mentoring: mentors will coach their mentees in particular areas, e.g., C++ programming. "Game Programming", etc. Therefore, a mentor must be expert in that area. Support-based mentoring: mentors offer their supports to the mentees without having to meet face to face. Thus, the mentor need to provide their phone numbers. Further, each mentee is assigned with only one mentor. Mentee's progress are kept track based on their levels, i.e. from level 1 to 5 where 5 indicates a mastery level. Given a class diagram that models the above problem in Figure 1 and the details about the class diagram in Table 2. Answer the questions 1 to 3 below. Note: As for questions 1 and 2, write your answers on papers, and for question 3, write your program using any CHIDE such as DevCpp. Use the codebase program provided, main.cpp. Student Abbreviations: 11: name 1 level m: mentor name expertise phone P: Studentin) getName() setName() print) Mentee Mentor level Mentorin, c) printo Mentee (n.!) assignMentor(m) remove Mentor) getMentorName printo Coach Support expertise phone Coach(n. c. e) print) Support(n. c. p) printi Figure 1: Class diagram Table 2: Description of the members of each class. Class Members Description class Student Student's name. Student () A constructor. getName() and Accessor and mutator to the attribute. setName() name print() prints the student's information class Mentee level The class attribute indicating the level of pro for each mentee. There are five levels, from 1 to 5, where level 5 indicates mastery level. Mentee () A constructor assignMentor() removeMentor() getMentorName ( assigns a mentor to mentee. unassigns or removes the mentor from a mentee. returns the mentor's name of the mentee. However, if the mentee has not been assigned with any mentor, this method will return an empty string. prints the mentee's information including: name and level, mentor's details depending the type of the mentor, i.e. either a coach mentor or a support mentor. However, if the mentee has not been assigned with any mentor, a message "No mentor yet" will be printed instead. print() class Mentor Mentor() print() Mentor's cpa. A constructor. prints the mentor's information class Coach expertise The mentor's area of expertise that he or she can be coaching, e.g. "C++ Programming", "Game Programming, etc. A constructor Coach() print() prints the coach-based mentor's information including name, cpa and expertise. class Support phone Support () print() The mentor's phone number. A constructor. prints the support-based mentor's information including name, cpa and phone. Initial list of students along with their mentor #1 Mentee's Name Abdul Samad Mentee's Level : 2 Mentoring cype Coach-based Mentor's Name : Ahmad Kamal Mentor's CPA : 3.87 Mentor's Expertise : Web Programming #2 Mentee's Name : Siti Nurdiana Mentee's Level : 1 ** No mentor yet ** Output of question 3(g) #3 Mentee's Name : Jazlan Kamal Mentee's Level 1 Mentoring type : Support-based Mencor's Name : Siti Aminah Mentor's CPA : 3.98 Mentor's Phone : 013-89001000 Mentee's Name :Omar Abdullah Mentee's Level 2 Mentoring type : Coach-based Mentor's Name : Ahmad Kamal Mentor's CPA : 3.87 Mentor's Expertise : Web Programming Updated list Mentee Mentor Ahmad Kamal Output of question 3 (i) Abdul Samad Siti Nurdiana Jazlan Kamal Omar Abdullah Siti Aminah Figure 2: Program output 3. Implement the class diagram in C++. Separate the class definition from the class declaration within the same file. Accomplish the following tasks in your program. Write your code in the provided codebase program. Note that some of the code has been given in the codebase program (12 marks) (2 marks) (5 marks) (5 marks) (14 marks) a. Complete the declaration of all classes. . Define all the methods of the class Mentor. c. Define all the methods of the class Coach. d. Define all the methods of the class Support. e. Define all the methods of the class Mentee. f. In the main function, create several objects as follows: . a coach-based mentor, a support-based mentor, an array of mentees. Set the objects with the sample data given in Table 1. (6 marks) Mentoring Type Coach-based Table 1: Sample data Mentee's name Mentee's Mentor Level Abdul Samad 2 Ahmad Kamal CPA: 3.87 Expertise: Web Programming Siti Nurdiana 1 -Not assigned vet- Jazlan Kamal 1 Siti Aminah CPA: 3.98 Phone : 013-89001000 Omar Abdullah 2 Ahmad Kamal CPA: 3.87 Expertise: Web Programming Support-based Coach-based g. Using a loop, print the list of mentees you created in 3(1). The output should look like as in Figure 2. (2 marks) h. Remove or unassign the mentor from the last mentee. (1 mark) i. Using a loop, print the updated list of mentees and their mentors. Print only the names. See Figure 2 for the expected output
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started