General Description: You will write a program that reads a text file, counts the number of words in the file, and the number of occurrences of each character. It will print to a file the number of words, and the number of occurrences of each character, as well as the percentage of that particular character as compared to all the characters. The list should be in descending order of occurrence.
1. The body of the main function will only have variable declarations and function calls. (and the ‘return 0’ statement)
2. There can be NO global variables, all information must be passed in and out of the functions. (There can be global constants, if you want)
3. The characters to be counted are:
a. Letters: uppercase and lowercase will be counted as the same character.
b. Digits 0 – 9.
c. Punctuation: ! ? , . : ; ‘ “
d. Symbols: @#$%&*()+=/-<>
e. any other character does not need to be counted
4. You must use an array to store the number of each character.
5. You must have these functions in your code: (you may have others but not necessary)
a. getFileName – asks the user for the name of the input file. You must pass the file stream as a reference parameter. If the input file does not exist, you should print to the screen an appropriate message, and exit the program.
i. To exit a program early, you can use the function exit(0), but you must include the file cstdlib in your code.
b. countWords – counts the number of words in the file. Words are anything separated by whitespace. The file identifier must be passed in to the function. Should also print a message with the number of words in the file.
c. countChars – counts every occurrence of each character (see above) in the file. The information must be stored in an array, which must be passed in as a parameter. The file identifier must also be passed in as a reference parameter. Should also calculate the percentage for each character.
d. sortChars – sorts the array, in descending order, by the percentage.
You must use either a selection sort, or an insertion sort.
e. printCount – Prints each character, the number of each character, and the percentage of each character. The percentage should be in the form “25%”. The information should come from the array, which must be passed in as a reference parameter, and the info must be sorted
6. The program should work for any text file. I will run it on a text file for which I know the results. You may assume the text file is not an empty file
7. The output file should be named lastnameProj3Results.txt