For your midterm project, please write a program to do the following: Use a struct to: Create an array or vector variable to store a person’s favorite movie Create an array or vector variable to store when the year that movie was released Create an array or vector variable to store the box office gross (total amount of money) it made Create an input file to store all of the above information. Please use at least 3 sets of data to make the program interesting Check that the input file was found Use a loop of your choice to read in an unknown number of records from your input file When the program reads in a movie name, check to see if it has any tags inside of it Once the movie name is free of tags, store it and the other variables in your arrays or vectors Use a simple menu where the user can sort the data on the movie name, year released or box office gross Output the sorted movie list onto the screen Close your input file Assignment Notes: You are free to use arrays or vectors. Or, you can mix/match. It is up to you I expect to functions for steps: 3 - 7 I expect to see generic functions for step 6 (sort function) and 7 (output function) I will be closely watching for cheating (copying from friends, online help, etc.) and I will give 0/300 for cheating There is no output file in this assignment, but if you want to use one, you are free to do so You are free to make all variables strings for simplicity in your sort function You are free to place any/all of your functions inside of your struct. This is not required though. You may do this or not. Your choice For the box office gross, you can abbrev. the number to make it more manageable. Example: 100, 110, 250, etc. General Notes: Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary. Although this is a midterm, if you are stuck, I will still help you! But, not as many answers this time. Nothing here is new, so you can review the keys from your assignments to see how everything works. Grading Rubric: If you do not include comments at the top of the program (name, program description, date), you will lose 15 points If you do not use a struct, you will lose 25 points If you do not use functions, you will use 20 points per missing function (80 points) If you do not use generic functions for steps 6 and 7, you will lose 50 points (25 points each) If your program does not compile (run), then I will give a grade of 0/300. But will give you the change to repair for points back (some points are better than none) If you use global variables, you will lose 10 points for each global variable used If your program is not formatted nicely (code all over the place, ugly), you will lose up to 50 points depending on the extent If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100 If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons.