Question: scoreboard.cpp: void insert _ sorted ( Node * & head, const Climber& climber ) { Node * new _ node = new Node { climber
scoreboard.cpp:
void insertsortedNode& head, const Climber& climber
Node newnode new Nodeclimber nullptr;
if head climber.score headclimber.score
newnodenext head;
head newnode;
return;
Node current head;
while currentnext && currentnextclimber.score climber.score
current currentnext;
newnodenext currentnext;
currentnext newnode;
Node findNode head, const char name
while head
if strcmpheadclimber.name, name
return head; Return Nodethe node itself, not just the climber
head headnext;
return nullptr;
void clearNode& head
while head
Node temp head;
head headnext;
delete temp;
void writestd::ostream& out, Node head
out std::left std::setw "Rank"
std::setw "Name"
std::setw "Country"
"Score
;
int rank ;
while head
out std::left std::setw rank;
writeout headclimber;
out
;
head headnext;
scoreboard.h:
struct Node
Climber climber;
Node next;
;
void insertsortedNode& head, const Climber& climber;
Node findNode head, const char name;
void clearNode& head;
void writeNode head, std::ostream& out;
#endif SCOREBOARDH
main.cpp:
Node buildscoreboardconst char filename
std::ifstream filefilename;
if file.isopen
std::cerr "Error: Could not open file filename
;
return nullptr;
Node list nullptr;
Climber climber;
while readfile climber
insertsortedlist climber;
return list;
int mainint argc, char argv
if argc argc
std::cerr "Usage: argvleadfile
;
return ;
Node boulderinglist buildscoreboardargv;
if boulderinglist return ;
std::cout strstrargv "bouldering" "Bouldering results:
: "Lead results:
;
writeboulderinglist, std::cout;
Node leadlist nullptr;
if argc
leadlist buildscoreboardargv;
if leadlist
clearboulderinglist;
return ;
std::cout
strstrargv "lead" "Lead results:
: "Bouldering results:
;
writeleadlist, std::cout;
Node combinedlist nullptr;
Node current boulderinglist;
while current nullptr
insertsortedcombinedlist, currentclimber;
current currentnext;
current leadlist;
while current nullptr
Node found findcombinedlist, currentclimber.name; by name
if found
foundclimber.score currentclimber.score;
else
insertsortedcombinedlist, currentclimber;
current currentnext;
std::cout
Combined results:
;
writecombinedlist, std::cout;
clearcombinedlist;
clearboulderinglist;
clearleadlist;
return ;
climber.h:
const int NAMESIZE ;
const int COUNTRYSIZE ;
struct Climber
char nameNAMESIZE;
char countryCOUNTRYSIZE;
double score;
;
std::istream& readstd::istream& in Climber& climber;
void writestd::ostream& out, const Climber& climber;
#endif CLIMBERH
climber.cpp:
std::istream& readstd::istream& in Climber& climber
std::string line;
if std::getlinein line return in;
std::stringstream ssline;
std::string country, name, score;
if std::getliness country, && std::getliness name, && std::g
etliness score
std::strncpyclimbercountry, country.cstr;
std::strncpyclimbername, name.cstr;
climber.score std::stodscore;
else
insetstatestd::ios::failbit;
return in;
void writestd::ostream& out, const Climber& climber
out std::left std::setw climber.name
std::setw climber.country
std::fixed std::setprecision climber.score;
EDIT CODE TO COMPILE AND RUN LIKE PICTURE
Two files
When the program is run with both the bouldering and lead datafiles, it should display the following:
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
