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

write a C++ program for the following For this exercise you will read in student

ID: 3568067 • Letter: W

Question

write a C++ program for the following

For this exercise you will read in student names and test scores into two arrays: an array of strings for the names and an array of integers for the scores. You will write a program which sorts the scores and displays the scores from highest to lowest and the student's name who received the grade. Please use one of the sorting algorithms discussed in class. Do not use std::sort. Extra Credit: implement the sort using either the Quick Sort algorithm, Merge Sort algorithm or with any advanced sorting algorithm with an average case runtime of ?(n log2n).

Sample::

How many students took the exam? 3

Student #1 Name: tom

Student #1 Score: 84

Student #2 Name: jerry

Student #2 Score: 96
Student #3 Name: kitty


Student #3 Score: 51
RESULTS:
jerry

Explanation / Answer

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

void quickSort(string names[], int arr[], int left, int right) {
int i = left, j = right;
int tmp;
   string tmpname;
int pivot = arr[(left + right) / 2];

/* partition */
while (i <= j) {
while (arr[i] > pivot)
i++;
while (arr[j] < pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;

               tmpname = names[i];
               names[i] = names[j];
               names[j] = tmpname;

i++;
j--;
}
};

/* recursion */
if (left < j)
quickSort(names, arr, left, j);
if (i < right)
quickSort(names, arr, i, right);
}

int main()
{
   int n;
   int scores[20];
   string students[20];

   cout<<"How many students took the exam? :";
   cin>>n;
   cout<<" ";

   for(int i=0; i<n ;i++)
   {
       cout<<" Student #"<<(i+1)<<" Name: ";
       cin>>students[i];

       cout<<" Student #"<<(i+1)<<" Score: ";
       cin>>scores[i];

       cout<<" ";
   }

   quickSort(students, scores, 0 , n-1);

   cout<<" Results : ";
   for(int i=0; i<n; i++)
   {
       cout<<" "<<students[i]<<" -- "<< scores[i]<<" ";
   }

   return 0;
}

-------------------------

output

How many students took the exam? :3

Student #1 Name: tom

Student #1 Score: 84


Student #2 Name: jerry

Student #2 Score: 96


Student #3 Name: kitty

Student #3 Score: 51

Results :


jerry -- 96
tom -- 84
kitty -- 51 Press any key to continue . . .