package quiz; import static org.junit.Assert.assertNotNull; import java.util.Scanner; import org.junit.Test; public class MovingMoney { private int memberSize; private Scanner scanner = new Scanner(System.in); private double spanMoneies[]; private double average = 0.0; private String result = ""; @Test public void createMovingMoney() { MovingMoney mm = new MovingMoney(); assertNotNull(mm); } @Test public void startQuiz() { System.out.println("3¹ø ÄûÁ ½ÃÀÛÇսôÙ"); System.out.println("Àοø¼ö¸¦ ±×¸¸ ÇÏ°í ½ÍÀ» ¶© '0'À» ÀÔ·ÂÇϼ¼¿ä"); while (true) { getMemberSize(); if (memberSize == 0) { print(); break; } getSpandMoney(); getAverageMoney(); getMovingMoney(); } } private void getMovingMoney() { double tempMovingMoney = 0.0; for (int i = 0; i < spanMoneies.length; i++) { System.out.println("value : " + Math.abs(spanMoneies[i] - average)); tempMovingMoney += make2Format(Math.abs(spanMoneies[i] - average)); System.out.println("tempMovingMoney : " + tempMovingMoney); } result += "$" + make2Format(tempMovingMoney / 2.0) + "\n"; } private double make2Format(double amount) { return (double) ((int) (amount * 100)) / 100; } private void getAverageMoney() { double sum = 0.0; for (int i = 0; i < spanMoneies.length; i++) { sum += spanMoneies[i]; } double numberOfStudents = memberSize; average = sum / numberOfStudents; System.out.println(average); average = makeFormat(average); System.out.println(makeFormat(average)); } private double makeFormat(double average) { long tempAverage = (long) (average * 10000); if ((tempAverage % 10) == 9) { tempAverage += 1; } return (double) tempAverage / 10000; } private void getSpandMoney() { spanMoneies = new double[memberSize]; for (int i = 0; i < memberSize; i++) { spanMoneies[i] = scanner.nextDouble(); } } private void print() { System.out.println(result); } private void getMemberSize() { memberSize = scanner.nextInt(); } }