Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

You have collected a file of movie ratings where each movie is rated from 1 (bad) to 5 (excellent). The first line of the file

You have collected a file of movie ratings where each movie is rated from 1 (bad) to 5 (excellent). The first line of the file is a number that identifies how many ratings are in the file. Each rating then consists of two lines: the name of the movie followed by the numeric rating from 1 to 5. Here is a sample rating file with four unique movies and seven ratings:

7 Happy Feet

4

Happy Feet

5

Pirates of the Caribbean

3

Happy Feet

4

Pirates of the Caribbean

4

Flags of Our Fathers

5

Gigli

1

Write a program that reads in a file in this format, calculates the average rating for each movie, and outputs the average along with the number of reviews. Here is the desired output for the sample data:

Happy Feet: 3 reviews, average of 4.3 / 5

Pirates of the Caribbean: 2 reviews, average of 3.5 / 5

Flags of Our Father: 1 review, average of 5 / 5

Gigli: 1 review, average of 1 / 5

Use a map or multiple maps to generate the output. Your map should index from a string representing each movies name to integers that store the number of reviews for the movie and the sum of the ratings for the movie.

You will need to use the fstream library to read in file data. It may be helpful to discard the newline character as you read the file data. You can do this using the following line: fin.ignore(2,' '); . Use it after reading any movie ratings. You will also need to clean up the title as it will contain a linefeed character at the end of it, just remove it after reading the movie name.

Assume a file named movies.txt is used as the input file and it contains the list of movies above. This will be the test file data for your program, make sure the output matches the output above. You can use the code below to get started.

#include

#include

#include

#include

#include

using std::ifstream;

using std::cout;

using std::endl;

using std::string;

using std::cin;

using std::map;

int main()

{

ifstream fin; // Input file

fin.open("movies.txt"); // Name of the text file with ratings, has to be within the same directory as this code

if (fin.fail())

{

cout << "Input file opening failed. ";

exit(1);

}

//YOUR CODE FOR READING THE TEXT FILE GOES HERE

fin.close( );

//YOUR CODE FOR CALCULATING/OUTPUTTING THE RATINGS GOES HERE

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Processing

Authors: David M. Kroenke, David Auer

11th Edition

B003Y7CIBU, 978-0132302678

More Books

Students also viewed these Databases questions

Question

What is topology? Explain with examples

Answered: 1 week ago

Question

2. Identify and choose outcomes to evaluate a training program.

Answered: 1 week ago

Question

6. Conduct a cost-benefit analysis for a training program.

Answered: 1 week ago