Please Write C++ PROGRAM :
That will write a program that initially prompts the user for a file name. If the file is not found, an error message is output, and the program terminates. Otherwise, the program prints each token in the file, and the number of times it appeared, in a well formatted manner. To accomplish all this, do the following:
- Open the file - the user must be prompted and a file name input. DO NOT hardcode a file name.
- Read the words in the file, placing them in an array of struct with capacity I 00, where each struct has a string (the word) and an int (number of occurrences)
- Sort the array, eliminating duplicates
- Report the results
- You must write appropriate functions for each task. At minimum, you must write a function for each of the following:
• Open the file:
o Pass in an ifstream (must be a reference argument [what type of parameter is it?]). The function prompts the user and, if the file is found, it returns true and the ifstream will be a handle for that text file. Otherwise the function returns false , and the argument is assumed to be undefined.
• Populate the array of struct with the words in the file:
o Pass in two reference arguments, the ifstrcam, and the l 00 element array of word/count structs. When the function completes, the array will hold the words in the file.
• Output results:
o Pass in the variables that bold the file name and the word/count array. Use this data to
produce the desired ouput, which should be appropriately fonnatted.
• Sort an array of structs (the name/int pairs), eliminating duplicates:
o Pass in the array of struct, and the number of elements in the array. The function sorts the array, in ascending order of words, eliminating duplicates and tabulating counts as it goes. It definitely uses other functions for specific purposes, e.g. identifying duplicate tokens and swapping structs.
• Increment the counter member of a struct that holds a word and its multiplicity:
o Pass in a single struct; it will be an import/export parameter. Simply increment its counter member.
Notes:
» A word, or token, is whatever is read using the >> operator. A word followed by a period is distinct from the same word without the period. Words are also case sensitive, i.e. heLLo is not equal to Hello.
» When a word is placed into the array of struct, its counter is initially 1.
» When the array reaches capacity:
If there aren't 100 unique words already in the array, run the sort function to eliminate duplicates.
If the file has 100 unique words, then after the tooth unique word is added to the array, only repeats will be tabulated. New tokens will be discarded.
» While several functions are required, other functions should be written as well.
No function..should handle multiple tasks on its own. Non-modular designs will be penalized.
» In sorting, if the word being placed is a duplicate, the already placed word must have its counter incremented, and the duplicate must be removed from the array.
- The program must be well written, properly indented, and commented