Introduction Throughout your career in software development, you will develop and maintain new and existing applications. You will be expected to fix issues as well as add new enhancements or migrate...

1 answer below »
I have the file with the info



Introduction Throughout your career in software development, you will develop and maintain new and existing applications. You will be expected to fix issues as well as add new enhancements or migrate existing applications to new platforms or different programming languages. As a software developer, your role will be to create a design of an application based on given business requirements. After the design is completed, you must implement the application based on the design document and provided requirements. In this assessment, you will create a C++ application based on the scenario below. The skills you demonstrate in your completed application will be useful in responding to technical interview questions for future employment. This application may also be added to your portfolio to show to future employers. This project will require an integrated development environment (IDE). You must use either Visual Studio or Eclipse for this assessment. Directions for accessing these IDEs can be found in the attached “IDE Instructions.” Your submission should include a zip file with all the necessary code files to compile, support, and run your application. The zip file submission must also keep the project file and folder structure intact for the Visual Studio IDE or Eclipse IDE. Scenario You are hired as a contractor to help a university migrate an existing student system to a new platform using C++ language. Since the application already exists, its requirements exist as well, and they are outlined in the next section. You are responsible for implementing the part of the system based on these requirements. A list of data is provided as part of these requirements. This part of the system is responsible for reading and manipulating the provided data. You must write a program containing two classes (i.e., Student and Roster). The program will maintain a current roster of students within a given course. Student data for the program include student ID, first name, last name, email address, age, an array of the number of days to complete each course, and degree program. This information can be found in the “studentData Table” below. The program will read a list of five students and use function calls to manipulate data (see part F4 in the requirements below). While parsing the list of data, the program should create student objects. The entire student list will be stored in one array of students called classRosterArray. Specific data-related output will be directed to the console.   studentData Table   Student ID First Name Last Name Email Age Days in Course Degree Program A1 John Smith Email address 20 30, 35, 40 SECURITY A2 Suzan Erickson Email address 19 50, 30, 40 NETWORK A3 Jack Napoli Email address 19 20, 40, 33 SOFTWARE A4 Erin Black Email address 22 50, 58, 40 SECURITY A5 Your first name Your last name Your valid email address Your age Number of days to complete 3 courses SOFTWARE   The data should be input as follows:   const string studentData[] =  {"A1,John,Smith,email address,20,30,35,40,SECURITY", "A2,Suzan, Email address,19,50,30,40,NETWORK", "A3,Jack,Napoli,email address,19,20,40,33,SOFTWARE", "A4,Erin,Black,email address,22,50,58,40,SECURITY", "A5,[firstname],[lastname],[emailaddress],[age], [numberofdaystocomplete3courses],SOFTWARE"   You may not include third-party libraries. Your submission should include one zip file with all the necessary code files to compile, support, and run your application. You must also provide evidence of the program’s required functionality by taking a screen capture of the console run, saved as an image file. Note: This assessment requires you to submit pictures, graphics, and/or diagrams. Each file must be an attachment no larger than 30 MB in size. Diagrams must be original and may be hand-drawn or drawn using a graphics program. Do not use CAD programs because attachments will be too large. Requirements You must use the rubric to direct the creation of your submission because it provides detailed criteria that will be used to evaluate your work. Each requirement below may be evaluated by more than one rubric aspect. The rubric aspect titles may contain hyperlinks to relevant portions of the course. Tasks may not be submitted as cloud links, such as links to Google Docs, Google Slides, OneDrive, etc., unless specified in the task requirements. All other submissions must be file types that are uploaded and submitted as attachments (e.g., .docx, .pdf, .ppt). A.  Modify the “studentData Table” to include your personal information as the last item.   B.  Create a C++ project in your integrated development environment (IDE) with the following files: •  degree.h •  student.h and student.cpp •  roster.h and roster.cpp •  main.cpp   Note: There must be a total of six source code files.   C.  Define an enumerated data type DegreeProgram for the degree programs containing the data type values SECURITY, NETWORK, and SOFTWARE.   Note: This information should be included in the degree.h file.   D.  For the Student class, do the following: 1.  Create the class Student  in the files student.h and student.cpp, which includes each of the following variables: •  student ID •  first name •   last name •  email address •  age •  array of number of days to complete each course •  degree program 2.  Create each of the following functions in the Student class: a.  an accessor (i.e., getter) for each instance variable from part D1 b.  a mutator (i.e., setter) for each instance variable from part D1 c.  All external access and changes to any instance variables of the Student class must be done using accessor and mutator functions. d.  constructor using all of the input parameters provided in the table e.  print() to print specific student data   E.  Create a Roster class (roster.cpp) by doing the following: 1.  Create an array of pointers, classRosterArray, to hold the data provided in the “studentData Table.” 2.  Create a student object for each student in the data table and populate classRosterArray. a.  Parse each set of data identified in the “studentData Table.” b.  Add each student object to classRosterArray. 3.  Define the following functions: a.  public void add(string studentID, string firstName, string lastName, string emailAddress, int age, int daysInCourse1, int daysInCourse2, int daysInCourse3, DegreeProgram degreeprogram)  that sets the instance variables from part D1 and updates the roster. b.  public void remove(string studentID)  that removes students from the roster by student ID. If the student ID does not exist, the function prints an error message indicating that the student was not found. c. public void printAll() that prints a complete tab-separated list of student data in the provided format: A1 [tab] First Name: John [tab] Last Name: Smith [tab] Age: 20 [tab]daysInCourse: {35, 40, 55} Degree Program: Security. The printAll() function should loop through all the students in classRosterArray and call the print() function for each student. d.  public void printAverageDaysInCourse(string studentID)  that correctly prints a student’s average number of days in the three courses. The student is identified by the studentID parameter. e.  public void printInvalidEmails() that verifies student email addresses and displays all invalid email addresses to the user.   Note: A valid email should include an at sign ('@') and period ('.') and should not include a space (' ').   f.  public void printByDegreeProgram(DegreeProgram degreeProgram) that prints out student information for a degree program specified by an enumerated type.   F.  Demonstrate the program’s required functionality by adding a main() function in main.cpp, which will contain the required function calls to achieve the following results: 1.  Print out to the screen, via your application, the course title, the programming language used, your WGU student ID, and your name. 2.  Create an instance of the Roster class called classRoster. 3.  Add each student to classRoster. 4.  Convert the following pseudo code to complete the rest of the  main() function: classRoster.printAll(); classRoster.printInvalidEmails();   //loop through classRosterArray and for each element: classRoster.printAverageDaysInCourse(/*current_object's student id*/);   classRoster.printByDegreeProgram(SOFTWARE); classRoster.remove("A3"); classRoster.printAll(); classRoster.remove("A3"); //expected: the above line should print a message saying such a student with this ID was not found. 5.  Implement the destructor to release the memory that was allocated dynamically in Roster.   G.  Demonstrate professional communication in the content and presentation of your submission.   File Restrictions File name may contain only letters, numbers, spaces, and these symbols: ! - _ . * ' ( ) File size limit: 200 MB File types allowed: doc, docx, rtf, xls, xlsx, ppt, pptx, odt, pdf, txt, qt, mov, mpg, avi, mp3, wav, mp4, wma, flv, asf, mpeg, wmv, m4v, svg, tif, tiff, jpeg, jpg, gif, png, zip, rar, tar, 7z **Grading Rubric** · Personal information in the last item of the “studentData Table” is complete. · The C++ project is correctly created in the IDE and correctly uses the given files. · The enumerated data type is correctly defined. · The class Student is correctly created by correctly including each of the given variables. · The accessor function in the Student class for each instance variable from part D1 is functional and is complete. · The mutator function in the Student class for each instance variable from part D1 is functional or is complete. · The constructor function in the Student class accurately uses all of the input parameters from the data table. · The print() function in the Student class accurately prints specific student data. · The array of pointers created to hold the data provided in the “studentData Table” is complete and is correct. · The student object for each student in the classRosterArray is correctly populated. · The data is parsed correctly. · Each student object is correctly added to the classRosterArray. · The public void add(string studentID, string firstName, string lastName, string emailAddress, int age, int daysInCourse1, int daysInCourse2, int daysInCourse3,DegreeProgram degreeprogram) function is correctly defined to set the instance variables from part D1 and update the roster. · The public void remove(string studentID) that removes students from the roster by student ID is correctly defined. · The public void printAll() prints a complete tab-separated list of student data. The printAll() correctly loops through all of the students in the student list and correctly calls the print() function for each student. · A public void printAverageDaysInCourse(string studentID) correctly prints a student’s average number of days in the 3 courses by student ID. The student is correctly identified by the student-ID parameter. · A public void printInvalidEmails() correctly verifies student email addresses and displays all invalid email addresses to the user. · A public void printByDegreeProgram
Answered Same DayApr 07, 2021

Answer To: Introduction Throughout your career in software development, you will develop and maintain new and...

Aditya answered on Apr 15 2021
133 Votes
code/degree.h
enum degree {
SECURITY, NETWORK, SOFTWARE
};
code/main.cpp
#include
#include "roster.h"
#include
#include
using namespace std;
int main()
{
    cout << endl;
    cout << "Course
Title : cs101 Student Id : 288538 Student Name : Adams Treps" << endl;
    cout << endl;
    roster classRoster;
    string substr = "";
    const string studentData[] = { "A1,John,Smith,email address,20,30,35,40,SECURITY", "A2,Suzan, desuza,Email address,19,50,30,40,NETWORK", "A3,Jack,Napoli,email address,19,20,40,33,SOFTWARE", "A4,Erin,Black,email address,22,50,58,40,SECURITY", "A5,ishu,maurya,[email protected],20,89,98,99,SOFTWARE" };
    int array_length = sizeof(studentData) / sizeof(studentData[0]);
    vector result;
    for (int i = 0; i < 5; i++)
    {
        stringstream ss(studentData[i]);
        while (ss.good())
        {
            getline(ss, substr, ',');
            result.push_back(substr);
        }
        stringstream test1(result.at(4));
        int age = 0;
        test1 >> age;
        stringstream test2(result.at(5));
        int course1 = 0;
        test2 >> course1;
        stringstream test3(result.at(6));
        int course2 = 0;
        test3 >> course2;
        stringstream test4(result.at(7));
        int course3 = 0;
        test4 >> course3;
        classRoster.add(result.at(0), result.at(1), result.at(2), result.at(3), age, course1, course2, course3, result.at(8));
        ss.str(std::string());
        substr = "";
        result.clear();
    }
    classRoster.printAll();
    classRoster.printInvalidEmails();
    //loop through classRosterArray and for each element:
    classRoster.printAverageDaysInCourse();
    classRoster.printByDegreeProgram(SOFTWARE);
    classRoster.remove("A3");
    classRoster.printAll();
    classRoster.remove("A3");
    return 0;
}
code/roster.cpp
#include "roster.h"
#include "student.h"
#include
#include
#include
student classRosterArray[5];
int i = 0;
int s = 5;
using namespace std;
void roster::add(string studentID, string firstName, string lastName, string emailAddress, int age, int daysInCourse1, int daysInCourse2, int daysInCourse3, string degreeprogram)
{
string id = studentID;
string fname = firstName;
string lname = lastName;
string email = emailAddress;
int a = age;
int d1 = daysInCourse1;
int d2 = daysInCourse2;
int d3 = daysInCourse3;
...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here