All pastes #1950863 Raw Edit

Stuff

public text v1 · immutable
#1950863 ·published 2010-09-29 04:43 UTC
rendered paste body
	/*
	 * Problem 10 -- Calculating the salary of a specific person
	 * 		 at a company
	 *
	 *        Author: SOME GUY
	 * Creation Date: 2010-09-20
	 * Modified Date: 2010-09-28
	 *   Description: Given the employee job classification,
	 *                Education background, merit rating
	 *                years of service and base pay, calculate
	 *                the percent of salary adjustment for each
	 *                employee
	 *
	 *          NOTE: TABLE TOO LARGE -- REFER TO
	 *          http://192.168.0.3/~wcrum/cs/pcc/problems/problem10.shtml
	 *
	 */

	import java.util.*;

	public class calcSalary
{

	public static void main( String args[] )
	{
		/*
		 * These variables define the FINAL number
		 * bleh...
		 */

		double jobRate;	//the job rate adjustment
				//based on service level
		double merit;   //the merit level of the person

		double education; //the amount of education they have had

		double service;  //the amount of time they worked at the
			      //company

		int basePay; //the base pay of the worker before the salary
		             //adjustment
		/*--------------------------------------------*/

	        /*
		 * get the base payment of everything
		 */
		basePay = getBasePay();

		
		/*
		 * BEGIN CODE TO DETERMINE JOB STATUS
		 *
		 */
		int jobChoice;
		String jobWord;
		//double jobRate; might just keep this at the top

		jobChoice = getJobChoice();
		jobWord   = getJobWord( jobChoice );
		jobRate   = getJobRate( jobChoice );
		
		/* END JOB PART ------------------------------*/


		/*
		 * Begin merit identification
		 */
		int meritChoice;
		String meritWord;
		//double merit; //might just keep this at the top

		meritChoice = getMeritChoice();
		meritWord   = getMeritWord( meritChoice );
		merit       = getMeritRate( meritChoice );

		/* End merit identifcation-------------------*/

		/* ---------------------------------------------
		 * Begin education identification...
		 */
		int educationChoice;
		String educationWord;
		//double education; //might just keep this at the top...

		educationChoice = getEducationChoice();
		educationWord   = getEducationWord( educationChoice );
		education	= getEducationRate( educationChoice );

		/* End education identifcation------------------ */
		
		/* -----------------------------------------------
		 * Begin service identification
		 * bleh...
		 */
		int serviceYears; //the number of years worked
		//double service; //already defined at the top

		serviceYears  = getServiceChoice();
		
		service = getServiceRate( serviceYears );

		/*-----------------------------------------------
		 * BEGIN CALCULATIONS
		 */

		double finalPay; //the final salary with adjustment

		finalPay = calcFinal( jobRate, merit, education, basePay, service );

		printResults( jobRate, merit, education, basePay, finalPay, service, jobWord, meritWord, educationWord, serviceYears );
			

	}


	/*AOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAO
	 * Begin functions related to job calculations...
	 * jobWord --> the specific job "word" to be used when printing results
	 * jobRate --> the actual rate used in calculations..
	 *
	 */

	/*
	 * retireive from the user, the job rate AS A WORD
	 * @return jobWord --> the percentage of job
	 *
	 */

	public static int getJobChoice() {

                int number; //the specific percentage
		Scanner inputBuffer = new Scanner(System.in);


		System.out.print("Job classification menu:\n\r" +
				 "Press 1 for management level\n\r" +
				 "Press 2 for technical level\n\r" +
				 "Press 3 for service level\n\rClassification> "
				 );

		number = inputBuffer.nextInt();

		return number;
	}

	/*
	 * return jobChoice as a WORD
	 * @param jobChoice --> the job choice as a choice number
	 * @return jobWord --> the word associated with the choice
	 *
	 */

	public static String getJobWord( int jobChoice )
	{
		String wordUp;

		switch ( jobChoice )
		{
			case 1:
				wordUp = "Management";
			break;
			
			case 2:

				wordUp = "Technical";
			break;

			default:
				wordUp = "Service";
		}
		
		return wordUp;
	}


