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

Lab 7.2: Strings as Arrays of Characters This lab lets students experiment with

ID: 663668 • Letter: L

Question

Lab 7.2: Strings as Arrays of Characters

This lab lets students experiment with strings.

Copy and paste the code below in a filename LastFirst_lab72.cpp (e.g. DoeJoe_lab72.cpp) and save it in Lab 7 folder.

Bring in the LastFirst_lab72.cpp program from the Lab 7 folder.

Complete the program by filling in the code. (Areas in bold)

Run the program with 3 grades per student using the sample data below.

Mary Brown

100

90

90

George Smith

90

30

50

Dale Barnes

80

78

82

Sally Dolittle

70

65

80

Conrad Bailer

60

58

71

Take a screen shot of the output. Save it in a filename LastFirst_lab72.doc (e.g. DoeJoe_lab72.doc)

Submit both the revised LastFirst_lab72.cpp and LastFirst_lab72.doc by uploading them here.

The following is the code to be used:

// This program will input an undetermined number of student names

// and a number of grades for each student. The number of grades is

// given by the user. The grades are stored in an array.

// Two functions are called for each student.

// One function will give the numeric average of their grades.

// The other function will give a letter grade to that average.

// Grades are assigned on a 10 point spread.

// 90-100 A   80- 89 B 70-79 C   60-69 D   Below 60 F

// PLACE YOUR NAME HERE

#include <iostream>

using namespace std;

const int MAXGRADE = 25;              // maximum number of grades per

student

const int MAXCHAR = 30;              // maximum characters used in a name

typedef char StringType30[MAXCHAR + 1];// character array data type used for

names

                                       // having 30 characters or less.

typedef float GradeType[MAXGRADE];    // one dimensional integer array data

type

float findGradeAvg(GradeType, int);    // finds grade average by taking array

of

                                       // grades and number of grades as

parameters

char findLetterGrade(float);          // finds letter grade from average

given

                                       // to it as a parameter

int main()

{

        StringType30 firstname, lastname; // two arrays of characters defined

      int numOfGrades;                   // holds the number of grades

        GradeType grades;                 // grades is defined as a one

dimensional array

        float average;                     // holds the average of a student's

grade

      char moreinput;                    // determines if there is more input

    // Input the number of grades for each student

        cout << "Please input the number of grades each student will receive."

<< endl

               << "This number must be a number between 1 and " << MAXGRADE <<

" inclusive" << endl;

        cin >> numOfGrades;

        while (numOfGrades > MAXGRADE || numOfGrades < 1)

        {

               cout << "Please input the number of grades for each student." <<

endl

                    << "This number must be a number between 1 and " << MAXGRADE

<< " inclusive" << endl;

               cin >> numOfGrades;

        }

    // Input names and grades for each student

        cout << "Please input a y if you want to input more students" << " any

other character will stop the input" << endl;

        cin >> moreinput;

        while ( moreinput == 'y' || moreinput == 'Y')

        {

            cout << "Please input the first name of the student" << endl;

               cin >> firstname;

               cout << endl << "Please input the last name of the student" <<

endl;

               cin >> lastname;

               for (int count = 0; count < numOfGrades; count++)

               {

                       cout << endl << "Please input a grade" << endl;

                       // Fill in the input statement to place grade in the array

               }

      cout << firstname << ' ' << lastname << " has an average of ";

              

               // Fill in code to get and print average of student to screen

               // Fill in call to get and print letter grade of student to

screen

               cout << endl << endl << endl;

               cout << "Please input a y if you want to input more students" <<

" any other character will stop the input" << endl;

              cin >> moreinput;

        }

        return 0;

}

//***********************************************************************

//                              findGradeAvg

//

// task:           This function finds the average of the

//                  numbers stored in an array.

//

// data in:        an array of integer numbers

// data returned: the average of all numbers in the array

//

//***********************************************************************

float findGradeAvg(GradeType array, int numgrades)

{

    // Fill in the code for this function

}

//***********************************************************************

//                              findLetterGrade

//

// task:           This function finds the letter grade for the number

//                                 passed to it by the calling function

//

// data in:        a floating point number

// data returned: the grade (based on a 10 point spread) of the number

//                  passed to the function

//

//***********************************************************************

