Newer
Older
ASS2021Java / src / IntListTest.java
@Motoki Miura Motoki Miura on 12 Oct 2021 2 KB add intlist
import java.util.ArrayList;
import java.util.Scanner;

public class IntListTest {

    public static void main(String[] args) {
        new IntListTest();
    }

    Scanner scan;

    IntListTest() {
        scan = new Scanner(System.in);
        AvgIL intlist = new AvgIL();
        System.out.println("Input integer or n|sum|avg|list|exit");
        while (true) {
            String in = scan.next();
            if (in.equals("exit")) {
                System.exit(0);
            } else if (in.equals("list")) {
                intlist.show();
            } else if (in.equals("n")) {
                System.out.println("n=" + intlist.size());
            } else if (in.equals("sum")) {
                System.out.println("sum=" + intlist.getSum());
            } else if (in.equals("avg")) {
                System.out.println("avg=" + intlist.getAvg());
            } else if (in.matches("[0-9]+")) { // Int value
                int num = Integer.parseInt(in);
                intlist.add(num);
                // System.out.println("sum="+intlist.getSum()+" avg="+intlist.getAvg()+"
                // n="+intlist.size());
            }
        }
    }
}

class IntList {
    protected ArrayList<Integer> intlist; // storage of int values

    IntList() {
        intlist = new ArrayList<Integer>();
    }

    public void add(int n) {
        intlist.add(n);
    }

    public int size() {
        return intlist.size();
    }

    public void show() {
        for (int k : intlist) {
            System.out.print(k + " ");
        }
        System.out.println("");
    }
}

class SumIL extends IntList {
    private float sum = 0;

    public void add(int n) {
        super.add(n);
        // update sum
        sum = 0;
        for (int k : intlist) {
            sum += k;
        }
    }

    public float getSum() {
        return sum;
    }
}

class AvgIL extends SumIL {
    private float avg = 0;

    public void add(int n) {
        super.add(n);
        // update avg
        float s = getSum();
        System.out.println("sum="+s);
        avg = -99999;
    }

    public float getAvg() {
        return avg;
    }
}