summaryrefslogtreecommitdiffstats
path: root/C++/Polymorphism/INSTRUCTIONS
blob: 87fad1e1207d3b2a5e690727e80752707d91529a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
**NOTE** You are free to write a non-trivial program of your choice that demonstrates polymorphism (runtime or compile time or both). Or, if you cannot think of your own program idea, you may complete the below program. It is payroll again, so I wanted to give you an option to do something different so you don't become bored.  
If you choose to use this program, then below are criteria: 
Write a program that does the following:

    Create a class called Employee and it will store variables for first name, last name, hours worked, wage, gross pay, net pay, tax, overtime wage, overtime pay, overtime hours, and deductions
    Get data via the keyboard or from an input file for first name, last name, wage, hours worked and deductions. The remaining varaibles are derived values
    To demonstrate polymorphism, you will have two functions with the same name: payroll. The payroll functions will do all calculations. Except, one function will be for a manager (salaried employee) and one function will be for hourly employees
    For further polymorphism practice, you will have two functions with the same name: output. These output functions will output all payroll information. One function will output manager information and one will output all hourly employee information

Assignment Notes for the payroll program:

    Make variables either arrays or vectors - your choice
    Don't forget to check for overtime!
    Only output overtime for hourly employees if it exists
    Managers do not have overtime since they are salaried. The get the same paycheck each pay period, so do not look for overtime for them. 
    If you want, you can output all information to an output file instead of the screen. Depending on how you write this program, this may make your program easier. 

Assignment Notes for custom program: 

    Make variables either arrays or vectors - your choice
    Your program must have at least two classes
    Each class must have at least two non-trivial functions
    You must demonstrate run time or compile time (or both!) polymorphism in your program
    If you are not sure what to write and do not want another payroll program, try modifying your project 9 so that it uses polymorphism! Then, most of the program is written already

General Notes:
Be sure to use comments in your program: Name, Program Description, Date and anywhere else in the program you deem necessary.
If you are stuck, I will help you!   
Grading Rubric:

    If you do not include comments at the top of the program (name, program description, date), you will lose 15 points
    If your program is not object-oriented, you will receive a 0/100 (OOP is requred for this assignment)
    If your program does not use functions, you will lose up to 75 points (depending on the number of functions missing)
    If your program does not use polymorphism, you will lose up to 100 points since this is the point of the assignment
    If your program does not compile (run), then I will give a grade of 0/100. But will give you the change to repair for points back (some points are better than none)
    If your program is late (within 48 hours of the due date), you will lose 25 points
    If your program is late beyond the 48 hour due date, I will typically still accept it, but you will lose far more points. Depends on when you turn it in
    If you use global variables in your program, I will deduct 5 points for each used
    If your program is not formatted nicely (code all over the place, ugly), you will lose up to 25 points depending on the extent
    If your program stops working when I run it, you will lose points. The exact amount depends on the severity of the error
    If your program still has your friend's name on it, I will send you a message asking you to try harder while giving you a 0/100
    If you submit a file type I cannot open, such as .sln, you will receive a 0/100. You will be able to resubmit for credit, but you will lose up to 90 points (depending on how late it is)
    If your program looks like a a professional programmer wrote it, I will write to you to ask if you want a job. Well, maybe not. But, I will ask about the code
    This is just a list of typical issues I run into when grading to give you some idea of where your points go. Points can be taken off for other reasons.