-8
enter code here
#include<iostream>
#include<iomanip>
using namespace std;


int main()
{
    double employeeNum    = 0.0;            double totalEmployees    = 0.0;
    double hourlyRate    = 0.0;            double totalhoursWork    = 0.0;
    double hoursWork    = 0.0;            double totalnetPay        = 0.0;
    double grossPay        = 0.0;            double averagehoursWork    = 0.0;
    double netPay        = 0.0;            double totalwithHoldings = 0.0;
    double withHoldings    = 0.0;


    cout <<" Enter Employee Number or 9999 to Stop:";
    cin >> employeeNum;
    cout <<"Enter hourly rate:";
    cin >> hourlyRate;
    cout <<"Enter hours worked:";
    cin >> hoursWork;

    while(employeeNum != 9999)
    {

        if (hoursWork >= 40)
        {
            grossPay= hoursWork * hourlyRate;
            cout <<" Gross Weekly Pay:" << grossPay << endl;
        }
        else (hoursWork > 40);
        {
            grossPay= hoursWork * hourlyRate*1.5;
            cout <<" Gross Weekly Pay:" << grossPay << endl;
        }

        while( grossPay > 1,000.00)
        {
            withHoldings= grossPay/ 0.28;

        }
        while( grossPay < 1,000.0)
        {
            withHoldings= grossPay/ 0.21;
        }

        netPay= grossPay-withHoldings;
        cout <<" Net Weekly Pay:" << netPay << endl;

        cout <<" Enter Employee Number or 9999 to Stop:";
        cin >> employeeNum;
        cout <<"Enter hourly rate:";
        cin >> hourlyRate;
        cout <<"Enter hours worked:";
        cin >> hoursWork; 
    }   
    system("pause");
    return 0;
}

从一个空白的解决方案开始,编写一个程序来提示用户输入员工编号、小时费率和工作小时数。计算并显示员工人数、周薪总额和周薪净额。每周总工资的计算方法是前 40 小时的工作时间乘以 1.5 小时数乘以任何超过 40 小时的工资率。净工资是总工资减去预扣税。如果总工资超过 1,000 美元,预扣税按总工资的 28% 计算,如果总工资为 1000 美元或以下,则按总工资的 21% 计算。用户的所有输入都应验证为有效。每小时费率必须高于 7.25 美元且低于 100.00 美元。工作时间必须大于 0 且小于 120。如果用户输入无效数据显示和相应的错误消息并要求用户重新输入。使用后测试循环重复此过程,直到用户输入 9999,程序应显示输入的员工总数、总工作时间、平均工作时间、总净工资和总预扣税。所有数字输出应以固定表示法显示,带两位小数

4

3 回答 3

3
while( grossPay > 1000.00)
        {
            withHoldings= grossPay/ 0.28;

        }

要么条件为真,然后保持为真,循环将永远循环,要么条件不成立,语句永远不会执行。

while在循环内更改if或修改。grossPay

此外,不要在浮点常量中包含逗号。

于 2013-04-16T15:09:35.073 回答
1

您的循环没有执行,因为您的浮点常量中有一个“,”。使用 1000.00 而不是 1,000.00

于 2013-04-16T15:23:15.510 回答
0

您有第二个条件与第一个条件 ( (hoursWork > 40);) 重复,并且条件末尾有一个分号。请在此处发布之前仔细检查语法。

于 2013-04-16T15:08:34.230 回答