Problem WinstonSalem State Universitys Office of Budget Mana

Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Academic Year. The percentage of raise each faculty member receives will be based on years of service and academic status (tenure/tenure track-1or non tenure track-2). See chart below to determine percentage raise.

Years of Service

Tenure/Tenure Track

Non-Tenure Track

25 or more

8%

4%

15-24

6%

3%

6-14

4%

2%

0-5

2%

1%

They have contracted you to prepare a report based on the information in the database (textfile) and project the cost to the University. The database (budget.txt) contains the following information:

-Name - String

-Years of Service - Integer

-Academic Status ( 1 – Tenure/Tenure-Track, 2 – Non-Tenure Track)

-Current Yearly Salary - Double

Sample Data:

Caldwell, E./25/1/117000

Secondly, they need you to prepare a report containing the following information:

1-Read and display the contents of the file.

2-Determine and display the name and percentage raise for each faculty member.

3-Compute and display the name and amount of raise each faculty member will receive.

4-Compute the new salary for each faculty member.

5-Display name, old salary, and new salary for each faculty member.

6-Display the total additional cost to the university if a raise is given for the 2010-2011 Academic Year.

here is the data file

CSUData.txt

Here is the sampleOutput

Name years of service statut Current yearly Salary

---------------------------------------------------------------------------------

Name Purcentage raise

-----------------------------------------------------------------------------------

Name Raise

----------------------------------------------------------------------------------

Name old salary new salary

--------------------------------------------------------------------------------

Total cost:

31780.0

Years of Service

Tenure/Tenure Track

Non-Tenure Track

25 or more

8%

4%

15-24

6%

3%

6-14

4%

2%

0-5

2%

1%

Solution

//Employee.java
public class Employee
{
  
   //instance variables
   private String name;
   private int years;
   private byte status;
   private double salary;
   private double percent;
  
  
   //Employee constructor
   public Employee(String name,
           int years, byte status,
           double salary)
   {
       this.name=name;
       this.years=years;
       this.status=status;
       this.salary=salary;
       percent=0;
   }
  
   public String getName(){
       return name;
   }
  
   public int getYears(){
       return years;
   }
  
   public byte getStatus(){
       return status;
   }
  
   public double getSalary(){
       return salary;
   }
  
   public void setPercent(double percent){
       this.percent=percent;
   }
  
   public double getPercent(){
       return percent;  
   }
  
  
   //Retunrs the string representation of the employee
   @Override
   public String toString() {      
       return String.format(\"%-20s%-10d%-10d%-8.2f\ \",
               name,years,status,salary);
   }
}//end of the class Employee

--------------------------------------------------------------------------------------------------------------------

