support@unifiedpapers.com

c-cs210-lab-stl-lists-1

The goal is to store the students names in an STL list and sort them based on the last name.

  • Your primary tasks for this exercise are to edit the main.cpp file so that it does the following:
  1. inputs students’ names from input.txt into the STL list
  2. sorts the list based on the last name
  3. outputs the students’ names in order
  • Steps include:
  • Read each line from input.txt. Store the firstname and the lastname into the temporary student structure “currStudent”.
  • Hint: You can use the following format:
	while(studentFile >> currStudent.firstname >> currStudent.lastname)
  • Push the current student into the list (“students”)
  • Build and run the executable file. If you get an error like this:
error C2679: binary '<<' : no operator defined which takes a right-hand operand
 of type 'DataType' (or there is no acceptable conversion)
  • Notice that the compiler is complaining about the ‘<<‘. You are trying to output a DataType but, there is no existing definition for cout << DataType.
  • Solve this problem by overloading the “<<” operator.
  • Because the packets haven’t been sorted yet, your output should look like the following:
Jacob Anderson
Michael Thomson
Joshua Smith
Mathew Matheis
Ethan Evans 
Emily Drake
Emma Patterson
Madison McPhee
Hannah Briens
Ashley Schmidt
Press any key to continue
  • Add code to sort the list (students), and print the correctly ordered list of students (using the iterator).
  • Build and run the executable. If you get this error:
error C2784: 'bool std::operator <(const std::list<_Ty,_Alloc> &, 
const std::list<_Ty,_Alloc> &)' : could not deduce template argument for 
'const std::list<_Ty,_Alloc> &' from 'DataType'
  • Reread the description of sort. This error is complaining about the following comparison in the sort function: DataType < DataType
  • When you correct this problem, consider using getKey(). Why?
  • (later, if you wanted to sort by firstname, how would you do it?)
  • Your output should look like the following:
Jacob Anderson
Michael Thomson
Joshua Smith
Mathew Matheis
Ethan Evans
Emily Drake
Emma Patterson
Madison McPhee
Hannah Briens
Ashley Schmidt
Sorting.........
Jacob Anderson
Hannah Briens
Emily Drake
Ethan Evans
Mathew Matheis
Madison McPhee
Emma Patterson
Ashley Schmidt
Joshua Smith
Michael Thomson
Press any key to continue

————————————————————————————————————————–

main.cpp

#include <iostream>
#include <fstream>
#include <string>
#include <list>

using namespace std;

struct DataType 
{
	string lastname;	// Student's Last Name
	string firstname;	// Student's First Name

	string getKey () const
	{ return lastname; }   // Returns the key field
};

//---------Need to add code to overload operator <<
//------- Need to add code to fix error C2784: 'bool __cdecl std::operator <

bool operator < (DataType lhs, DataType rhs)
{

}

void main() 
{
	ifstream studentFile ("input.txt");  // Student file
	list <DataType> students;            // Students
	DataType currStudent;              // One Student (has firstname,lastname)
	// Read each line from input.txt:
    //Store the firstname and the lastname into 
    //the temporary student structure "currStudent".
	// Push the current student into the list ("students") 
	// Use an iterator to print the unsorted list of students.
	// Sort the list of students.
	// Use an iterator to print the sorted list of students.
}

"Get 15% discount on your first 3 orders with us"
Use the following coupon
FIRST15

Order Now

Hi there! Click one of our representatives below and we will get back to you as soon as possible.

Chat with us on WhatsApp