Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Programming Project #3 Specifications Points Possible: 10 Modify C++ Program

ID: 3688821 • Letter: C

Question

C++ Programming Project #3

Specifications

Points Possible: 10

Modify C++ Programming Project #2 to

include arrays to hold input data

display the revised Sample Output to include input data

include following function requirements:

function prototypes

a main() function that calls all of the other functions

a function to accept and validate input data

a function to display input data

a function to calculate and display semester GPA values

a function to calculate and display cumulative GPA values

at least one function uses pass-by-value

at least one function that uses pass-by-reference

SAMPLE INPUT

Prompt the user to enter data from table below.

Semester

Course Title

Course Type

Cr Hrs

Grade

2

German 2

Regular

3

C

2

AP Math 2

AP

3

B-

2

Biology Honors

Honors

3

A-

2

English Composition

Regular

3

C

2

Chemistry 2 Honors

Honors

3

A+

2

AP World History

AP

3

B+

Semester

Course Title

Course Type

Cr Hrs

Grade

1

German 1

Regular

3

B-

1

AP Math 1

AP

3

A

1

Chemistry 1 Honors

Honors

3

B+

1

Art

Regular

2

A

1

English Literature

Regular

3

C+

1

AP US History

AP

3

A-

A student can take a minimum of one course and a maximum of seven courses during a semester.

Use the table below to verify the accuracy of the data entered by the user. When the user enters invalid data, display an appropriate error message and prompt the user to re-enter the value. Continue to prompt the user until user enters a valid value for the field.

Field Name

Data Type

Valid Values

Semester

char

1 or 2

Course Type

string

Regular, AP, or Honors

Credit Hrs

integer

1, 2, 3, or 4

Letter Grade

string

A+, A, A-, B+, B, B-, etc.

PROCESSING

Calculate the following GPA information for a single student:

Semester 2 standard (unweighted) GPA

Semester 2 weighted GPA

Semester 1 standard (unweighted) GPA

Semester 1 weighted GPA

Cumulative standard (unweighted) GPA

Cumulative unweighted GPA

To calculate standard G.P.A., total the credit hours (Cr Hrs), compute the grade points for each course and then total the grade points. Divide the total grade points earned by the total credit hours. Use the chart below to convert a letter grade to a standard GPA on a 4.0 scale:

Letter Grade

Percent Grade

4.0 Scale

A+

97-100

4.0

A

93-96

4.0

A-

90-92

3.7

B+

87-89

3.3

B

83-86

3.0

B-

80-82

2.7

C+

77-79

2.3

C

73-76

2.0

C-

70-72

1.7

D+

67-69

1.3

D

65-66

1.0

E/F

Below 65

0.0

Source: College Board, How to Convert Your GPA to a 4.0 Scale, Retrieved from http://www.collegeboard.com/html/academicTracker-howtoconvert.html

For purposes of this assignment, to calculate a weighted GPA, for honors and AP courses, add .50 to the 4.0 scale points. For example if an A grade is earned in an Honors or AP course, then the A grade is worth 4.5 points, not 4.0 points. An unweighted or standard GPA uses the 4.0 scale; it does not assign any extra points for Honors or AP courses.

To calculate cumulative G.P.A., for all semesters total the credit hours (Cr Hrs) and then total the grade points. Divide the total grade points earned by the total credit hours.

SAMPLE OUTPUT

Display the following course and GPA information for a single student:

SEMESTER 2

                                          Course Title         Credit Hrs     Grade

                                          German 2               3            C

                                          AP Math 2                     3            B-

                                          Biology Honors             3            A-

                                          English Composition   3            C

                                          Chemistry 2 Honors     3            A+

                                          AP World History   3            B+

Semester 2:   Standard GPA = 2.950         Weighted GPA = 3.283

SEMESTER 1

                                          Course Title         Credit Hrs     Grade

                                          German 1               3            B-

                                          AP Math 1                     3            A

                                          Chemistry 1 Honors     3            B+

                                          Art                             2            A

                                          English Literature 3            C+

                                          AP US History              3            A-

Semester 1:   Standard GPA = 3.294         Weighted GPA = 3.559

CUMULATIVE GPA

Standard GPA = 3.117   Weighted GPA = 3.417

SPECIAL INSTRUCTIONS

Attach and submit you program as a single .cpp file.

Do not use any global variables.

Do not use any Classes or objects.

MY PROJECT2:

#include <iostream>
#include <string>
using namespace std;

