请注意:我建议使用数组,函数,参数传递来实现我的目标。
另一位需要帮助的计算器程序学生......你们中有多少人见过你们?严肃地说,我需要使用函数和参数传递来创建4名员工,然后计算总薪酬,联邦税总额,州税总额和所有四名员工的总净工资。到目前为止,我已经能够制作一个仅为1名员工执行此操作的程序。 我的问题是:如何扩展此代码以记录4个员工记录,然后计算上述总数? 我正在考虑将其置于for-loop中从i< 4开始,但我不确定。我最关心的是使用参数传递,因为我需要来使用参数传递。这是代码:
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
string employeeName;
float overtime;
float grossPay;
float hoursWorked;
float hourlyRate;
float statetaxOwed;
float statetaxRate;
float fedtaxOwed;
float fedtaxRate;
float netPay;
int main()
{
cout << "Please enter the Employee's Name: ";
getline(cin, employeeName);
cout << "Please enter your hours worked: ";
cin >> hoursWorked;
cout << "Please enter your hourly rate: ";
cin >> hourlyRate;
cout << "Please enter the Federal Tax Rate: ";
cin >> fedtaxRate;
cout << "Please enter the State Tax Rate: ";
cin >> statetaxRate;
if (hoursWorked>40){
hoursWorked = ((hoursWorked-40) * (1.5)) + 40;
}
else {
hoursWorked=hoursWorked;
}
grossPay = hoursWorked * hourlyRate;
fedtaxOwed = grossPay * (fedtaxRate/100);
statetaxOwed = grossPay * (statetaxRate/100);
netPay = (grossPay-fedtaxOwed- statetaxOwed);
cout << setprecision(2) << showpoint << fixed;
cout << "\nThe employee's name is: " << employeeName << endl;
cout << "The Gross Pay is: $" << grossPay << endl;
cout << "The Federal Taxes Owed is: $" << fedtaxOwed << endl;
cout << "The State Taxes Owed is: $" << statetaxOwed << endl;
cout << "The Net Pay for the Employee is: $" << netPay << endl;
}
理想情况下,流程的运行方式如下:
输入:员工1名称,工作小时数,小时费率,联邦税率和州税率
输入:员工2名称,工作小时数,小时费率,联邦税率和州税率
输入:员工3名称,工作小时数,小时费率,联邦税率和州税率
输入:员工4姓名,工作小时数,小时费率,联邦税率和州税率
{C A L C U L A T E}
打印:员工1姓名,总薪酬,美联储欠税,国家税收,净薪酬
打印:员工2名称,总薪酬,所欠税款,国家税收,净薪酬
打印:员工3姓名,总薪酬,美联储欠税,国家税收,净薪酬
打印:员工4姓名,总薪酬,美联储欠税,国家税收,净薪酬
打印:总薪酬,所欠联邦税总额,所欠国家税总额,净薪酬总额[这超过所有四名员工]
打印:计算加班工资总额和打印超时工作的员工数量
答案 0 :(得分:0)
首先,使用结构来描述一个员工:
struct EmployeeData
{
string employeeName;
float overtime;
float grossPay;
float hoursWorked;
float hourlyRate;
float statetaxOwed;
float statetaxRate;
float fedtaxOwed;
float fedtaxRate;
float netPay;
};
然后使用数组或其他容器类来描述多个EmployeeData
:
EmployeeData employee[4]; // array of 4 employees
然后访问每个员工,它将是:
employee[0] // first employee
employee[1] // second employee
employee[2] // third employee
employee[3] // fourth employee
注意方括号中的数字。您现在可以循环遍历员工数组:
// input the data for the 4 employees
for (int i = 0; i < 4; ++i)
{
cin >> empployee[i].employeeName;
cin >> empployee[i].overtime;
// etc..
}
定义功能:
void calculate_stats(Employee& theEmployee)
{
// theEmployee is the employee passed into the function
//...
}
然后调用函数:
int main()
{
//...
for (int i = 0; i < 4; ++i)
{
calculate_stats(employee[i]);
}
//...
}
这基本上就是骨架。如果有的话,您可以挑选出您可以使用的部件。