rendered paste body#include <iostream>#include <string>#include <fstream> #include <sstream>using namespace std;using std::string;class Item {protected: string itemName; int itemID; double itemCost;public: Item (string name, int ID, double cost); Item (); void setItemCost(double itemCost); double getItemCost(); void setItemID(int itemID); int getItemID(); string getItemName(); void setItemName(string itemName);};Item::Item(string name, int ID, double cost){ itemName = name; itemID = ID; itemCost = cost;}Item::Item(){ //Do nothing}double Item::getItemCost() { return itemCost;}void Item::setItemCost(double itemCost) { itemCost = itemCost;}int Item::getItemID() { return itemID;}void Item::setItemID(int itemID) { itemID = itemID;}string Item::getItemName() { return itemName;}void Item::setItemName(string itemName) { itemName = itemName;}class Poster : public Item{ string posterArtist; int posterYear; int posterQuantity;public: Poster(int ID, string name, string artist, int year, double price, int quan); Poster(); void print(); string getPosterArtist(); void setPosterArtist(string posterArtist); string getPosterName(); void setPosterName(string posterName); double getPosterPrice(); void setPosterPrice(double posterPrice); int getPosterQuantity(); void setPosterQuantity(int posterQuantity); int getPosterYear(); void setPosterYear(int posterYear);};Poster::Poster():Item(){ // Do nothing}Poster::Poster(int ID, string name, string artist, int year, double price, int quan):Item(name, ID, price) { posterArtist = artist; posterYear = year; posterQuantity = quan; itemName = name; itemCost = price; itemID = ID; }void Poster::print() { cout << "ID:\t" << itemID << "\n"; cout << "Name:\t" << itemName << "\n"; cout << "Artist:\t" << posterArtist << "\n"; cout << "Year:\t" << posterYear << "\n"; cout << "Price:\t" << itemCost << "\n"; cout << "Quan:\t" << posterQuantity << "\n"; }string Poster::getPosterArtist() { return posterArtist; }void Poster::setPosterArtist(string posterArtist) { posterArtist = posterArtist; }string Poster::getPosterName() { return itemName; }void Poster::setPosterName(string posterName) { itemName = posterName; }double Poster::getPosterPrice() { return itemCost; }void Poster::setPosterPrice(double posterPrice) { itemCost = posterPrice; }int Poster::getPosterQuantity() { return posterQuantity; }void Poster::setPosterQuantity(int posterQuantity) { posterQuantity = posterQuantity; }int Poster::getPosterYear() { return posterYear; }void Poster::setPosterYear(int posterYear) { posterYear = posterYear; }double parseDouble(const std::string& s) { std::istringstream i(s); double x; if (!(i >> x)) cout << "something went wrong\n"; return x; }int parseInt(const std::string& s) { std::istringstream i(s); int x; if (!(i >> x)) cout << "something went wrong\n"; return x; }void readPosters(const std::string& file, Poster PosterList[]){ ifstream infile(file.c_str()); cout << file << "\n"; int count = 0; if(infile.is_open()) { string line = NULL; char * tokens; while(!infile.eof()) { getline(infile,line); tokens = strtok((char*)line.c_str(), ","); while(tokens != NULL) { int ID = parseInt(tokens); tokens = strtok(NULL, ","); string name = tokens; tokens = strtok(NULL, ","); string artist = tokens; tokens = strtok(NULL, ","); int year = parseInt(tokens); tokens = strtok(NULL, ","); double price = parseDouble(tokens); tokens = strtok(NULL, ","); int quan = parseInt(tokens); tokens = strtok(NULL, ","); PosterList[count] = Poster(ID, name, artist, year, price, quan); PosterList[count].print(); count++; } count++; } }}int main(){ std::cout << "Hello world!" << std::endl; Poster PosterList[50]; readPosters("poster_input.txt", PosterList); return 0;}