	/*
	 * return jobChoice as a number
	 * @param jobChoice --> the job choice
	 * @return jobRate --> the job choice as a rate to be calculated
	 */

	public static double getJobRate( int jobChoice )
	{
	    double number; //the number blah
		switch (jobChoice)
		{
			case 1:
	                
			number = 0.01;
			break;
			
			case 2:
			
			number = 0.015;
			break;

			default:

			number = 0.016;
			break;

		}
		
		return number;
	}

	/* 
	 * THIS ENDS FUNCTIONS RELATED TO JOB CALCULATIONS
	 */
	
	/*
	 * BEGIN MERIT IDENTIFICATION
	 * IMPORTANT VARS:
	 * meritWord --> the specific word related to the number
	 * merit     --> the number used for calculation
	 */

	/*
	 * identify the specific choice of merit, then export as a number
	 * @return meritChoice --> the internal choice as a number
	 *
	 */

	public static int getMeritChoice()
	{

                int number; //the specific percentage
		Scanner inputBuffer = new Scanner(System.in);


		System.out.print("Merit classification menu:\n\r" +
				 "Press 1 for poor service\n\r" +
				 "Press 2 for good service\n\r" +
				 "Press 3 for excellent service\n\rClassification> "
				 );

		number = inputBuffer.nextInt();

		return number;
	}

	/*
	 * return the choice of merit as a word.
	 * @param meritChoice --> the specific choice of merit from the menu
	 * @return meritWord --> the specific merit word returned
	 */

	public static String getMeritWord( int meritChoice )
	{
		String wordUp;

		switch ( meritChoice )
		{
			case 1:
				wordUp = "Poor";
			break;

			case 2:
				wordUp = "Good";
			break;

			default:
				wordUp = "Excellent";
			break;
		}
	
		return wordUp;
	}

	/*
	 * return meritChoice as a number.
	 *
	 * @param meritChoice --> the specific merit choice
	 * @return meritRate --> the specific merit rate returned as a number
	 *
	 */

	public static double getMeritRate( int meritChoice )
	{
		double number;

		switch( meritChoice )
		{
			case 1:
				number = -0.04;
			break;

			case 2:
				number = 0.015;
			break;

			default:
				number = 0.02;
			break;
		}

		return number;
	}

	/*
	 * THIS ENDS THE MERIT IDENTIFICATION BLAHBLAHBLAH.
	 */


	/*
	 * THIS BEGINS THE EDUCATION IDENTIFICATION
	 *
	 */

	/*
	 * Return the choice of education from the menu
	 * @return educationChoice --> the specific choice
	 */
	public static int getEducationChoice()
	{
		int number; //the number of something
		Scanner inputBuffer = new Scanner(System.in);
		System.out.print("Education menu:\n\r" +                                                                               "Press 1 for High School education.\n\r" +                                                       "Press 2 for College education.\n\r" +                                                           "Press 3 for Graduate school education.\n\r"  +                                                  "Classification> ");
		number = inputBuffer.nextInt();
		return number;
	}

	/*
	 * take from educationChoice and return a word
	 * associated with it.
	 * @param educationChoice --> the specific choice chosen
	 *                            from the menu
	 *
	 * @return educationWord --> the specific word associated with
	 *                           the choice
	 *
	 */

	public static String getEducationWord( int educationChoice )
	{
		String wordUp; //the word associated with the number.

		switch( educationChoice )
		{
			case 1:
				wordUp = "High School";
			break;
			
			case 2:
				wordUp = "College";
			break;
			
			default:
				wordUp = "Graduate School";
			break;
		}
		return wordUp;

	}


	/*
	 * take the educationChoice and return a rate to be calculated
	 * @param educationChoice --> the choice taken from the menu
	 * @return education      --> the specific rate to be calculated
	 *
	 */

	public static double getEducationRate( int educationChoice )
	{
		double number; //the number to be calculated with.

			switch( educationChoice )
			{
				case 1:
					number = 0.01;
				break;
				
				case 2:
					number = 0.012;
				break;

				default:
					number = 0.0135;
				break;
			}

		return number;
	}

