我的简单类函数中出现意外输出.为什么
Unexpected output in my simple class function. Why?
这是我正在尝试执行的任务:
定义一个 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));
}
相关文章:
- 字符串比较中的意外输出
- 来自 decltype 的意外输出类型
- 字符数组到十六进制字符串的转换 - 意外输出
- 使用 boost::regex 从目录中获取带有一些正则表达式的文件名称时出现意外输出
- 使用后序遍历递归的深度优先搜索会产生意外输出
- C++的意外输出
- 贝金纳C++练习解决方案的意外输出
- 无效* 转换获得意外输出
- 以下程序的意外输出
- 意外输出:矢量矢量(功率集)
- 基本 int 数组提供意外输出
- 线程的意外输出
- 减法中的意外输出
- 带有左移操作员C 的意外输出
- C strncpy意外输出
- 意外输出..函数绑定在虚拟表中的发生方式
- 星号的意外输出
- 已编译的 protobuf 文件的意外输出路径
- 打印对象矢量的意外输出
- 递归函数用于计算 n 个数字之和的意外输出