03. There are two existing data files: 'rawdata.txt' and 'marks.txt'. The file 'rawdata.txt' is used to store the students' exam marks only, separated by blank spaces, while the file 'marks.txt' is empty. Write a C++ program which carries out the tasks specified below:
a) Open the data files, 'rawdata.txt' and 'marks.txt', and check whether they have been opened successfully.
b) Use a while loop to read one mark (represented by an integer) at a time from the file 'rawdata.txt' until the end of the file is reached. Each time, evaluate the mark to form a record by using 'if-else' selection: if the mark is below 40, then form a record consisting of the mark and the word "fail" separated by a blank space, for example: "33 fail"; if the mark is above or equal to 40 but below 70, then form a record consisting of the mark and the word "good" separated by a blank space, for example: "63 good"; if the mark is above or equal to 70, then form a record consisting of the mark and the word "excellent" separated by a blank space, for example: "83 excellent". Write each record into the file 'marks.txt'.
Output the average mark for all students. After the whole file has been read, close the data files.