char findLetterGrade(float numgrade)

{

       

// Fill in the code for this function

}

Mary Brown

100

90

90

George Smith

90

30

50

Dale Barnes

80

78

82

Sally Dolittle

70

65

80

Conrad Bailer

60

58

71

Explanation / Answer

#include <iostream.h>

// using namespace std;

const int MAXGRADE = 25;              // maximum number of grades per student

const int MAXCHAR = 30;              // maximum characters used in a name

typedef char StringType30[MAXCHAR + 1];// character array data type used for names

                                       // having 30 characters or less.

typedef float GradeType[MAXGRADE];    // one dimensional integer array data type

float findGradeAvg(GradeType, int);    // finds grade average by taking array of

                                       // grades and number of grades as parameters

char findLetterGrade(float);          // finds letter grade from average given

                                       // to it as a parameter

int main()       // main program starts here

{

        StringType30 firstname, lastname; // two arrays of characters defined

      int numOfGrades, i, StudGrade;                   // holds the number of grades

        GradeType grades;                 // grades is defined as a one dimensional array

        float average;                     // holds the average of a student's grade

      char moreinput;                    // determines if there is more input

                                // Input the number of grades for each student

        cout << "Please input the number of grades each student will receive." << endl

                << "This number must be a number between 1 and " << MAXGRADE << " inclusive" << endl;

        cin >> numOfGrades;

        while (numOfGrades > MAXGRADE || numOfGrades < 1)

        {

               cout << "Please input the number of grades for each student." << endl

                    << "This number must be a number between 1 and " << MAXGRADE << " inclusive" << endl;

               cin >> numOfGrades;

        }

    // Input names and grades for each student

        cout << "Please input a y if you want to input more students" << " any other character will stop the input" << endl;

   cin >> moreinput;

   i = 0; int total=0;

   while ( moreinput == 'y' || moreinput == 'Y')

   {

        cout << "Please input the first name of the student" << endl;

           cin >> firstname;

           cout << endl << "Please input the last name of the student" << endl;

           cin >> lastname;

           for (int count = 0; count < numOfGrades; count++)

           {

               cout << endl << "Please input a grade" << endl;

               // Fill in the input statement to place grade in the array

             cin >> StudGrade;
             total = total + StudGrade;

             grades[i++] = StudGrade;

           }
           int avg;
           avg = total / numOfGrades;

           if ( i == 1 ) numOfGrades = 1;

           if ( i > 1)    numOfGrades = i-1;

       int marks; cout << endl ;

    cin >> "plesae input marks under each subject grade";
    char gradeLetter;

for ( i = 1; i <= numOfGrades; i ++ ) {

         cin >> marks;

          total = total + marks;

   cout << firstname << ' ' << lastname << " has an average of " << avg;

           // Fill in code to get and print average of student to screen

           if ( avg >= 90 && avg <= 100 ) gradeLetter = 'A';
           if ( avg >= 80 && avg <= 89 ) gradeLetter = 'B';
           if (avg >= 70 && avg <= 79 ) gradeLetter = 'C';
           if (avg >= 60 && avg <= 69 ) gradeLetter = 'D';
           if (avg < 60 ) gradeLetter = 'F';

           cout << "Grade Letter = " << gradeLetter;

           // Fill in call to get and print letter grade of student to screen

           cout << endl << endl << endl;

           cout << "Please input a y if you want to input more students" << " any other character will stop the input" << endl;

          cin >> moreinput;

        }

        return 0;

}
}

//***********************************************************************

//                              findGradeAvg

//

// task:           This function finds the average of the

//                  numbers stored in an array.

//

// data in:        an array of integer numbers

// data returned: the average of all numbers in the array

//

//***********************************************************************

//float findGradeAvg(GradeType array, int numgrades)

//{

    // Fill in the code for this function   - please see above code is already filled in

//}

//***********************************************************************

//                              findLetterGrade

//

// task:           This function finds the letter grade for the number

//                                 passed to it by the calling function

//

// data in:        a floating point number

// data returned: the grade (based on a 10 point spread) of the number

//                  passed to the function

//

//***********************************************************************

//char findLetterGrade(float numgrade)

//{

// cout << endl;

// Fill in the code for this function - please see above code is already filled in

//}