import awb.*; import java.awt.*; import java.awt.event.*; public class ArrayStats extends java.applet.Applet implements ActionListener { TextField mInstruct, mAnswer; IntField iCount; double list[]; Button bStore, bShow, bExtremes, bMean, bClear; int count, nextFree, nextUse; double mean(double[] list, int size) { int k = 0; double sum = 0.0; while (k < size) { sum = sum + list[k]; k = k + 1; } return sum/size; } double max(double[] list, int size) { int k = 1; double largest = list[0]; while (k < size) { if (list[k] > largest) { largest = list[k]; } k = k + 1; } return largest; } double min(double[] list, int size) { int k = 1; double smallest = list[0]; while (k < size) { if (list[k] < smallest) { smallest = list[k]; } k = k + 1; } return smallest; } public void init() { list = new double[100]; mInstruct = new TextField(70); mAnswer = new TextField(70); mInstruct.setText("Enter Value, then press Store button"); iCount = new IntField(10); bStore = new Button("Store"); bShow = new Button("Show"); bExtremes = new Button("Extremes"); bMean = new Button("Mean"); bClear = new Button("Clear"); nextFree = 0; nextUse = 0; bStore.addActionListener(this); bShow.addActionListener(this); bExtremes.addActionListener(this); bMean.addActionListener(this); bClear.addActionListener(this); add(mInstruct); add(iCount); add(bStore); add(bShow); add(bExtremes); add(bMean); add(bClear); add(mAnswer); } public void actionPerformed(ActionEvent event) { int value, total;; Object cause = event.getSource(); if (cause == bStore) { value = iCount.getInt(); list[nextFree] = value; nextFree = nextFree + 1; iCount.setInt(); // clear IntField } if (cause == bShow) { mAnswer.setText("The value in element "+nextUse+" is "+ list[nextUse]); nextUse = (nextUse + 1)% nextFree; } if (cause == bExtremes) { mAnswer.setText("The largest data item is " + max(list, nextFree) + " and the smallest data item is " + min(list, nextFree)); } if (cause == bMean) { mAnswer.setText("The average is " + mean(list, nextFree)); } if (cause == bClear) { nextUse = 0; nextFree = 0; mAnswer.setText("The old data has been cleared out"); } } }