Write a program for in-depth numerical or text analysis encompassing at least eight distinct tasks (e.g., max, min, total, etc.).
The program should:
1. Receive input data from a file. Prompt the user to enter the input file name from which the data will be read.
2. Save the output data in another file. Prompt the user to provide the output file name where the results will be saved.
3. In addition to saving the output to a file, ensure that it is also printed on the screen for the user to see.
4. Create a separate function for each task. This includes creating functions for input handling, output handling, and each of the eight data/text analysis tasks. Each task should be performed by a distinct function to make the program modular and easy to manage.
5. Include at least three higher-level tasks. These should go beyond simple tasks like calculating maximum or minimum values. Examples could be calculating the mode of a dataset, determining the frequency of words or characters, identifying unique values, computing standard deviation and variance, finding the top N most common words or numbers, calculating the median, analyzing data ranges, identifying the longest or shortest word or line in text, conducting character-level frequency analysis, performing correlation analysis and identifying outliers.
6. Do NOT rely solely on built-in data analysis methods/functions to complete a task. This means you should not use built-in functions like max(), min(), or sum() without first implementing the logic behind them manually. However, for more complex tasks, you are allowed to use these built-in functions as part of the solution rather than as the entire solution.
For example, you are tasked with finding the maximum value in a list of numbers. Instead of using Python’s built-in max() function, you should manually implement the logic by iterating through the list and comparing each value to find the maximum.
However, if you are working on a more complex task, such as finding the mode (the most frequent value) in a list, you could use max() as part of the solution. In this case, after calculating the frequency of each number, you can use the max() function to find the number with the highest frequency, but the task itself involves more steps than just calling max().
What to turn in
1. READ.ME file. (PDF format)
The file should include a brief description of the project, execution instructions, and an example of running the program.
2. API documentation (PDF format)
List all the functions with an explanation of what each function does, the arguments of the function and what it returns.
3. Link to the Google Colab notebook (PDF format). Make sure the notebook is set to be accessible to others.
4. Copy of the notebook (PY format)
5. Input data files (TXT format)
6. Output data file created by the program (TXT format)