Question: Use C++ template mechanism and define a generic SortedList ADT. Implement the SortedList ADT using a dynamically allocated array. Use the Student.cpp, SortedList.cpp, SortedList.h to
Use C++ template mechanism and define a generic SortedList ADT. Implement the SortedList ADT using a dynamically allocated array.
Use the Student.cpp, SortedList.cpp, SortedList.h to implement a tester.cpp (included below)
Implement tester.cpp. This program should test the SortedList ADT. The program will continue reading commands and data from the input file inFile until the command Quit is read. Commands are: (isEmpty, isFull, makeEmpty, getLength, get, insertItem, deleteItem, merge and printList) The program should write output to an output file outFile.txt.
Your test driver should define these lists:
SortedList
SortedList
SortedList
Your test driver should read list data type from the use in order to be able to test your implementation for the three types: int, char and Student (see the code below). make sure you are using the same commands and be aware of case sensitivity e.g. isEmpty not IsEmpty which will cause your program to fail the test.
SortedList.h
#include
SortedList.cpp
#include "SortedList.h" #include
template
template template return info[index]; } template template Student.cpp #include "SortedList.cpp" using namespace std; class Student { private: int id; string name; public: Student() { id = 0; name = ""; } Student(int id_in, string name_in) { id = id_in; name = name_in; } void setId(int id_in) { id = id_in; } void setName(string name_in) { name = name_in; } int getId() const { return id; } string getName() const { return name; } bool operator == (const Student &other) { return id == other.id; } bool operator < (const Student &other) { return id < other.id; } bool operator > (const Student &other) { return id > other.id; } friend ostream & operator << (ostream &out, const Student &s) { out << s.getId() << "\t" << s.getName(); return out; } }; -------------------------- tester.cpp #include Cout<< Enter Elements Type 1 for integer 2 for character 3 for Student ; cin>> datatype; switch (datatype) { case 1: testIntegersList(); break; } void testIntegersList() { ifstream inFile; ofstream outFile; inFile.open(intcommands.txt); outFile.open(outFile.txt); inFile>> command; // read commands from a text file SortedList { ifstream inFile; ofstream outFile; inFile.open(studcommands.txt); outFile.open(outFile.txt); inFile>> command; // read commands from a text file } .... #include
using namespace std;
void testIntegersList(); void testCharactersList(); void testStudentsList(); int main()
{ int number; string command; int datatype;
// Prompt user to enter type of elements
break; case 2: testCharactersList();
break; case 3: testStudentsList();
if( list.isEmpty()) outFile << list is empty;
else outFile << list is not empty;
else if (command == inserItem) { inFile>> number;
list.inserItem(number); }
.......... inFile>> command;} // while } // testIntegersList
void testStudentsList()
SortedList
if( list.isEmpty()) outFile << list is empty;
else outFile << list is not empty;
else if (command == inserItem) { inFile>> ID>>name; StudentObj.setID(ID) StudentObj.setName(name) list.inserItem(StudentObj);
} // testStudentList
void testcharactersList() { .......... } // testCharactersList
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