int main() {
  
   int semesterTwoCreditHours = 0;
   double semesterTwoGradePoint = 0.0;
   double semesterTwoWeightedGradePoint = 0.0;
int semesterOneCreditHours = 0;
   double semesterOneGradePoint = 0.0;
   double semesterOneWeightedGradePoint = 0.0;

   for (int i = 2; i > 0;--i) {
       cout << "Enter semester " << i << " data for 6 subjects: " << endl;
       for (int j = 1; j <= 6; ++j) {
           string courseTitle = "N/A";
           string courseType = "N/A";
           int creditHours = -1;
           string grade = "N/A";

           while (courseTitle == "N/A") {
               cout << "Enter course title: ";
               getline(cin, courseTitle);
               if (courseTitle == "N/A") {
                   cout << "Error! Course title can not be empty. Please re-enter. ";
               }
           }

           while (courseType != "Regular" && courseType != "AP" && courseType != "Honors") {
               cout << "Enter course type: ";
               cin >> courseType;
               if (courseType != "Regular" && courseType != "AP" && courseType != "Honors") {
                   cout << "Error! Course title must be one of Regular, AP or Honors. ";
               }
           }

           while (creditHours <= 0 || creditHours > 4) {
               cout << "Enter credit hours: ";
               cin >> creditHours;
               if (creditHours <= 0 || creditHours > 4) {
                   cout << "Error! Credit hours should be an integer from 1 to 4. ";
               }
           }

           while (grade != "A+" && grade != "A" && grade != "A-"
               && grade != "B+" && grade != "B" && grade != "B-"
               && grade != "C+" && grade != "C" && grade != "C-"
               && grade != "D+" && grade != "D"
               && grade != "E" && grade != "F") {

               cout << "Enter grade: ";
               cin >> grade;

               if (grade != "A+" && grade != "A" && grade != "A-"
                   && grade != "B+" && grade != "B" && grade != "B-"
                   && grade != "C+" && grade != "C" && grade != "C-"
                   && grade != "D+" && grade != "D"
                   && grade != "E" && grade != "F") {
                   cout << "Error! Please enter correct grade input. ";
               }
           }

           double gradePoints;
           if (grade == "A+") gradePoints = 4.0;
           else if (grade == "A") gradePoints = 4.0;
           else if (grade == "A-") gradePoints = 3.7;
           else if (grade == "B+") gradePoints = 3.3;
           else if (grade == "B") gradePoints = 3.0;
           else if (grade == "B-") gradePoints = 2.7;
           else if (grade == "C+") gradePoints = 2.3;
           else if (grade == "C") gradePoints = 2.0;
           else if (grade == "C-") gradePoints = 1.7;
           else if (grade == "D+") gradePoints = 1.3;
           else if (grade == "D") gradePoints = 1.0;
           else if (grade == "E" || grade == "F") gradePoints = 0.0;

           if (i == 2) {
               semesterTwoCreditHours += creditHours;
               semesterTwoGradePoint += creditHours * gradePoints;
               if (courseType == "AP" || courseType == "Honors") {
                   gradePoints += 0.5;
               }
               semesterTwoWeightedGradePoint += creditHours * gradePoints;

           }
           else {
               semesterOneCreditHours += creditHours;
               semesterOneGradePoint += creditHours * gradePoints;
               if (courseType == "AP" || courseType == "Honors") {
                   gradePoints += 0.5;
               }
               semesterOneWeightedGradePoint += creditHours * gradePoints;

           }

           string temp;
           getline(cin, temp);
       }
   }

   printf("Semester 2: Standard GPA = %.3lf Weighted GPA = %.3lf ",
       semesterTwoGradePoint / semesterTwoCreditHours, semesterTwoWeightedGradePoint / semesterTwoCreditHours);

   printf("Semester 1: Standard GPA = %.3lf Weighted GPA = %.3lf ",
       semesterOneGradePoint / semesterOneCreditHours, semesterOneWeightedGradePoint / semesterOneCreditHours);

   printf("CUMULATIVE GPA ");
   printf("Standart GPA = %.3lf Weighted GPA = %.3lf ",
       (semesterTwoGradePoint + semesterOneGradePoint) / (semesterOneCreditHours + semesterTwoCreditHours),
       (semesterOneWeightedGradePoint + semesterTwoWeightedGradePoint) / (semesterOneCreditHours + semesterTwoCreditHours));

   return 0;
}

Semester

Course Title

Course Type

Cr Hrs

Grade

2

German 2

Regular

3

C

2

AP Math 2

AP

3

B-

2

Biology Honors

Honors

3

A-

2

English Composition

Regular

3

C

2

Chemistry 2 Honors

Honors

3

A+

2

AP World History

AP

3

B+

Semester

Course Title

Course Type

Cr Hrs

Grade

1

German 1

Regular

