본문 바로가기

자바(java)

계좌 관리 프로그램: 윈도우에서 수입과 지출을 기록하고 잔액을 관리하는 가계부 앱을 설계합니다.

반응형

아래에는 자바로 구현한 윈도우 계좌 관리 프로그램의 코드와 해당 코드를 설명하는 내용을 제공합니다.

1. 내용 설명

이 프로그램은 윈도우에서 수입과 지출 내역을 기록하고 잔액을 관리하는 간단한 가계부 애플리케이션입니다. 사용자는 수입 및 지출 내역을 입력하고, 잔액을 자동으로 업데이트할 수 있습니다.

2. 프로그램 간 사용 함수 설명

  • addIncome(): 수입 내역을 입력하고 잔액을 업데이트하는 함수.
  • addExpense(): 지출 내역을 입력하고 잔액을 업데이트하는 함수.
  • viewTransactions(): 기록된 수입 및 지출 내역을 조회하는 함수.
  • calculateBalance(): 잔액을 계산하는 함수.

3. 코딩 내용

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

public class AccountManagementApp extends JFrame {
    private double balance = 0.0;
    private ArrayList<String> transactions = new ArrayList<>();
    private JTextField transactionField;
    private JTextArea transactionArea;

    public AccountManagementApp() {
        setupUI();
    }

    private void setupUI() {
        setTitle("가계부 앱");
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());

        transactionField = new JTextField();
        panel.add(transactionField, BorderLayout.NORTH);

        transactionArea = new JTextArea();
        transactionArea.setEditable(false);
        panel.add(new JScrollPane(transactionArea), BorderLayout.CENTER);

        JButton addButton = new JButton("추가");
        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addTransaction();
            }
        });
        panel.add(addButton, BorderLayout.SOUTH);

        add(panel);

        setVisible(true);
    }

    private void addTransaction() {
        String transactionText = transactionField.getText();
        if (!transactionText.isEmpty()) {
            // transactionText에서 내용과 금액을 구분
            String[] parts = transactionText.split(" ");
            if (parts.length >= 2) {
                String content = parts[0];
                try {
                    double amount = Double.parseDouble(parts[1]);
                    balance += amount;
                    transactions.add("내용: " + content + ", 금액: " + amount);
                    updateTransactionArea();
                    transactionField.setText("");
                    JOptionPane.showMessageDialog(this, "거래가 추가되었습니다. 현재 잔액: " + balance);
                } catch (NumberFormatException e) {
                    JOptionPane.showMessageDialog(this, "올바른 숫자 형식을 입력하세요.");
                }
            } else {
                JOptionPane.showMessageDialog(this, "올바른 형식으로 거래 내역을 입력하세요 (예: 내용 1000).");
            }
        }
    }

    private void updateTransactionArea() {
        transactionArea.setText("거래 내역:\n");
        for (String transaction : transactions) {
            transactionArea.append(transaction + "\n");
        }
        transactionArea.append("현재 잔액: " + balance);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            new AccountManagementApp();
        });
    }
}

 

4. 전문 용어

  • 수입 내역: 사용자가 받는 돈 또는 수입과 관련된 내역.
  • 지출 내역: 사용자가 지출하는 돈 또는 지출과 관련된 내역.

5. 라이브러리 추가 및 실행 방법

이 코드는 Java Swing 라이브러리를 사용하므로 추가 라이브러리가 필요하지 않습니다.

실행 방법:

  1. 위의 코드를 복사하여 Java 파일로 저장합니다.
  2. 명령 프롬프트 또는 터미널에서 해당 디렉토리로 이동한 후 다음 명령을 실행합니다.

컴파일

javac -encoding UTF-8 AccountManagementApp.java

 

실행

java AccountManagementApp

반응형