Question
This lab is to give you more experience with C++ Searching and Sorting Arrays Given a file with data for names and marks you will
This lab is to give you more experience with C++ Searching and Sorting Arrays
Given a file with data for names and marks you will read them into two arrays You will then display the data, do a linear search and report if found, sort the data, do a binary search. Be sure to test for found and not found in your main program.
1. Read Data
Write a function that reads in data from a file using the prototype below. The function can define and open the file, read the names and marks into the arrays and keep track of how many names there are in numElts, and then closes the file. The list of names and marks can be found at the end of the lab and copied into a text file.
void getNames(string names[], int marks[], int& numElts);
5. Display Data
Write a function to display the contents of names and marks using the prototype given below.
void displayData(const string names[], const int marks[], int numElts);
2. Linear Search
Write the searchList function given the prototype below so that it searches for a given name. The functions returns and int which is the index of the name found.
The main program will decide if -1 is returned then it will say name is not found otherwise it will write out the name and the mark for that name.
int linearSearch(const string list[], int numElts, string value);
3. Selection Sort
Write the selectionSort given the prototype below so that it sorts by name in ascending order. Be sure to accept both arrays name and mark for sorting purposes.
void selectionSort(string name[], int marks[], int numElts);
4. Binary Search
Write the binarySearch function given the prototype below so that it searches for a given name.The functions returns and int which is the index of the name found.
The main program will decide if -1 is returned then it will say name is not found otherwise it will write out the name and the mark for that name.
int binarySearch(const stringt array[], int numElts, string value);
5. Main Function
Write a main function that declares the names, marks, number of elements as well as the value to be searched for and the index of the returned function calls.
Read and display the contents of names and marks.
Ask the user for a name and using the linear search return the index to the user. If -1 is returned then the name is not in the file. Otherwise write out the name and mark for that student.
Sort the arrays and write them out.
Ask the user for a name to search for. This time use the binarySearch to return -1 or an index. Display the students name and mark if found.
Test your program for found and not found for each type of search.
void getNames(string names[], int marks[], int& numElts);
int linearSearch(const string names[], int numElts,string who);
int binarySearch(const string names[], int numElts,string who);
void selectionSort(string names[], int marks[],int numElts);
void displayData(const string names[], const int marks[], int numElts);
const int NUM_Names = 20;
int main()
{
string names[NUM_NAMES];
int marks[NUM_NAMES];
int numElts;
int index;
string searchWho;
// Function calls here
return 0;
}
File for names and marks:
Collins,Bill 80
Smith,Bart 75
Allen,Jim 82
Griffin,Jim 55
Stamey,Marty 90
Rose,Geri 78
Taylor,Terri 56
Johnson,Jill 77
Allison,Jeff 45
Looney,Joe 89
Wolfe,Bill 63
James,Jean 72
Weaver,Jim 77
Pore,Bob 91
Rutherford,Greg 42
Javens,Renee 74
Harrison,Rose 58
Setzer,Cathy 93
Pike,Gordon 48
Holland,Beth 79
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
Get Started