小型学校项目的多个问题

时间:2019-01-24 07:59:39

标签: c++

我需要编写一个程序,计算一个员工的净工资,其基本抵扣额为$ 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;

} //主行结束

1 个答案:

答案 0 :(得分:1)

  1. 您的代码:

    如果(名称!= EOFNAME) { //做点什么 } 如果(净> 0) ...

因此,即使name == EOFNAME,您也只需跳过第一个括号,程序仍在运行。 您可以使用

if (name == EOFNAME)
{
 cout << "End of program";
 return 0;
}

现在,如果用户已经写了EOFNAME程序,程序将显示“程序结束”并结束。在其他所有情况下,它将在if语句之后移至下一行。

  1. 在显示一些符号或句子后再尝试以endl结尾;这样,在控制台视图中便更具可读性。

  2. 尝试在创建值时始终为其分配值,例如:

    int net = 0;
    

这减少了以后程序意外运行的风险。

  1. 要在末尾说“输入要退出的姓氏或(EOFNAME)”,必须将所有内容放入while循环中。

    while (logic value)
    {
    \\ do something many times in loop
    }
    

只要逻辑值为true,它就会循环执行某些操作。因此,如果用户要结束程序,则必须创建一些逻辑变量bool并将其更改为false

  1. 考虑检查用户是否输入正确答案。如果用户错误地用字符串回答“输入工作时间”怎么办?您的程序将以错误结束。