<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<MULTIPLIER> 1,000
<S> <C>
<PERIOD-TYPE> YEAR
<FISCAL-YEAR-END> APR-30-2000
<PERIOD-START> MAY-01-1999
<PERIOD-END> APR-30-2000
<CASH> 9
<SECURITIES> 0
<RECEIVABLES> 17,993
<ALLOWANCES> 490
<INVENTORY> 3,499
<CURRENT-ASSETS> 23,032
<PP&E> 33,242
<DEPRECIATION> 19,736
<TOTAL-ASSETS> 39,316
<CURRENT-LIABILITIES> 11,560
<BONDS> 0
0
0
<COMMON> 6,550
<OTHER-SE> 18,585
<TOTAL-LIABILITY-AND-EQUITY> 39,316
<SALES> 74,798
<TOTAL-REVENUES> 74,798
<CGS> 57,715
<TOTAL-COSTS> 57,715
<OTHER-EXPENSES> 12,429
<LOSS-PROVISION> 0
<INTEREST-EXPENSE> 169
<INCOME-PRETAX> 4,811
<INCOME-TAX> 1,250
<INCOME-CONTINUING> 3,561
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 3,561
<EPS-BASIC> 1.45
<EPS-DILUTED> 1.44
</TABLE>