Question: Please write the needed code required for this assignment, don't copy any other similar code as they are all wrong, write your own code please,

Please write the needed code required for this assignment, don't copy any other similar code as they are all wrong, write your own code please, and don't forget to show your output. Thank You.

Please write the needed code required for this assignment, don't copy any

other similar code as they are all wrong, write your own code

please, and don't forget to show your output. Thank You. main.cpp #include

#include #include #include "Songcpp.h" #include "VectorADTcpp.h" int populatedataBase(VectorADT &mySongs){ std::ifstream input("SongsData.txt"); std::string

line; std::string title; std::string singer; std::string cp;//chart position in string int chartPosition=0;

main.cpp

#include #include #include #include "Songcpp.h" #include "VectorADTcpp.h"

int populatedataBase(VectorADT &mySongs){ std::ifstream input("SongsData.txt"); std::string line; std::string title; std::string singer; std::string cp;//chart position in string int chartPosition=0; int dataCount=0; if (!input){ throw new std::string("File Open Error "); exit(-1); } while (std::getline(input,line)){ // std::getline(input,line); std::string token; std::istringstream instream(line); std::getline(instream,title, ','); std::getline(instream, singer, ','); std::getline(instream, cp,' '); // std::cout

} return dataCount; }

int main() {

VectorADT database;

int dataCount=populatedataBase(database); //database.printVectorADT(); LessThan f; int steps =database.sort(f); std::couttoString()

Song *insertThis2= new Song("fifth place","BTS",5);//chartposition int insertSteps=database.insert(insertThis2, 5);//will go into 6th position std::couttoString()toString()=0) std::cout

LessThencpp.h

template class LessThan{ public: bool operator()(T a, T b){ return a

Song.h

#include class Song{ private: std::string title; std::string singer; int chartPosition; public: Song(); Song(std::string title,std:: string singer, int chartPosition); std::string toString(); std::string getTitle(); void setChartPosition(int pos); friend std::ostream & operator

Songcpp.h

#include "Song.h" Song::Song(){ title=""; singer=""; chartPosition=0; } //GIVEN Song::Song(std::string title, std::string singer, int chartPosition){ this->title=title; this->singer=singer; this->chartPosition=chartPosition; } //GIVEN std::string Song::toString(){ return "Title: "+title+ " Singer: "+singer+ " ChartPosition: "+std::to_string(chartPosition); } // //GIVEN std::ostream& operatortoString(); return str; } //GIVEN int Song::getChartPosition(){ return chartPosition; } //GIVEN void Song::setChartPosition(int pos){ chartPosition=pos; } //GIVEN bool Song::operator

bool Song::operator==(Song b){ //TODO return""; // } //GIVEN std::string Song::getTitle(){ return title; }

VectorADT.h

#include

#include "LessThancpp.h"

#include

template

//template class VectorADT{

const size_t SIZE = 2;

private: T ** dataArray = nullptr; int count; public: //default constructor VectorADT();

// return address of element at index position i T* get(int i) const; // set the element e at position i void set(int i, T *); // print the entire database void printVectorADT(); // print the number of items specified void printVectorADT(int number); // double the size of the database by //creating another database twice the size and copying //the existing database into it. The existing one is then deleted void resizeADT(); // returns true if database is empty, false otherwise bool empty();

//returns the number of items in the database int size() const; // add an item to the end of the database void push_back(T *); // remove and return the last element of the database if there is one T* pop_back(); // "peeks" ie returns a pointer to the last element without removing or deleting it T* pop(); // inserts at the proper position, no sorting necessary // element is inserted at index =pos //if pos is negative or unacceptable number throws exception and exits //returns the number of adjustments done to shift data to right int insert(T * v, int pos);

// deletes the item at index position =pos //if database is empty or pos is negative or an unacceptable number throws exception and exits //returns the number of adjustments done to shift data left int remove(int pos);

void topTen(); // prints top 10 items // kept sorted according to position - use function objects - selection sort int sort(LessThan f);

int searchByTitle(int& steps, T *v); };

VectorADTcpp.h

#include #include "VectorADT.h"

//GIVEN template VectorADT::VectorADT (){ dataArray= new T*[SIZE]; count=0; }

//TODO //double the size of the dataArray //create a temporary dataArray of double the size //copy over the current data Array and then delete it //use REM documentation

template void VectorADT::resizeADT(){ // TODO } //TODO //appends an element to the end of the VectorADT //increments size by 1 //if run out of size, resize the vector // REM documentation template void VectorADT::push_back(T *v){ //TODO } //TODO //returns a copy of the element from the end of the VectorADT //does not delete /o resize of the vector // REM documentation template T * VectorADT::pop(){ //TODO } //TODO //removes an element from the end of the VectorADT //decrements size by 1 /o resize of the vector // REM documentation template T * VectorADT::pop_back() { ; //TODO } template void VectorADT::printVectorADT(){ for (int i=0;i int VectorADT::size() const { return count;} //FILL IN THE BLANK FOR COMPARISON template int VectorADT::sort(LessThan less){ int steps=0; T * minValue= new T(); int minIndex=0; for (int i=0;i bool VectorADT:: empty(){ return (count

//GIVEN template T* VectorADT:: get(int i) const{ if (i>=0 && i

//GIVEN template void VectorADT::set(int i, T * t){ if (i>=0 && i int VectorADT::insert(T * v, int pos){ int adjustSteps=0; // TODO return adjustSteps; }

//TODO //TODO //USE template //removes the object at the given INDEX position NOT chart position //DOes NOT adjust chart position //THROWS exception if index out of bounds //left adjusts the elements to the right of the inserted object //returns number of adjusted steps template int VectorADT::remove(int pos){ int adjustSteps=0; //TODO return adjustSteps; }

//TODO Linear search //use the overloaded == operator of the Song objects //returns -1 if not found else returns the found index template int VectorADT::searchByTitle(int& steps, T *v){ // TODO return -1; }

This assignment involves review of template classes, implementation of vector data type and function objects. Students are expected to review the vector template class that is available in the C++STL and complete the practice lab before embarking on the assignment. \#Create a Vector Template Class (Vector Abstract Data Type) that is implemented as a dynamic array with an initial size of 2 . Implement a default constructor - a copy constructor as well as a destructor for this Vector ADT will be done in Assignment 2. Implement typical Vector functions like push_back, pop, pop_back, insert, remove, size, resize, search and sort and other functions as given below and in the template \#The main driver is given to you. Run the program first time with SongsData.txt and then with the larger file SongsDataDouble.txt. \#Use the template given to you for further guidance and support //default constructor VectorADT(); // return address of element at index position i T get(int i) const; // print the entire database void printVectorADT(); // print the number of items specified void printVectorADT(int number); // double the size of the database by //creating another database twice the size and copying //the existing database into it. The existing one is then deleted void resizeADT(); // returns true if database is empty, false otherwise bool empty(); //returns the number of items in the database int size() const; // add an item to the end of the database void push_back (T); I/ remove and return the last element of the database if there is one T pop_back(); // "peeks" ie returns a pointer to the last element without removing or deleting it Tpop(); // inserts at the proper position, no sorting necessary // element is inserted at index = pos //if pos is negative or unacceptable number throws exception and exits void insert( Tv, int pos); // deletes the item at index position =pos //if database is empty or pos is negative or an unacceptable number throws exception ar void remove(int pos); void topTen(); // prints top 10 items // kept sorted according to position - use function objects - selection sort int sort(Less Than f)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!