Question: Please finish my code use simple c++ language for this is my second c++ course. Also, give an explanation of the writehistogram function, please. the

Please finish my code use simple c++ language for this is my second c++ course. Also, give an explanation of the writehistogram function, please. the comments at the end of my code are the general flow I would like it to be done

Q:

Your completed program should simulate rolls of several pairs of dice and store them in a data file, and then it should read from the data file to produce a histogram file with a simple text representation of a histogram. The simulation is already done for you; your task is to produce a histogram, formatted as on the reverse sheet. You are encouraged to use the helper functions in the starter file as guidance, but you dont have to as long as you produce a correct histogram.

// Starter file for Homework 1, Question 1; due before class 1/15/20 // [YOUR NAME HERE]

#include #include #include #include using namespace std;

const int N_ROLLS = 200; // how many rolls to simulate const string DATA_FILENAME = "data.txt"; const string HIST_FILENAME = "hist.txt";

int getRoll() { return (rand() % 6 + rand() % 6 + 2); } // returns the value (between 2 and 12) of a toss of a pair of random dice

void simulateAndRecord(); // Pre: No meaningful data is in either file // Post: Results of simulation of N_ROLLS pairs of dice are in DATA_FILENAME

void produceHistogram(); // Pre: DATA_FILE contains (at most) N_ROLLS values 2-12; // HIST_DATA has no meaningful info; both files are closed // Post: For each val 2-12, HIST_FILE contains a line of stars // counting the # times that val appears in DATA_FILE

void writeLineOfStars(int rolls[], int nRolls, int val, ostream& out) { out << val << ":"; for (int i = 0; i < nRolls; i++) out << "*"; out << " "; } // Pre: rolls array contains nRolls simulations; out is an opened output file // Post: The val line of the histogram has been appended to out, e.g., if val=3 // and 3 occured 5 times, the line would be "3: *****"

int main() { simulateAndRecord(); produceHistogram(); return 0; }

// simulate rolling N_ROLLS pairs of dice; record values in DATA_FILENAME void simulateAndRecord() { ofstream datafile(DATA_FILENAME); // open DATA_FILENAME for (int i = 0; i < N_ROLLS; i++) { datafile << getRoll() << endl; // simulate 1 roll and output it to datafile } datafile.close(); // close the file }

void produceHistogram() { /* TODO: implement this function; define writeLineOfStars helper */ }

/*data.txt record the rolls producehistogram... data.txt input to histogram and hist.txt output 200 stars open data file as a ifstream(inputfile) and open hist.txt as a ofstream 2 to 12 go line by line get one data value and for do while that goes untill end of data.txt prints line i of hist */

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!