<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM (A)
CONSOLIDATED BALANCE SHEET AND CONSOLIDATED STATEMENTS OF INCOME AND IS
QUALIFIED IN ITS ENTIRETY BY REFERENCE TO SUCH
</LEGEND>
<S> <C>
<PERIOD-TYPE> YEAR
<FISCAL-YEAR-END> MAY-31-2000
<PERIOD-START> JUN-01-1999
<PERIOD-END> MAY-31-2000
<CASH> 2,198,189
<SECURITIES> 8,471,740
<RECEIVABLES> 5,237,692
<ALLOWANCES> 361,000
<INVENTORY> 5,393,017
<CURRENT-ASSETS> 21,601,839
<PP&E> 6,860,578
<DEPRECIATION> 4,205,333
<TOTAL-ASSETS> 29,528,441
<CURRENT-LIABILITIES> 3,337,379
<BONDS> 0
0
0
<COMMON> 923,710
<OTHER-SE> 24,880,136
<TOTAL-LIABILITY-AND-EQUITY> 29,528,441
<SALES> 23,512,018
<TOTAL-REVENUES> 23,512,018
<CGS> 10,860,468
<TOTAL-COSTS> 21,149,447
<OTHER-EXPENSES> (1,933,046)
<LOSS-PROVISION> 0
<INTEREST-EXPENSE> 12,106
<INCOME-PRETAX> 4,283,511
<INCOME-TAX> 1,210,000
<INCOME-CONTINUING> 3,073,511
<DISCONTINUED> 0
<EXTRAORDINARY> 0
<CHANGES> 0
<NET-INCOME> 3,073,511
<EPS-BASIC> .52
<EPS-DILUTED> .52
</TABLE>