본문 바로가기

Java/예제

계산기 만들기

sample.java

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Sample {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
        List<Integer> number_list = new ArrayList<>(list);
        Calculator cal = new NoLimitCalculator();
        System.out.println(cal.find_evg(number_list));
        cal.add(10);
        System.out.println(cal.getValue());
        Calculator Limit_Cal = new MaxLimitCalculator();
        Limit_Cal.add(90);
        Limit_Cal.minus(40);
        Limit_Cal.add(30);
        System.out.println(Limit_Cal.getValue());
        Limit_Cal.find_Even_Or_Odd();

        Calculator Mineral_cal = new NoLimitCalculator();
        Mineral_cal.add(Mineral_list.Gold);
        Mineral_cal.add(Mineral_list.Silver);
        Mineral_cal.add(Mineral_list.Bronze);
        System.out.println(Mineral_cal.getValue());  // 270 출력
    }
}

Calculator.java

import java.util.ArrayList;
import java.util.List;

interface Calculator {
    void add(int num);

    void minus(int num);
    String getValue();

    void find_Even_Or_Odd();

    int find_evg(List<Integer> integerList);
}

NoLimitCalculator.java

import java.util.List;

class NoLimitCalculator implements Calculator{
    int value;

    public NoLimitCalculator() {
        this.value = 0;
    }

    @Override
    public void add(int num) {
        this.value += num;
    }

    @Override
    public void minus(int num) {
        this.value -= num;
    }

    @Override
    public String getValue() {
        return Integer.toString(this.value);
    }

    @Override
    public void find_Even_Or_Odd() {
        if(this.value % 2 == 0){
            System.out.println("짝수");
        }
        else {
            System.out.println("홀수");
        }
    }

    @Override
    public int find_evg(List<Integer> NumberList) {
        int result = 0;
        int avg;
        for(int i = 0; i < NumberList.size(); i++){
            result += NumberList.get(i);
        }
        avg = result / NumberList.size();
        return avg;
    }
    public int divide(int val){
        this.value %= val;
        return val;
    }

}

MaxLimitCalculator.java

import java.util.List;

class MaxLimitCalculator implements Calculator {
    int value;
    MaxLimitCalculator() {
        this.value = 0;
    }
    public void add(int num) {
        if (this.value > 100) {
            return;
        }
        this.value += num;
    }

    @Override
    public void minus(int num) {
        if (this.value > 100) {
            return;
        }
        this.value -= num;
    }

    public String getValue() {
        return (this.value > 100) ? "100을 초과하였습니다" : Integer.toString(this.value);
    }
    @Override
    public void find_Even_Or_Odd() {
        if(this.value > 100){
            System.out.println("100을 초과하였습니다");
        }
        else {
            if (this.value % 2 == 0) {
                System.out.println("짝수");
            }
            else {
                System.out.println("홀수");
            }
        }
    }

    @Override
    public int find_evg(List<Integer> NumberList) {
        int result = 0;
        int avg = 0;
        if(this.value > 100){
            System.out.println("100을 초과하였습니다");
        }
        else {
            for (int i = 0; i < NumberList.size(); i++) {
                result += NumberList.get(i);
            }
            avg = result / NumberList.size();
        }
        return avg;
    }


}

 

Mineral_list.java

public class Mineral_list {
    public static int Diamond = 120;
    public static int Platinum = 110;
    public static int Gold = 100;
    public static int Silver = 90;
    public static int Bronze = 80;
}

 

'Java > 예제' 카테고리의 다른 글

객체지향 강의 예제 - 1  (0) 2022.11.18
Stream 예제  (0) 2022.11.17
리스트 - ArrayDeque  (0) 2022.11.16
컬렉션 - Queue  (0) 2022.11.16
컬렉션 - Stack  (0) 2022.11.16