我的简单类函数中出现意外输出.为什么

Unexpected output in my simple class function. Why?

本文关键字:意外 输出 为什么 简单 类函数 我的      更新时间:2023-10-16

这是我正在尝试执行的任务:

定义一个 PayRoll 类,该类具有员工每小时工资率(整数,表示美分)和工作小时数(也是整数)的数据成员。该类提供两个成员函数 setRate 和 setHours,用于将其参数的值分配给相应的数据成员。该类提供第三个成员函数 getPay,该函数返回每周总工资(以美分为单位),计算方法如下:前 35 小时的小时乘以费率加上超过 35 小时的任何小时的小时乘以 1 个半。

预期输出:

With•rate•set•to•150•and•hours•set•to•20•getPay•returns•3000
With•rate•set•to•230•and•hours•set•to•15•getPay•returns•3450
With•rate•set•to•975•and•hours•set•to•33•getPay•returns•32175
With•rate•set•to•1000•and•hours•set•to•35•getPay•returns•35000
With•rate•set•to•1000•and•hours•set•to•36•getPay•returns•36500
With•rate•set•to•850•and•hours•set•to•40•getPay•returns•36125

实际输出:

With•rate•set•to•150•and•hours•set•to•20•getPay•returns•3000
With•rate•set•to•230•and•hours•set•to•15•getPay•returns•3450
With•rate•set•to•975•and•hours•set•to•33•getPay•returns•32175
With•rate•set•to•1000•and•hours•set•to•35•getPay•returns•35000
With•rate•set•to•1000•and•hours•set•to•36•getPay•returns•54000
With•rate•set•to•850•and•hours•set•to•40•getPay•returns•51000

如您所见,最后两个实际输出与预期输出不同。我不知道为什么。这是我的问题。

我的代码:

class PayRoll
{
private:
    int hourlyPayRate;
    int hoursWorked;
public:
    void setRate (int iRate){
        hourlyPayRate = iRate;
    }
    void setHours (int iHours) {
        hoursWorked = iHours;
    }
    int getPay() {
        if (hoursWorked <= 35)
            return hoursWorked * hourlyPayRate;
        else if (hoursWorked > 35)
            return hoursWorked * hourlyPayRate * 1.5; 
    }
};

请尝试以下操作:

int getPay() {
    if (hoursWorked <= 35) 
        return hoursWorked * hourlyPayRate;
    else if (hoursWorked > 35)
        // Hourly rate for the first 35 hours and 1.5 time for 
        // the remaining = (hours -35)
        return (35 * hourlyPayRate ) + ((hoursWorked-35) * (hourlyPayRate * 1.5)); 
}