我需要编写一个程序,计算一个员工的净工资,其基本抵扣额为$ 45。该程序让我输入他们的姓名,工作时间和小时费率。该程序还希望我输入可以退出的字符串(EOFNAME)。工时和净薪的计算工作正常,但我无法用字符串退出。另外,我必须在最后输入“我输入了要退出的名字或(EOFNAME)”,但我无法弄清楚。如果您能告诉我该怎么办,我将不胜感激。
编辑:我已经修改了do while循环底部的代码。我现在唯一需要做的就是让它通过询问另一个名字来重复该程序。将忽略声明的变量和其他内容。
// Declare input items
cout << "first name or " << EOFNAME << " to quit ";
cin >> name;
if (name == EOFNAME)
{
cout << "End of program ";
return 0;
}
else
{
cout << "Enter hours worked for " << name << endl;
cin >> hours;
cout << "Enter hourly rate for " << name << endl;
cin >> rate;
gross = hours * rate;
net = gross - DEDUCTION;
}
do
{
cout << "Net pay for " << name << " is " << net << endl;
break;
}
while (net > 0);
{
if (net < 0)
cout << "Deductions not covered. Net is 0." << endl;
}
return 0;
} //主行结束
答案 0 :(得分:1)
您的代码:
如果(名称!= EOFNAME) { //做点什么 } 如果(净> 0) ...
因此,即使name == EOFNAME,您也只需跳过第一个括号,程序仍在运行。 您可以使用
if (name == EOFNAME)
{
cout << "End of program";
return 0;
}
现在,如果用户已经写了EOFNAME程序,程序将显示“程序结束”并结束。在其他所有情况下,它将在if语句之后移至下一行。
在显示一些符号或句子后再尝试以endl结尾;这样,在控制台视图中便更具可读性。
尝试在创建值时始终为其分配值,例如:
int net = 0;
这减少了以后程序意外运行的风险。
要在末尾说“输入要退出的姓氏或(EOFNAME)”,必须将所有内容放入while循环中。
while (logic value)
{
\\ do something many times in loop
}
只要逻辑值为true
,它就会循环执行某些操作。因此,如果用户要结束程序,则必须创建一些逻辑变量bool
并将其更改为false
。