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;

}