Try this:
using System;
class Program
{
static void Main()
{
while(true)
{
Console.Write("Enter Employee name or 'Quit' to quit : ");
string name = Console.ReadLine();
if (name == "Quit") return;
double hoursWorked;
double hourlyRate;
while(true)
{
Console.Write("Enter Hours Worked : ");
bool isValid = Double.TryParse(Console.ReadLine(), out hoursWorked);
if (isValid) break;
Console.WriteLine("Not a valid number. Please try again");
}
while(true)
{
Console.Write("Enter Hourly Rate of Pay : ");
bool isValid = Double.TryParse(Console.ReadLine(), out hourlyRate);
if (isValid) break;
Console.WriteLine("Not a valid number. Please try again");
}
Console.WriteLine();
double grossPay = CalculateGrossPay(hoursWorked, hourlyRate);
Console.WriteLine("Gross pay = {0:C}", grossPay);
double stateTax = CalculateStateTax(grossPay);
Console.WriteLine("State tax = {0:C}", stateTax);
double federalTax = CalculateFederalTax(grossPay);
Console.WriteLine("Federal tax = {0:C}", federalTax);
double FICATax = CalculateFICATax(grossPay);
Console.WriteLine("FICA tax = {0:C}", FICATax);
double netPay = CalculateNetPay(grossPay, stateTax, federalTax, FICATax);
Console.WriteLine("Net pay = {0:C}", netPay);
Console.WriteLine();
}
}
static double CalculateGrossPay(double hoursWorked, double hourlyRate)
{
return Math.Round(hoursWorked * hourlyRate, 2);
}
static double CalculateStateTax(double grossPay)
{
return Math.Round(grossPay * 0.04, 2);
}
static double CalculateFederalTax(double grossPay)
{
return Math.Round(grossPay * 0.23, 2);
}
static double CalculateFICATax(double grossPay)
{
return Math.Round(grossPay * 0.14, 2);
}
static double CalculateNetPay(double grossPay, double stateTax, double federalTax,
double FICAtax)
{
return Math.Round(grossPay - (stateTax + federalTax + FICAtax), 2);
}
}