CS 1400 Fundamentals of Programming

Final Project: FluffShuffle Payroll

Objective:

This final project will test your knowledge of all of the topics that we have covered during the semester. You will be expected to complete this project with no help from your instructor. It will test your ability to write a larger program that

  1. Uses a Graphical User Interface
  2. Requires you to create and use a class of your own design.
  3. Uses an array of objects
  4. Uses Methods
  5. Opens a file and reads data from a file
  6. Uses loops and decision logic.

Project Overview

logo

In this program, you will be creating part of the payroll program for an Internet electronics store named "FluffShuffle Electronics". The owner of FluffShuffle has given you the following requirements: FluffShuffle employs six (6) people. The owner doesn't expect significant growth in his company, but to be on the safe side he would like the program to handle a maximum of ten (10) employees. All of the employee data (name, address, etc.) is kept in a text file on your disk. Your program will read this employee data from the file and use that data to calculate the payroll for company employees. The program will have to calculate the payroll deductions for each employee and their net pay.

Program Design

Suppose that your programming team has come up with a design for this program. In this design the data for each employee on the payroll will be held in an object of the Employee class.

The Employee Class

All Employees have the following attributes:

  1. employeeNumber
  2. name
  3. street address
  4. hourly wage
  5. Hours worked this week

Employee objects will need the following behaviors:

  1. A constructor for the Employee class that takes arguments to initialize all of the above mentioned attributes.
  2. Getters and Setters for each attribute.
  3. A method, CalcSalary( ), that calculates and returns an employee's net pay as a double. An employee's gross pay is calculated by multiplying the hours worked by their hourly wage. Be sure to give time-and-a-half for overtime (anything over 40 hours). To compute the net pay, deduct 20% for Federal income tax, and 7.5% for state income tax.

Every employee on the payroll will need to be represented in the program by its own Employee object. The most convenient way to handle this will be to create an array of Employee objects.

UML Diagram

Create a UML class diagram for your Employee class and submit an electronic version of it along with your uploaded project folder.

User Interface

Your user interface should look something like the image below. Feel free to experiment with your user interface to make it as interesting and user friendly as possible. However, your interface must be intuitive and easy to use.

Sample Executable

There is a sample executable here.

Sample Data File

There is a sample data file here. Your program should work with this data file.

You can download a sample executable file here.

File(s) to Submit:

Place your complete project folder into a zip file and name the zip file
proj_12_your-initials_V1.0.zip. For example, I would name my file proj_12_RKD_V1.0.zip. Submit this assignment as Project #12 on Canvas.

  • Include your UML class diagram in the zip file.

    Grading Criteria

    Description Points possible Your points

    Project meets the following guidelines:
    o Source code files contain a declaration that you did not copy any code
    o Project has been submitted to Canvas
    o Code meets style guidelines
    o Code is properly documented.

    5  

    Your class diagram is written in proper UML and correctly describes the Employee class.

    5  

    Your Employee class meets all of the stated requirements and matches your class diagram.

    5  

    Your user interface is intuitive and provides all of the required function. It is friendly and intuitive.

    5  

    Your program uses an array of Employee objects. Each objects in the array is correctly used to hold the data for one employee that is stored in the file.

    5  

    Your program works correctly to display each employee's name, address, and net pay.

    5  

    Your program follows good principles of object oriented programming. There is a clear separation of GUI and business logic.

    5  

    Early Bonus (+5 pts)

      

    Total

    35  

    Prof deBry's Classes Only

    If you are in one of Professor deBry's sections, you may choose to do the optional final project, located here