Ask Computer Engineering Expert

Python Program

You are going to program a very simple payroll system. You can use any ex code given during lectures (see the zip files for the lectures on Functions and Files).

Input File

You will have a file called "payroll.txt" in the same directory as your program files. The format of the payroll file is as follows:

,,,,

each employee is represented by a line with five fields separated by commas.

Here is an ex file: 

Nelson, Frank, 10.0, 20.0, 200.0
Harrison, Johanna, 15.5, 40.0, 620.0
Mannon, Ethyl, 25.5, 35.5, 905.25

WARNING: Do not prepare your program to only work with this file as our test script will NOT be using the exact same values as above, just the same format. In fact, it's guaranteed NOT to have 3 lines but it will be short (less than 200 lines). Your program should be able to take ANY number of lines in the above format (separated by commas) with any reasonable values (ie. the first two fields will be string values and the last three fields will be floats).

NOTE: When debugging your program, I would suggest you create your own test files (Don't upload these test files to Moodle; we only want your code files).

Menu Handling

After your program loads this file on start-up, then the following menu is displayed:


a - add a new employee
d - delete an employee
m - modify an employee
p - print all employees

You will then ask the user for a choice. You can use the skeletal program 'full_functions.py' from the Functions lecture (see Feb 19 for the zip file of code for the functions lecture) but you will need to modify it to work with the homework (ie. it shouldn't print anything about songs :-) ). Also, feel free to take out the code that asks if the user wants to change their choice (it's more annoying than I thought).

Choice Descriptions

The choices do the following:

a - add an employee: Prompt the user for last name, first name, rate and hours. Add employee to list of employees.

d - delete an employee: Prompt the user for an index into the list. Then delete employee at this index.

m - modify an employee: Prompt the user for an index into the list and then prompt for a field ("last name", "first name","rate", "hours"). Then prompt for a new value. Replace the new value for the given field for the employee at the given index.

p - print all employees: All employee information is printed to the screen in a nice format (your choice of what is meant by 'nice'). Also include the index into the list for debugging purposes (ie. so you can see whether the right employee info got changed.)

The program should update the grossPay field whenever an employee's pay rate and hours changes. This way when the print statement prints gross pay it will always be the correct value (also, it will be correct when the program prepares to payroll.txt at the end).

Ending the Program

After the program is done with processing a choice, the user should be asked to continue. If yes, then the program should re-display the menu. If no, the program prepares the payroll information back to "payroll.txt". This should be done by re-opening the "payroll.txt" file with a "w" mode which erases whats in the file already. The outputted format is the same as the inputted format so that when the program is re-run, the new "payroll.txt" can be read and parsed correctly.

Requirements

First, your program needs to work correctly, In addition, to get full credit, your program needs the following:


It needs to have one function called main() with no parameters. This function is the starting point to run your program. The program should call main() when run from shell. It should NOT call main if imported from another file. (see full_functions.py for how to do this).


It needs to have at least 6 functions that you wrote (it will probably have much more than that). Note that you will need to load and save the file plus do four tasks so putting these into separate functions is a good idea.


No function body or any global code should be more than 15 lines long. (NOT counting blank lines and comments). If the function starts getting longer, break it into two or more functions.


Do NOT change global variables inside of functions (don't use the global statement). Pass variables into functions as parameters.


The variable holding the employee information should NOT be global. Create it by reading it in inside main (the reading part can be done from another function and the list returned to main). Pass it to functions when it's needed and prepare the results out to file in main (or, again, pass it into another function as a parameter).


You should have two files: One file to hold your main function called main.py. Another file to hold your functions and any global constants called functions.py. Zip these two files into one file (for Mac users, use whatever the equivalent of zip is) before uploading them to Moodle. You don't need to add your own payroll.txt file as we will use our own version of payroll.txt.

You are free to use any combination of lists, dictionaries or classes to store the employee information as long as everything works correctly. You don't need to use classes for this assignment; you can do this assignment with a combination with lists and dictionaries. 

NOTE: If using classes, it is best to design one class to store ONE employee's info. Then create a list of objects of this class. In other words, don't store the list of employees inside the class itself. 

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M993969

Have any Question?


Related Questions in Computer Engineering

Does bmw have a guided missile corporate culture and

Does BMW have a guided missile corporate culture, and incubator corporate culture, a family corporate culture, or an Eiffel tower corporate culture?

Rebecca borrows 10000 at 18 compounded annually she pays

Rebecca borrows $10,000 at 18% compounded annually. She pays off the loan over a 5-year period with annual payments, starting at year 1. Each successive payment is $700 greater than the previous payment. (a) How much was ...

Jeff decides to start saving some money from this upcoming

Jeff decides to start saving some money from this upcoming month onwards. He decides to save only $500 at first, but each month he will increase the amount invested by $100. He will do it for 60 months (including the fir ...

Suppose you make 30 annual investments in a fund that pays

Suppose you make 30 annual investments in a fund that pays 6% compounded annually. If your first deposit is $7,500 and each successive deposit is 6% greater than the preceding deposit, how much will be in the fund immedi ...

Question -under what circumstances is it ethical if ever to

Question :- Under what circumstances is it ethical, if ever, to use consumer information in marketing research? Explain why you consider it ethical or unethical.

What are the differences between four types of economics

What are the differences between four types of economics evaluations and their differences with other two (budget impact analysis (BIA) and cost of illness (COI) studies)?

What type of economic system does norway have explain some

What type of economic system does Norway have? Explain some of the benefits of this system to the country and some of the drawbacks,

Among the who imf and wto which of these governmental

Among the WHO, IMF, and WTO, which of these governmental institutions do you feel has most profoundly shaped healthcare outcomes in low-income countries and why? Please support your reasons with examples and research/doc ...

A real estate developer will build two different types of

A real estate developer will build two different types of apartments in a residential area: one- bedroom apartments and two-bedroom apartments. In addition, the developer will build either a swimming pool or a tennis cou ...

Question what some of the reasons that evolutionary models

Question : What some of the reasons that evolutionary models are considered by many to be the best approach to software development. The response must be typed, single spaced, must be in times new roman font (size 12) an ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As