626 Часть IV. Новые возможности C++
• // Начальное значение кода возврата re = EXP_NO_ERROR;.
// Прочитать запись расходов из файла infile » NewExpense;
// Проверить ее корректность
if (NewExpense.GetExpenseAmount() < MIN_ALLOWABLE_EXPENSE) { cout « "Error! Expense item under the minimum amount " « "eligible for reimbursement.\n\n";
. re = EXP_ERR_EXPENSE_TOO_SMALL;
• return O.OF;
» ' • •
if (NewExpense.GetExpenseAmount() > MAX_ALLOWABLE_EXPENSE) { cout « "Error! Expense item greater than maximum amount " « "eligible for reimbursement.\n\n";
re = EXP_ERR_EXPENSE_TOO_LARGE;
return O.OF;
}
«
U Вывести расходы на экран cout « " " « setw(lO) « NewExpense.GetDate();
cout « setw(35) « NewExpense.Get Description();
cout.unsetf(ios::left) ;
cout « setw(12)«NewExpense.GetExpenseAmount()« "\n"« setw(O);
cout.setf(ios:;left) ;
return NewExpense.GetExpenseAmount() ;
}
float ProcessEmployee(ifstreams infile, ErrorCodes re) {
Employee NewEmployee;
float EmployeeTotal = O.OF;
unsigned loop;
// Начальное значение кода возврата re = EXP_NO_ERROR;
// Прочитать из файла запись о служащем infile » NewEmployee;
// Проверить ее корректность if (NewEmployee.GetNumExpenses() < MIN_NUM_EXPENSES) i
cout « "Error! No expense items for this employee.\n\n";
re = EXP_ERR_NO_EXPENSE_ITEMS;
return O.OF;
i if (NewEmployee.GetNumExpenses() > MAX_NUM_EXPENSES) (
cout « "Error! Too many expense items for this employee.\n\n";
re = EXP_ERR_TOO_MANY_EXPENSE_ITEMS;
return O.OF;
}