본문 바로가기
카테고리 없음

Swing으로 만드는 미니언 성적관리프로그램 예제

by kangs' tong 2023. 9. 5.

미니언 성적관리프로그램

소개

미니언 성적관리프로그램은 학생들의 성적을 관리하는 간단한 프로그램입니다. 이 프로그램은 Java Swing 라이브러리를 사용하여 GUI 인터페이스를 구현하였습니다.

기능

  1. 학생 추가: 프로그램에 새로운 학생을 추가할 수 있습니다. 학생의 이름, 학번과 성적을 입력할 수 있습니다.
  2. 성적 조회: 등록된 학생들의 성적을 조회할 수 있습니다. 학생의 이름으로 검색하면 해당 학생의 성적 정보가 나타납니다.
  3. 성적 수정: 등록된 학생들의 성적을 수정할 수 있습니다. 학생의 이름으로 검색하여 해당 학생의 성적을 수정할 수 있습니다.
  4. 성적 평균 계산: 등록된 학생들의 성적의 평균을 계산하여 출력할 수 있습니다.

구현 방법

프로그램은 Java Swing의 JFrame 및 JTextField, JLabel 등의 컴포넌트를 사용하여 구현되었습니다. 각 기능은 ActionListener 인터페이스를 구현하여 버튼 클릭에 반응하는 이벤트를 처리하였습니다. 데이터는 ArrayList를 사용하여 관리되었습니다.

사용 예제

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

public class MiniionGradesManagementProgram extends JFrame implements ActionListener {

    private JTextField nameTextField, studentIDTextField, gradeTextField;
    private JTextArea resultTextArea;

    private ArrayList<Student> students;

    public MiniionGradesManagementProgram() {
        // 프레임 설정
        setTitle("미니언 성적관리프로그램");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 300);
        setLayout(new GridLayout(4, 2));

        // 컴포넌트 초기화
        JLabel nameLabel = new JLabel("이름:");
        nameTextField = new JTextField();
        JLabel studentIDLabel = new JLabel("학번:");
        studentIDTextField = new JTextField();
        JLabel gradeLabel = new JLabel("성적:");
        gradeTextField = new JTextField();
        JButton addButton = new JButton("추가");
        JButton searchButton = new JButton("조회");
        JButton editButton = new JButton("수정");

        // 이벤트 리스너 등록
        addButton.addActionListener(this);
        searchButton.addActionListener(this);
        editButton.addActionListener(this);

        // 프레임에 컴포넌트 추가
        add(nameLabel);
        add(nameTextField);
        add(studentIDLabel);
        add(studentIDTextField);
        add(gradeLabel);
        add(gradeTextField);
        add(addButton);
        add(searchButton);
        add(editButton);

        // 결과 출력 영역 설정
        resultTextArea = new JTextArea();
        add(resultTextArea);

        // 초기화
        students = new ArrayList<>();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();

        if (command.equals("추가")) {
            String name = nameTextField.getText();
            String studentID = studentIDTextField.getText();
            int grade = Integer.parseInt(gradeTextField.getText());

            Student student = new Student(name, studentID, grade);
            students.add(student);

            nameTextField.setText("");
            studentIDTextField.setText("");
            gradeTextField.setText("");

            resultTextArea.setText("학생 추가 완료!");
        } else if (command.equals("조회")) {
            String name = nameTextField.getText();

            for (Student student : students) {
                if (student.getName().equals(name)) {
                    resultTextArea.setText("이름: " + student.getName() + "\n"
                            + "학번: " + student.getStudentID() + "\n"
                            + "성적: " + student.getGrade());
                    return;
                }
            }

            resultTextArea.setText("일치하는 학생을 찾을 수 없습니다.");
        } else if (command.equals("수정")) {
            String name = nameTextField.getText();
            int grade = Integer.parseInt(gradeTextField.getText());

            for (Student student : students) {
                if (student.getName().equals(name)) {
                    student.setGrade(grade);
                    resultTextArea.setText("성적 수정 완료!");
                    return;
                }
            }

            resultTextArea.setText("일치하는 학생을 찾을 수 없습니다.");
        }
    }

    public static void main(String[] args) {
        MiniionGradesManagementProgram program = new MiniionGradesManagementProgram();
        program.setVisible(true);
    }
}

class Student {

    private String name;
    private String studentID;
    private int grade;

    public Student(String name, String studentID, int grade) {
        this.name = name;
        this.studentID = studentID;
        this.grade = grade;
    }

    public String getName() {
        return name;
    }

    public String getStudentID() {
        return studentID;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }
}

마무리

위 예제는 Java Swing을 사용하여 간단한 미니언 성적관리프로그램을 구현한 코드입니다. 프로그램의 기능은 학생 추가, 성적 조회, 성적 수정, 성적 평균 계산이며, 데이터는 ArrayList를 활용하여 관리됩니다. 프로그램을 실행하면 GUI 인터페이스가 나타나고, 사용자는 텍스트 필드를 통해 학생 정보를 입력하고 버튼을 클릭하여 기능을 실행할 수 있습니다. 전체적인 코드는 위 예제와 같으며, 참고하여 직접 실행해볼 수 있습니다.

댓글