I want all the instructions below perfectly followed with your work! Please make sure the file is separated to two files, header file (~~.h) and
I want all the instructions below perfectly followed with your work!
Please make sure the file is separated to two files, header file (~~.h) and cpp file (~~.cpp)
I have no idea where I should take it down, and I don't even know what I do not know...
please help me!!
CSIS 112 C++ PROGRAMMING: INHERITANCE AND OPERATOR OVERLOADING ASSIGNMENT INSTRUCTIONS OVERVIEW The objective of this assignment is to demonstrate an ability to implement inheritance, composition, and overloaded operators in a program. This program leverages many of the concepts that you have learned in this class and combines them into a professional-style program. INSTRUCTIONS Classes are getting to be more realistic with each programming assignment. This assignment includes the valuable aspect of inheritance to facilitate reuse of code and operator overloading to allow the usage of familiar operators tailored specically to the Person, TeamMember, and Leader classes. Composition is also demonstrated in the use of a Team class that contains objects of the TeamMember and Leader classes. You are working in the IT department for a corporation and have been tasked with developing an application that will manage the process of assigning people to a team. This process involves creating a team with a name and a purpose, the assignment of people in the team, and the assignment of a person to lead the team. TIME SAVING The assignment is more complex than previous assignments. You may put the code for each class in the class .h le and not have a .cpp le if you feel this will save you some time. Ask the professor questions early if you are having difficulty with the assignment. You will need to create several classes to maintain this information: Team, Person, TeamMember, Leader, and Date. The characteristics of TeamMember and Leader are shown below: TeamMember: Leader: ID (string) ID (string) First Name (string) First Name (string) Last Name (string) Last Name (string) Birthdate (Date) Birthdate (Date) Department (string) Division (string) Date hired (Date) Date promoted (Date) Position (string) (i.e. Programmer, Writer, etc.) Title (string) Page 1 of 10 CSIS 112 SkillLevel (string) (Entry Level, Skilled, Master) Last team lead (string) Last performance rating (double) (1.0-5.0) Annual salary (double) Several of the data members above require the use of dates. Strings will n_ot be acceptable substitutes for date fields. C++ does not have a built in data type for Date. Therefore, you may use this Date class in your program: (tip-practice with this in a separate program) #pragma once #include #include {cstdlib> #include class Date{ friend std::ostream& operator library. Main(CSIS 112 You should write a memo function that begins by prompting the user for the name, purpose, and size of the team: Enter a name 'For your Team: Product #255 Feasibility Enter the purpose for your Team: Review proposed product #255 ln'hat is the size of your Team? 3 F igure IEmer Team Information It should then present a menu to the user that looks like this: Main Menu A Add Leader T -- Add Team Member L List Team Information Q -- Quit Selection: Figure 2Mat'n Menu "T\" should allow the user to create a TeamMember record and assign the TeamMember to the Team. Likewise, \"A\" should allow the user to create a Leader record and assign the Leader member to the team as the leader. \"L \" should list ALL of the team information, including the information about each TeamMember assigned to the team, {sorted by ID number), as well as all of the information about the Leader assigned to lead the team. The user should be able to create and assign only ONE Leader to the team, but create and assign as many TeamMembers to the team as the size allows. The user should be able to list repeatedly until he or she selects \"Q\" to quit. Below are some examples of the information that needs to be entered by the user: Create and assign a leader for the team.- Page 4 of 10 Create Team Leader ID: 12345 First Name: Sam Last Name: Smith Birthdate (mm/dd/yyyy) : 01/01/1980 Division: Product Feasibilityes Title: Project Manager Last Team Led: Product #249 - Feasibility Salary: 100000 Date of Last Promotion (mm/dd/yyyy) : 01/01/2021_ Figure 3-Enter Team Leader Information Create and assign a team member to the team: Page 5 of 10CSIS 112 Create Team Member ID: 24680 First Name: Abby Last Name: Adams Birthdate (mm/dd/yyyy): 81/61/1995 Department: Graphic Arts Position (Programmer, writer, Artist, DBA, etc.): Writer Skill Level (Entry Level, Skilled, Master): Skilled Last Performance Rating (1.6 - 5.8): 4.2 Date of Hire (mm/ddfyyyy): 91!01/2615 Fig-are 4-Enter Team Member Information Team Infomatian if neither team members nor a leader has been assigned to the team: Information for Team Team Name: Product #255 - Feasibility Team Purposezkeview proposed product #255 No leader has been assigned to the team. No Team Members are assigned to the team. Press any key to continue . . . _ Figure 5- Team Information 142/ No Leader or Team Members Assigned Team Infomatien with the leader but no team members: Page 6 of 10 CSIS 112 Information for Team Team Name: Product #255 - Feasibility Team Purpose: Review proposed product #255 Leader: Leader ID: 12345 Leader Name : Sam Smith - Project Manager - Product Feasibilityes Birth Date: 1/1/1980 Date Promoted: 1/1/2021 Salary : 100000.00 Last Team Led: Product #249 - Feasibility No Team Members are assigned to the team. Press any key to continue . . . Figure 6-Display Team Information w/ No Team Members Team Information if Team Members have been assigned but no leader has been assigned: Information for Team Team Name: Product #255 - Feasibility Team Purpose: Review proposed product #255 No leader has been assigned to the team. These are the Team Members assigned to the 'Product #255 - Feasibility' Team: Team Member ID: 24680 Team Member Name: Abby Adams Birth Date: 1/1/1995 Date Hired: 1/1/2015 Department : Graphic Arts Position: Writer Skill Level: Skilled Last Performance Rating: 4. 20 Press any key to continue . Figure 7-Team Information w/ No Leader Assigned Team Information after assigning Leader and three Team Members: Page 7 of 10CSIS 112 Information for Team Team Name: Product #255 - Feasibility Team Purpose: Review proposed product #255 Leader: Leader ID: 12345 Leader Name: Sam Smith - Project Manager - Product Feasibilityes Birth Date: 1/1/1980 Date Promoted: 1/1/2021 Salary: 100000.00 Last Team Led: Product #249 - Feasibility These are the Team Members assigned to the 'Product #255 - Feasibility' Team: Team Member ID: 19999 Team Member Name: Mike Mitchel Birth Date: 1/1/1980 Date Hired: 1/1/2002 Department : Software Development Position: Programmer Skill Level: Master Last Performance Rating: 5.00 Team Member ID: 24401 Team Member Name: Jane Jackson Birth Date: 1/1/1990 Date Hired: 1/1/2012 Department : Database Position: DBA Skill Level: Skilled Last Performance Rating: 4.80 Team Member ID: 24680 Team Member Name : Abby Adams Birth Date: 1/1/1995 Date Hired: 1/1/2015 Department : Graphic Arts Position: Writer Skill Level: Skilled Last Performance Rating: 4.26 Press any key to continue . . Figure 8-Team Information After All Members Assigned [Notice that the Team Members are sorted by IDs in the output above.] Output if the team already has a leader assigned: A leader has already been selected for this team. Operation cancelled. Press any key to continue . . . Figure 9-Team Leader Already Assigned Output if the team has all members and the user tries to add another member: Page 8 of 10CSIS 112 The team is full. No more team members can be assigned. Press any key to continue . Figure 10-All Team Members Already Assigned There are several things to point out about the output: 1. For each TeamMember, the first name and last name are output on the same line, separated by a space. 2. For the Leader, the format should be this: first name [space] last name [dash] title [dash] division 3. All of the data should line up in neat columns as shown above. Other helpful hints: Use good coding style and principles for all code and input/output formatting. All data in a class must be private (not public nor protected). You may find the tokenizeDate function below to be useful in reading in and manipulating dates. Using the strtok_s function that you learned in a previous assignment, you can read in Date values as a character array, and then tokenize each part into a meaningful day, month, and year that can be used to initialize a Date variable: void someFunction() //example function that uses tokenizeDate int m, d, y; char charDate[20]; //holds the date the user entered in char array Date realDate; //date object; holds date after tokenization std::cout > charDate; tokenizeDate(charDate, m, d, y); //separates char array into month, day, and year realDate.setDate(d, m, y); //sets the date of the object using the parsed values void tokenizeDate(char* cDate, int& month, int& day, int& year) char seps = "/"; char* token = NULL; char* next_token = NULL; token = NULL; next token = NULL; // Establish string and get the tokens: token = strtok_s(cDate, seps, &next_token); month = atoi(token); token = strtok_s(NULL, seps, &next_token); day = atoi(token); token = strtok_s(NULL, seps, &next_token); year = atoi(token); } You can put tokenizeDate in any class that you deem appropriate. In my solution, I put it in the Team class where I prompted for all of the information for TeamMember and Leader members. Page 9 of 10CSIS 112 Helpful resources located under C++ Programming: Inheritance and Operator Overloading Resources:: Inheritance: I C++ Inheritance I Friendship and inheritance a Inheritance in C++ Operator Overloading: v I-Iovir to Overload Operators in C++ I C++ Operator Overloading Deliverables: 0 Complete the programming assignment described above and submit your completed assignment in accordance with the lab submission policies
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