こんにちはforループを同じ出力で5回実行しようとしています
私は従業員の給料を出力するコードを書いています。
また、私は自分自身でそれを理解しようとしましたが、たくさんの研究を行っていましたが、同じ出力画面に5人の従業員の情報を連続して入力できるようにforループを取得する方法がわかりません。プログラムを実行すると、新しい給料伝票の冒頭にある従業員の名前を除いて、給与伝票のすべての情報を入力することができます。
私はできるだけ多くのことを学びたいと思っていますので、どんな説明も大歓迎です。次のように
私のコードは次のとおりです。
#include <iostream>
#include <string>
using namespace std;
void getData (string & theEmployee , float & theHoursWorked, float &
thePayRate)
{
cout<< "Enter the employees name and surname: "<< endl;
getline(cin, theEmployee);
cout << "Enter the numbers of hours the employee worked: " << endl;
cin >> theHoursWorked;
cout << "Enter the employees hourly pay rate?" << endl;
cin >> thePayRate;
}
float calculatePay(const string & theEmployee, float theHoursWorked, float
thePayRate)
{
float regularPay, thePay, overtimeHours;
if (theHoursWorked > 40)
{
regularPay = 40 * thePayRate;
overtimeHours = theHoursWorked - 40;
thePay = regularPay + (overtimeHours * 1.5 * thePayRate);
return thePay
}
else
thePay = theHoursWorked * thePayRate;
return thePay;
}
void printPaySlip(const string & theEmployee, float theHoursWorked, float
thePayRate, float thePay)
{
float overtimeHours;
cout << "Pay slip for " << theEmployee <<endl;
cout << "Hours worked: "<< theHoursWorked << endl;
if (theHoursWorked > 40)
overtimeHours = theHoursWorked - 40;
else
overtimeHours = 0;
cout << "Overtime hours: "<< overtimeHours << endl;
cout << "Hourly pay rate: " << thePayRate << endl;
cout << "Pay: " << thePay << endl;
cout << endl;
}
int main()
{
string theEmployee;
float theHoursWorked;
float thePayRate;
int thePay;
for (int i = 0; i < 5; i++)
{
getData(theEmployee, theHoursWorked, thePayRate);
thePay = calculatePay (theEmployee, theHoursWorked, thePayRate);
printPaySlip(theEmployee, theHoursWorked, thePayRate, thePay);
}
return 0;
}
getlineとcin >> int、またはhttp://stackoverflow.com/questions/5739937/using-getlinecin-s-after-cinまたは短い形式を参照してください。これをgetDataの最後に入れてみてください。cin.ignore std :: numeric_limits :: max()、 '\ n'); –
もし私が他の2つの下のgetlineを使用すると、エラーがあると言われます – Geo
どうすればそれを正しく宣言できますか? – Geo