Question: Page 1 of 2 Monthly Sales program COMMAND MENU monthly - View monthly sales yearly - View yearly summary edit - Edit sales for a

Page
1
of 2
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!
Chapter 08 Monthly Sales
Add exception handling to the Chapter 07 program that reads the sales for 12 months from a file
and calculates the total yearly sales as well as the average monthly sales.
Console
Specifications
If the program cant find the CSV file when it starts, display an error message, and exit
the program. Use appropriate error handling to prevent a runtime error when the file is
missing.
Use the CSV file named monthly_sales.csv that contains the month and sales data shown
above. Represent the file name in a constant.
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. The read and write functions belong in the same module from chapter 7.
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 is 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 only 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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!