//WinstionSalemStats.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class WinstionSalemStats {

   public static void main(String[] args) {

       String fileName=\"CSUData.txt\";
       Scanner filereader=null;
       String name;
       int years;
       byte status;
       double salary;
       final int size=19;
       Employee[] emps=new Employee[size];

       try
       {
           //create an instance of Scanner class to read file
           filereader=new Scanner(new File(fileName));
           int index=0;
           //read until end of file
           while(filereader.hasNextLine())
           {
               //read data
               String line=filereader.nextLine();
               String[] parts=line.split(\"\\\\.\");
               name=parts[0];
               String part2=parts[1];
               String[] data=part2.split(\"\\\\/\");
               years=Integer.parseInt(data[1]);
               status=Byte.parseByte(data[2]);
               salary=Double.parseDouble(data[3]);
               //Create an employee object
               emps[index]=new Employee(name, years, status, salary);
               //increment index
               index++;

           }

       } catch (FileNotFoundException e)
       {
           System.out.println(\"File Not Found\");
       }

       System.out.printf(\"%-20s%-10s%-10s%-8s\ \",
               \"Name\",\"Years\",\"Staus\",\"Salary\");
       System.out.println(\"--------------------------------------------------\");
       for (int i = 0; i < emps.length; i++)
       {
           System.out.print(emps[i]);
       }
      
       //set percentage of each employee based on status
       for (int i = 0; i < emps.length; i++)
       {
           if(emps[i].getStatus()==1)
           {
               if(emps[i].getYears()<=5)
               {
                   emps[i].setPercent(0.08);
               }
               else if(emps[i].getYears()>5 && emps[i].getYears()<=14)
               {
                   emps[i].setPercent(0.04);
               }
               else if(emps[i].getYears()>15 && emps[i].getYears()<=24)
               {
                   emps[i].setPercent(0.06);
               }
               if(emps[i].getYears()>=25)
               {
                   emps[i].setPercent(0.08);
               }
           }
           else
           {
               if(emps[i].getYears()<=5)
               {
                   emps[i].setPercent(0.01);
               }
               else if(emps[i].getYears()>5 && emps[i].getYears()<=14)
               {
                   emps[i].setPercent(0.02);
               }
               else if(emps[i].getYears()>15 && emps[i].getYears()<=24)
               {
                   emps[i].setPercent(0.03);
               }
               if(emps[i].getYears()>=25)
               {
                   emps[i].setPercent(0.04);
               }
           }

       }
      
       //print name and percentage raise
       System.out.printf(\"%-20s%-15s\ \",\"Name\",\"PercentRaise\");
       System.out.printf(\"--------------------------------------\ \");
       for (int i = 0; i < emps.length; i++)
       {
           System.out.printf(\"%-20s%-5.2f\ \",emps[i].getName(),
                   emps[i].getPercent());
       }
      
       double totalCost=0;
      
       System.out.printf(\"%-20s%-15s%-15s\ \",\"Name\",\"old salary\",
               \"new salary\");
       System.out.printf(\"-----------------------------------------------\ \");
       //print name old salary and new salary
       for (int i = 0; i < emps.length; i++)
       {
           double oldsalary=emps[i].getSalary();
           double newsalary=emps[i].getSalary()+emps[i].getSalary()*emps[i].getPercent();
           System.out.printf(\"%-20s%-15.2f%-15.2f\ \",emps[i].getName()
                   ,oldsalary,
                   newsalary);          
           totalCost+=(newsalary-oldsalary);          
       }
      
       //print total cost
       System.out.printf(\"Total cost : %10.2f\",totalCost);
      
   }
}

--------------------------------------------------------------------------------------------------------------------

CSUData.txt

Caldwell,E./25/1/117000
Matlock B./5/2/32000
Fletcher J./17/2/64000
Matlock, M./35/2/45000
Bajwa, J./22/1/10000
Flinstone, F./10/2/25000
Rubble, B./2/1/50000
Keaton, W./7/1/55000
Graham, M./2/1/50000
Barkly, J./0/2/25000
Madison, K./12/1/40000
Posten, F./10/1/65000
Browne, J./15/1/40000
Black, B./2/1/50000
Patton, C./2/1/50000
Lofton, C./2/1/50000
Batton, P./6/1/37000
Duck, D./2/2/15000
Washington, D./5/1/80000

--------------------------------------------------------------------------------------------------------------------

Sample Output:

Name                Years     Staus     Salary
--------------------------------------------------
Caldwell,E          25        1         117000.00
Matlock B           5         2         32000.00
Fletcher J          17        2         64000.00
Matlock, M          35        2         45000.00
Bajwa, J            22        1         10000.00
Flinstone, F        10        2         25000.00
Rubble, B           2         1         50000.00
Keaton, W           7         1         55000.00
Graham, M           2         1         50000.00
Barkly, J           0         2         25000.00
Madison, K          12        1         40000.00
Posten, F           10        1         65000.00
Browne, J           15        1         40000.00
Black, B            2         1         50000.00
Patton, C           2         1         50000.00
Lofton, C           2         1         50000.00
Batton, P           6         1         37000.00
Duck, D             2         2         15000.00
Washington, D       5         1         80000.00
Name                PercentRaise
--------------------------------------
Caldwell,E          0.08
Matlock B           0.01
Fletcher J          0.03
Matlock, M          0.04
Bajwa, J            0.06
Flinstone, F        0.02
Rubble, B           0.08
Keaton, W           0.04
Graham, M           0.08
Barkly, J           0.01
Madison, K          0.04
Posten, F           0.04
Browne, J           0.00
Black, B            0.08
Patton, C           0.08
Lofton, C           0.08
Batton, P           0.04
Duck, D             0.01
Washington, D       0.08
Name                old salary     new salary   
-----------------------------------------------
Caldwell,E          117000.00      126360.00    
Matlock B           32000.00       32320.00     
Fletcher J          64000.00       65920.00     
Matlock, M          45000.00       46800.00     
Bajwa, J            10000.00       10600.00     
Flinstone, F        25000.00       25500.00     
Rubble, B           50000.00       54000.00     
Keaton, W           55000.00       57200.00     
Graham, M           50000.00       54000.00     
Barkly, J           25000.00       25250.00     
Madison, K          40000.00       41600.00     
Posten, F           65000.00       67600.00     
Browne, J           40000.00       40000.00     
Black, B            50000.00       54000.00     
Patton, C           50000.00       54000.00     
Lofton, C           50000.00       54000.00     
Batton, P           37000.00       38480.00     
Duck, D             15000.00       15150.00     
Washington, D       80000.00       86400.00     
Total cost :   49180.00

Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade
Problem: Winston-Salem State University’s Office of Budget Management has decided to review the possibility of giving its faculty raises for the 2010-2011 Acade

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site