Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 만드는 학생 성적 계산기 프로그램 완벽 가이드

학업 환경에서는 시험이나 평가가 끝난 후 학생들의 성적을 산출해야 하는 경우가 매우 흔합니다. 이 글에서는 미리 정해진 성적 기준에 따라 자동으로 등급을 부여하는 파이썬 프로그램을 만들어 보겠습니다. 이 프로그램을 'A 성적 계산기'라고 부르겠습니다.

성적 기준

아래는 이번 프로그램에서 사용할 성적 산출 기준입니다. 백분율 점수에 따라 등급이 결정됩니다.

score >= 90 : "O"
score >= 80 : "A+"
score >= 70 : "A"
score >= 60 : "B+"
score >= 50 : "B"
score >= 40 : "C"

40점 미만인 경우에는 모든 조건에 해당하지 않으므로, 코드에서는 최종적으로 F(낙제) 등급이 부여되도록 else 문으로 처리했습니다.

프로그램 설계 방식

성적 계산기를 구현하기 위한 전체적인 접근 방식은 다음과 같습니다.

  • 학생 정보(학번, 이름)와 과목별 획득 점수를 저장할 변수와 리스트(배열)를 초기화합니다.

  • 사용자로부터 화면상의 입력값을 받아 위 변수에 저장하는 함수를 정의합니다.

  • for 반복문을 활용해 각 과목별 점수를 모두 합산하는 로직을 설계합니다.

  • if와 elif 조건문을 사용하여 학생이 획득한 점수 범위를 판별하고, 그 결과를 특정 등급으로 분류하는 계산기를 구현합니다.

  • 마지막으로 위에서 정의한 함수들을 지정된 순서대로 실행하는 메인 함수를 작성합니다.

  • 프로그램을 실행하고 값을 입력하면 최종 결과를 확인할 수 있습니다.

성적 계산 프로그램 전체 코드

아래는 위 설계 방식에 따라 작성한 성적 계산 프로그램입니다. 클래스 기반으로 구현되어 있으며, 프로그램을 실행하면 순차적으로 입력값을 요청하고, 입력이 완료되면 최종 결과를 출력합니다.

class grade_calculator:
    def __init__(self):
        self.__roll_number = 0
        self._Name = ""
        self.__marks_obtained = []
        self.__total_marks = 0
        self.__percentage = 0
        self.__grade = ""
        self.__result = ""
    def setgrade_calculator(self):
        self.__roll_number = int(input("Enter Roll Number: "))
        self.__Name = input("Enter Name: ")
        print("Enter 5 subjects marks: ")
        for n in range(5):
            self.__marks_obtained.append(int(input("Subject " + str(n + 1) + ": ")))
    def Total(self):
        for i in self.__marks_obtained:
            self.__total_marks += i
    def Percentage(self):
        self.__percentage = self.__total_marks / 5
    def calculateGrade(self):
        if self.__percentage >= 90:
            self.__grade = "0"
        elif self.__percentage >= 80:
            self.__grade = "A+"
        elif self.__percentage >= 70:
            self.__grade = "A"
        elif self.__percentage >= 60:
            self.__grade = "B+"
        elif self.__percentage >= 50:
            self.__grade = "B"
        elif self.__percentage >= 40:
            self.__grade = "C"
        else:
            self.__grade = "F"
    def Result(self):
        count = 0
        for x in self.__marks_obtained:
            if x >= 40:
                count += 1
        if count == 5:
            self.__result = "PASS"
        elif count >= 3:
            self.__result = "COMP."
        else:
            self.__result = "FAIL"
    def showgrade_calculator(self):
        self.Total()
        self.Percentage()
        self.calculateGrade()
        self.Result()
        print(self.__roll_number, "\t", self.__Name, "\t", self.__total_marks, "\t",             self.__percentage, "\t", self.__grade, "\t",
            self.__result)
def main():
    gc = grade_calculator()
    gc.setgrade_calculator()
    gc.showgrade_calculator()
if __name__ == "__main__":
    main()

코드 주요 구성 요소 살펴보기

이 프로그램은 다음과 같은 핵심 메서드들로 구성되어 있습니다.

  • setgrade_calculator(): 학번, 이름, 그리고 5개 과목의 점수를 사용자로부터 입력받습니다.
  • Total(): 리스트에 저장된 과목별 점수를 모두 더해 총점을 계산합니다.
  • Percentage(): 총점을 과목 수(5)로 나누어 평균 백분율을 구합니다.
  • calculateGrade(): 백분율에 따라 O, A+, A, B+, B, C, F 중 해당 등급을 판정합니다.
  • Result(): 각 과목이 40점 이상인지 확인하여 PASS(합격), COMP.(재시험 대상), FAIL(낙제)을 결정합니다. 5개 과목 모두 40점 이상이면 합격, 3개 이상이면 재시험 대상, 그 외에는 낙제로 처리됩니다.
  • showgrade_calculator(): 앞선 모든 메서드를 순서대로 호출한 뒤, 학번·이름·총점·백분율·등급·결과를 한 줄로 출력합니다.

실행 결과

위 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다. 학번과 이름, 5개 과목의 점수를 차례로 입력하면 최종 성적표가 출력됩니다.

Enter Roll Number: 3
Enter Name: raj
Enter 5 subjects marks:
Subject 1: 86
Subject 2: 75
Subject 3: 69
Subject 4: 55
Subject 5: 92
3     Kumar     377     75.4     A     PASS

실행 예시에서 총점은 377점, 백분율은 75.4%로 계산되었으며, 이는 70점 이상 80점 미만 구간에 해당하므로 A 등급이 부여되었습니다. 또한 모든 과목에서 40점 이상을 받았기 때문에 최종 결과는 PASS로 표시됩니다.

이처럼 파이썬의 클래스, 리스트, 조건문, 반복문만 활용해도 실용적인 성적 관리 프로그램을 손쉽게 만들 수 있습니다. 필요에 따라 과목 수를 변경하거나, 성적 기준을 조정하거나, 파일 입출력을 추가하는 방식으로 확장할 수도 있습니다.