	/*
	 * this ends the education identification
	 *
	 */

	/*
	 * this begins the service identification.
	 *
	 */


	/*
	 * Print out the menu, then return the classification
	 * AS A NUMBER TO BE USED LATER.
	 *
	 * @return serviceChoice --> the choice number.
	 *
	 */

	public static int getServiceChoice()
	{
		int number; //number used for figuring out choice
		Scanner inputBuffer = new Scanner(System.in);

		System.out.print("Service identification menu:\n\r" +                                                             "Enter how many years they have worked.\n\r" +                                                   "Round the number to the next WHOLE YEAR\n\r" +                                                  "Classification> " );

		number = inputBuffer.nextInt();

		return number;
	}

	/*
	 * Calculate the percentage of years worked
	 * @param serviceYears --> number of years worked
	 */
	public static double getServiceRate( int serviceYears )
	{
		double serviceRate; //the rate to calculate the salary by

		serviceRate = 0.01; //0 to 10 years

		if (serviceRate > 10) {
			serviceRate = 0.012;
		}

		if (serviceRate > 20) {
			serviceRate = ( 0.0135 + ( 0.007 * 20 ) );
		}
		return serviceRate;

	}

	
	
	/*
	 * this ends service identification.
	 *
	 */

	/*
	 * get from the user, the base pay
	 * @return basePay --> the base number to calculate
	 * 			everything off of
	 *
	 */

	public static int getBasePay()
	{
		int number; //number used for base pay
		Scanner inputBuffer = new Scanner(System.in);

		System.out.print("What is the worker's base pay?\n\r> ");

		number = inputBuffer.nextInt();

		return number;

	}


	/*
	 * Calculate everything in DANGO DAI KAZOKOU
	 * @param jobRate --> the job rate
	 * @param merit --> the merit rating
	 * @param education --> the education rating
	 * @param basePay --> the base payment of the salary
	 * @param service --> the service rating
	 */

	public static double calcFinal( double jobRate, double merit, double education, double basePay, double service )
	{

		double finalPay;   //the final salary to be outputted

		double calcMoney;  //the salary adjustment to be added
				   //to the thing

		double finalRates; //the sum of all the rates

		finalRates = ( jobRate + merit + education + service );

		calcMoney = ( basePay * finalRates );

		finalPay = ( basePay + calcMoney );

		return finalPay;
	}

	/*
	 * finally return everything in a nice format :)
	 *
	 * @param jobRate --------> the specific job RATE
	 * @param merit ----------> the merit RATE
	 * @param education ------> the education RATE
	 * @param basePay --------> the base PAY RATE
	 * @param finalPay -------> the final payment already adjusted
	 * @param service --------> the service RATE
	 * @param jobWord --------> the job WORD
	 * @param meritWord ------> the merit WORD
	 * @param educationWord --> the education WORD
	 * @param serviceYears ---> the amount of years worked
	 *
	 */

	public static void printResults ( double jobRate, double merit, double education, double basePay, double finalPay, double service, String jobWord, String meritWord, String educationWord, int serviceYears )
	{
//System.out.print( "\n\r" + jobRate + " " + merit + " " + education + " " + basePay + " " + finalPay + " " + service + " " + jobWord + " " + meritWord + " " + educationWord + " " + serviceYears);

		System.out.print("\n\r---[FINAL RESULTS]-------------------------\n\r" +                                             "Inital base pay: $" + basePay + "\n\r" +                                                            "Job Rate: " + jobRate + " (" + jobWord + ")\n\r" +                                                 "Service Rating: " + service + " (" + serviceYears + " Years)\n\r"                                + "Education: " + education + " (" + educationWord + ")\n\r"                                        + "Merit Rating: " + merit + " (" + meritWord + ")\n\r"                                             + "Final calculated payment: $" + finalPay + "\n\r"                                                  + "-------------------------------------[END]-\n\r"   				);
	}

}