반응형
SMALL
계산기 만들기
두 개 숫자의 +, -를 계산하여 출력하는 계산기를 작성하시오.
클래스 CalculatorLogic을 완성하여,
다음과 같은 계산이 동작하도록 하시오.
1 + 1 = 2
1 + 11 = 12
11 + 1 = 12
1 - 1 = 0
1 - 11 = -10
11 - 1 = 10
숫자: 1자리 이상, 10자리까지 처리가 가능해야 함.
연산: +와 -만 처리
CLEAR를 누르면 0으로 초기화하고 0만 표시
입력순서에 맞는 않을 경우, 무시
제출물: 돌아가는 소스코드 시연
소스코드 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | public class CalculatorLogic { boolean firstNum; boolean opSymbol; boolean secondNum; int first; int second; String op; public String addSymbol(String s) { if (s.equalsIgnoreCase("+") == true) { op = s; return ""; } else if (s.equalsIgnoreCase("-") == true) { op = s; return ""; } else if (s.equalsIgnoreCase("=") == true) { if (op.equalsIgnoreCase("+")) { return first+second+""; } else if (op.equalsIgnoreCase("-")) { return first-second+""; } } else { return "---"; } return ""; } public CalculatorLogic() { firstNum = false; opSymbol = false; secondNum = false; first = 0; second = 0; op = ""; } } |
소스코드 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | import java.awt.*; import javax.swing.*; import java.awt.event.*; public class CalculatorExterior extends JFrame implements ActionListener { CalculatorLogic cl; JPanel mainPanel; JPanel bottomPanel; JButton[] buttons; JTextField resultField; String[] buttonLabels = {"0","1","2","3","4", "5", "6", "7", "8", "9", "+", "-", "=", "CLEAR", ""}; private void buildGUI() { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(600, 600); setTitle("Calculator"); mainPanel = new JPanel(); bottomPanel = new JPanel(); this.setLayout(new GridLayout(2,1)); this.add(mainPanel); this.add(bottomPanel); mainPanel.setLayout(new GridLayout(0,5)); for (int i = 0; i < 15; i++) { buttons[i] = new JButton(buttonLabels[i]); buttons[i].addActionListener(this); mainPanel.add(buttons[i]); } bottomPanel.setLayout(new GridLayout(0,1)); resultField = new JTextField(40); bottomPanel.add(resultField); setVisible(true); } public CalculatorExterior() { cl = new CalculatorLogic(); buttons = new JButton[15]; buildGUI(); } @Override public void actionPerformed(ActionEvent e) { JButton btn = (JButton)e.getSource(); //System.out.println("Button pushed "+btn.getText()); if (btn == buttons[13]) // clear button { resultField.setText("0"); } else { String result = cl.addSymbol(btn.getText()); resultField.setText(result); } } } |
소스코드 3.
1 2 3 4 5 6 7 8 9 | public class Test { public static void main(String[] args) { CalculatorExterior ce = new CalculatorExterior(); } } |
반응형
LIST
'Java프로그래밍 > 예제문제' 카테고리의 다른 글
Timer : TmerLogic and Test program (0) | 2016.04.08 |
---|---|
Timer Source Code: TimerUI (0) | 2016.04.08 |
예제문제: Package, import, Object, Wrapper class, String, StringBuffer, Interface, Abstract class (0) | 2015.03.31 |
예제문제: 상속 (0) | 2015.03.24 |
예제문제: 클래스 정의 (0) | 2015.03.24 |