<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM FORM 10Q FOR
THE QUARTER ENDING AUGUST 31, 2000 AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE
TO SUCH FINANCIAL STATEMENTS.
</LEGEND>
<S> <C> <C>
<PERIOD-TYPE> 3-MOS 6-MOS
<FISCAL-YEAR-END> FEB-28-2001 FEB-28-2001
<PERIOD-START> JUN-01-2000 MAR-01-2000
<PERIOD-END> AUG-31-2000 AUG-31-2000
<CASH> 12,324,054 0
<SECURITIES> 0 0
<RECEIVABLES> 14,362,227 0
<ALLOWANCES> 619,430 0
<INVENTORY> 4,215,754 0
<CURRENT-ASSETS> 31,767,447 0
<PP&E> 32,845,957 0
<DEPRECIATION> 22,523,462 0
<TOTAL-ASSETS> 43,450,617 0
<CURRENT-LIABILITIES> 11,422,441 0
<BONDS> 0 0
0 0
0 0
<COMMON> 225,051 0
<OTHER-SE> 26,305,652 0
<TOTAL-LIABILITY-AND-EQUITY> 43,450,617 0
<SALES> 25,541,921 49,365,635
<TOTAL-REVENUES> 26,316,881 50,632,435
<CGS> 12,015,201 23,088,954
<TOTAL-COSTS> 12,015,201 23,088,954
<OTHER-EXPENSES> 9,242,152 18,445,873
<LOSS-PROVISION> 67,590 50,855
<INTEREST-EXPENSE> 81,265 159,162
<INCOME-PRETAX> 5,182,636 9,299,832
<INCOME-TAX> 2,021,000 3,627,000
<INCOME-CONTINUING> 3,161,636 5,672,832
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 3,161,636 5,672,832
<EPS-BASIC> .20 .35
<EPS-DILUTED> .19 .34
</TABLE>