3

B-

1

AP Math 1

AP

3

A

1

Chemistry 1 Honors

Honors

3

B+

1

Art

Regular

2

A

1

English Literature

Regular

3

C+

1

AP US History

AP

3

A-

Explanation / Answer

Try this and let me know:

#include <iostream>
#include <string>
using namespace std;

void readData(string semtitle[6],string semtype[6],int semhrs[6],string semgrade[6])
{

        for (int i = 0; i < 6; i++) {
            semtitle[i]= "N/A";
            semtype[i] = "N/A";
            semhrs[i] = -1;
            semgrade[i] = "N/A";

            while (semtitle[i] == "N/A") {
                cout << "Enter course title: ";
                //getline(cin, semtitle[i]);
                cin>>semtitle[i];
            if (semtitle[i] == "N/A") {
                    cout << "Error! Course title can not be empty. Please re-enter. ";
                }
            }

            while (semtype[i] != "Regular" && semtype[i] != "AP" && semtype[i] != "Honors") {
                cout << "Enter course type: ";
                cin >> semtype[i];
                if (semtype[i] != "Regular" && semtype[i] != "AP" && semtype[i] != "Honors") {
                    cout << "Error! Course title must be one of Regular, AP or Honors. ";
                }
            }

            while (semhrs[i] <= 0 || semhrs[i] > 4) {
                cout << "Enter credit hours: ";
                cin >> semhrs[i];
                if (semhrs[i] <= 0 || semhrs[i] > 4) {
                    cout << "Error! Credit hours should be an integer from 1 to 4. ";
                }
            }

            while (semgrade[i] != "A+" && semgrade[i] != "A" && semgrade[i] != "A-"
                && semgrade[i] != "B+" && semgrade[i] != "B" && semgrade[i] != "B-"
                && semgrade[i] != "C+" && semgrade[i] != "C" && semgrade[i] != "C-"
                && semgrade[i] != "D+" && semgrade[i] != "D"
                && semgrade[i] != "E" && semgrade[i] != "F") {

                cout << "Enter grade: ";
                cin >>semgrade[i];

                if (semgrade[i] != "A+" && semgrade[i] != "A" && semgrade[i] != "A-"
                && semgrade[i] != "B+" && semgrade[i] != "B" && semgrade[i] != "B-"
                && semgrade[i] != "C+" && semgrade[i] != "C" && semgrade[i] != "C-"
                && semgrade[i] != "D+" && semgrade[i] != "D"
                && semgrade[i] != "E" && semgrade[i] != "F") {
                    cout << "Error! Please enter correct grade input. ";
                }
            }
        }
}
void calSemesterGPA(string semtitle[6],string semtype[6],int semhrs[6],string semgrade[6])
{
    int semesterOneCreditHours = 0;
    double semesterOneGradePoint = 0.0;
    double semesterOneWeightedGradePoint = 0.0;
  
        for(int i=0;i<6;i++)
        {
       double gradePoints;
            if (semgrade[i] == "A+") gradePoints = 4.0;
            else if (semgrade[i] == "A") gradePoints = 4.0;
            else if (semgrade[i]== "A-") gradePoints = 3.7;
            else if (semgrade[i] == "B+") gradePoints = 3.3;
            else if (semgrade[i] == "B") gradePoints = 3.0;
            else if (semgrade[i] == "B-") gradePoints = 2.7;
            else if (semgrade[i] == "C+") gradePoints = 2.3;
            else if (semgrade[i] == "C") gradePoints = 2.0;
            else if (semgrade[i] == "C-") gradePoints = 1.7;
            else if (semgrade[i] == "D+") gradePoints = 1.3;
            else if (semgrade[i] == "D") gradePoints = 1.0;
            else if (semgrade[i] == "E" || semgrade[i] == "F") gradePoints = 0.0;

                semesterOneCreditHours += semhrs[i];
                semesterOneGradePoint += semhrs[i] * gradePoints;
                if (semtype[i] == "AP" || semtype[i] == "Honors") {
                    gradePoints += 0.5;
                }
                semesterOneWeightedGradePoint += semhrs[i] * gradePoints;

      
        }
         printf(" For this semester : Standard GPA = %.3lf Weighted GPA = %.3lf ",
        semesterOneGradePoint / semesterOneCreditHours, semesterOneWeightedGradePoint / semesterOneCreditHours);
}

