Question: program that reads the sales for 12 months from a file and calculates the total yearly sales as well as the average monthly sales. Monthly
program that reads the sales for 12 months from a file and calculates the total yearly sales as well as the average monthly sales.
| Monthly Sales program
COMMAND MENU monthly - View monthly sales yearly - View yearly summary edit - Edit sales for a month exit - Exit program
Command: monthly Jan - 616 Feb - 466 Mar - 796 Apr - 238 May - 310 Jun - 726 Jul 987 Aug - 604 Sep - 951 Oct - 958 Nov - 238 Dec - NA
Command: yearly Using sales amount of 0 for Dec. Yearly total: 6890 Monthly average: 574.17
Command: edit Three-letter Month: Noc Invalid three-letter month.
Command: edit Three-letter Month: Nov Sales Amount: 354 Sales amount for Nov was modified.
Command: exit Bye! |
Console
Specifications
- If the program cant find the CSV file when it starts, display an error message, and exit the program.
- Use the CSV file named monthly_sales.csv that contains the month and sales data shown above.
- Write a function to open file and read the CSV file. This function will not have a parameter. Each row in the file will be turned into a list that holds the month and sales value for the month. Each row list will be added to a list that is returned by the function.
- Create a function that saves the monthly sales list to the CSV file. This function will take a list as a parameter.
- Create functions for the monthly, yearly, and edit commands. The functions will take the sales list as an input parameter. Call each function from an if statement in the main method.
- The main method will call the function that reads the file to store the list of lists in the monthly sales list.
- The edit function will call the function that writes to the CSV file immediately after any change to the list are completed.
- The yearly function will dynamically calculate the average based on the total of all sales values in the list and the length of the list. Round the results of the monthly average to a maximum of 2 decimal digits. Formatting is not required.
- In the yearly function, if the sales list doesnt contain a valid integer for the sales amount for any month, use a value of 0 for that month when calculating the total sales for the year. Display a message to the user when this happens.
- The edit function will ask the user for the three-letter month and sales value and make a simple list of these two values. This simple new list will replace the current single month list in the sales list.
- For the edit function, display an error message if the user doesnt enter a valid three-letter abbreviation for the month. Use the following list as the standard abbreviations.
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