void calCumulativeGPA(string sem1title[6],string sem1type[6],int sem1hrs[6],string sem1grade[6],string sem2title[6],string sem2type[6],int sem2hrs[6],string sem2grade[6])
{
     int semesterTwoCreditHours = 0;
    double semesterTwoGradePoint = 0.0;
    double semesterTwoWeightedGradePoint = 0.0;
    int semesterOneCreditHours = 0;
    double semesterOneGradePoint = 0.0;
    double semesterOneWeightedGradePoint = 0.0;
      for(int i=0;i<6;i++)
        {
       double gradePoints;
            if (sem1grade[i] == "A+") gradePoints = 4.0;
            else if (sem1grade[i] == "A") gradePoints = 4.0;
            else if (sem1grade[i]== "A-") gradePoints = 3.7;
            else if (sem1grade[i] == "B+") gradePoints = 3.3;
            else if (sem1grade[i] == "B") gradePoints = 3.0;
            else if (sem1grade[i] == "B-") gradePoints = 2.7;
            else if (sem1grade[i] == "C+") gradePoints = 2.3;
            else if (sem1grade[i] == "C") gradePoints = 2.0;
            else if (sem1grade[i] == "C-") gradePoints = 1.7;
            else if (sem1grade[i] == "D+") gradePoints = 1.3;
            else if (sem1grade[i] == "D") gradePoints = 1.0;
            else if (sem1grade[i] == "E" || sem1grade[i] == "F") gradePoints = 0.0;

                semesterOneCreditHours += sem1hrs[i];
                semesterOneGradePoint += sem1hrs[i] * gradePoints;
                if (sem1type[i] == "AP" || sem1type[i] == "Honors") {
                    gradePoints += 0.5;
                }
                semesterOneWeightedGradePoint += sem1hrs[i] * gradePoints;
        }
        for(int i=0;i<6;i++)
        {
       double gradePoints;
            if (sem2grade[i] == "A+") gradePoints = 4.0;
            else if (sem2grade[i] == "A") gradePoints = 4.0;
            else if (sem2grade[i]== "A-") gradePoints = 3.7;
            else if (sem2grade[i] == "B+") gradePoints = 3.3;
            else if (sem2grade[i] == "B") gradePoints = 3.0;
            else if (sem2grade[i] == "B-") gradePoints = 2.7;
            else if (sem2grade[i] == "C+") gradePoints = 2.3;
            else if (sem2grade[i] == "C") gradePoints = 2.0;
            else if (sem2grade[i] == "C-") gradePoints = 1.7;
            else if (sem2grade[i] == "D+") gradePoints = 1.3;
            else if (sem2grade[i] == "D") gradePoints = 1.0;
            else if (sem2grade[i] == "E" || sem2grade[i] == "F") gradePoints = 0.0;

                semesterOneCreditHours += sem2hrs[i];
                semesterOneGradePoint += sem2hrs[i] * gradePoints;
                if (sem2type[i] == "AP" || sem2type[i] == "Honors") {
                    gradePoints += 0.5;
                }
                semesterOneWeightedGradePoint += sem2hrs[i] * gradePoints;
        }

    printf("CUMULATIVE GPA ");
    printf("Standart GPA = %.3lf Weighted GPA = %.3lf ",
        (semesterTwoGradePoint + semesterOneGradePoint) / (semesterOneCreditHours + semesterTwoCreditHours),
        (semesterOneWeightedGradePoint + semesterTwoWeightedGradePoint) / (semesterOneCreditHours + semesterTwoCreditHours));


}
void print(string semtitle[6],int semhrs[6],string semgrade[6])
{
     for(int i=0;i<6;i++)
     {
         cout<<semtitle[i]<<" "<<semhrs[i]<<" "<<semgrade[i]<<endl;
     }
}
int main() {
    string sem1title[6],sem2title[6],sem1type[6],sem2type[6];
int sem1hrs[6],sem2hrs[6];
string sem1grade[6],sem2grade[2];
    cout<<"Enter 6 subjects for semester 1 ";
   readData(sem1title,sem1type,sem1hrs,sem1grade);
      cout<<"Enter 6 subjects for semester 2 ";
   readData(sem2title,sem2type,sem2hrs,sem2grade);

//print semester 1 details
   cout<<"Semester 1: ";
      cout<<"CourseTitle Hours Grade ";
   print(sem1title,sem1hrs,sem1grade);
    calSemesterGPA(sem1title,sem1type,sem1hrs,sem1grade);

      
        //print semester 2 details
    cout<<"Semester 2: ";
       cout<<"CourseTitle Hours Grade ";
   print(sem2title,sem2hrs,sem2grade);
    calSemesterGPA(sem2title,sem2type,sem2hrs,sem2grade);
  
    calCumulativeGPA(sem1title,sem1type,sem1hrs,sem1grade,sem2title,sem2type,sem2hrs,sem2grade);

    return 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote