📊 학점 계산기
📋 프로젝트 개요
입력받은 점수를 바탕으로 학점을 계산하고, 장학금 대상 여부를 판단하는 실용적인 프로그램을 만들어보세요. 조건문을 활용하여 점수 구간별 판단 로직을 구현해봅시다!
🎯 학습 목표
- 다중 조건문(if-elif-else)을 활용한 구간별 판단
- 논리 연산자를 이용한 복합 조건 처리
- 실생활 문제를 프로그래밍으로 해결하는 경험
🚀 기본 기능
핵심 요구사항
점수를 입력받아 학점을 계산하는 프로그램
-
점수 입력 및 검증
- 0~100점 범위의 점수 입력받기
- 범위를 벗어난 점수에 대한 오류 메시지
-
학점 계산 기준
- A: 90점 이상
- B: 80점 이상 90점 미만
- C: 70점 이상 80점 미만
- D: 60점 이상 70점 미만
- F: 60점 미만
-
결과 출력
- 입력받은 점수와 해당하는 학점 표시
- 명확하고 보기 좋은 출력 형태
🎨 추가 기능 1: 장학금 판정 시스템
요구사항
기본 학점 계산에 장학금 대상 여부를 추가로 판정합니다.
- 성적우수 장학금: A학점 (90점 이상)
- 성적향상 장학금: B학점 이상 (80점 이상)
- 격려 장학금: C학점 이상 (70점 이상)
- 해당없음: D학점 이하 (70점 미만)
출력 예시
점수: 85점
학점: B
장학금: 성적향상 장학금 대상입니다!
💡 추가 기능 2: 세부 학점 시스템
요구사항
기본 학점을 더 세분화하여 +, 0, - 구분을 추가합니다.
- A학점 세분화: A+ (97점 이상), A0 (93점 이상), A- (90점 이상)
- B학점 세분화: B+ (87점 이상), B0 (83점 이상), B- (80점 이상)
- C, D학점도 동일한 방식으로 세분화
- 다음 등급까지 필요 점수: 더 높은 등급을 위해 필요한 점수 계산
출력 예시
점수: 85점
기본 학점: B
세부 학점: B0
다음 등급(B+)까지: 2점 부족
💡 구현 힌트
필요한 파이썬 기능들
1. 기본 학점 계산 구조
# 점수 입력 및 검증
score = int(input("점수를 입력하세요 (0-100): "))
if score < 0 or score > 100:
print("잘못된 점수입니다. 0-100 사이의 값을 입력하세요.")
else:
# 학점 계산
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"점수: {score}점, 학점: {grade}")
2. 장학금 판정 로직
# 학점 계산 후 장학금 판정
if grade == "A":
scholarship = "성적우수 장학금"
elif grade == "B":
scholarship = "성적향상 장학금"
elif grade == "C":
scholarship = "격려 장학금"
else:
scholarship = "해당없음"
if scholarship != "해당없음":
print(f"장학금: {scholarship} 대상입니다!")
else:
print("장학금: 해당하는 장학금이 없습니다.")
3. 세부 학점 계산
# A학점 세분화 예시
if score >= 97:
detailed_grade = "A+"
next_grade = "최고 등급입니다!"
elif score >= 93:
detailed_grade = "A0"
next_grade = f"A+까지 {97 - score}점 부족"
elif score >= 90:
detailed_grade = "A-"
next_grade = f"A0까지 {93 - score}점 부족"
# B, C, D학점도 동일한 방식으로...
조건문 활용 포인트
1. 구간별 조건 처리
# 점수 구간을 높은 점수부터 체크
# 첫 번째로 만족하는 조건에서 멈춤
if score >= 90: # 90점 이상 = A
grade = "A"
elif score >= 80: # 80점 이상 90점 미만 = B
grade = "B"
elif score >= 70: # 70점 이상 80점 미만 = C
grade = "C"
# ... 계속
2. 복합 조건 활용
# 범위 검증
if score < 0 or score > 100:
print("잘못된 점수")
# 여러 조건 동시 확인
if grade == "A" and score >= 95:
special_recognition = "최우수상"
3. 중첩 조건문
# 기본 학점 판정 후 세부 등급 판정
if score >= 90:
grade = "A"
if score >= 97:
detailed_grade = "A+"
elif score >= 93:
detailed_grade = "A0"
else:
detailed_grade = "A-"
프로그램 설계 팁
1. 명확한 출력 형태
print("="*40)
print("📊 학점 계산 결과")
print("="*40)
print(f"입력 점수: {score}점")
print(f"학점: {grade}")
print(f"장학금: {scholarship}")
print("="*40)
2. 오류 처리
# 숫자가 아닌 입력 처리
try:
score = int(input("점수 입력: "))
except ValueError:
print("숫자를 입력해주세요!")
# 하지만 level-2에서는 단순하게 처리
score = int(input("점수 입력: "))
if score < 0 or score > 100:
print("0-100 사이의 점수를 입력하세요!")
3. 단계적 확장
# 1단계: 기본 학점만
# 2단계: 기본 학점 + 장학금
# 3단계: 기본 학점 + 장학금 + 세부 등급
실제 활용 예시
1. 여러 과목 성적 관리
# 3과목 점수 입력받아 각각 처리
math_score = int(input("수학 점수: "))
english_score = int(input("영어 점수: "))
science_score = int(input("과학 점수: "))
# 각 과목별로 동일한 학점 계산 로직 적용
# 수학 학점 계산
if math_score >= 90:
math_grade = "A"
elif math_score >= 80:
math_grade = "B"
# ... 계속
# 영어, 과학도 동일하게...
# 평균 계산
average = (math_score + english_score + science_score) / 3
print(f"평균: {average:.1f}점")
2. 성적 향상도 체크
# 이전 성적과 비교
previous_score = int(input("이전 학기 점수: "))
current_score = int(input("이번 학기 점수: "))
improvement = current_score - previous_score
if improvement > 0:
print(f"성적이 {improvement}점 향상되었습니다!")
elif improvement < 0:
print(f"성적이 {abs(improvement)}점 하락했습니다.")
else:
print("성적이 동일합니다.")
도전 과제
- GPA 계산: A=4.0, B=3.0 등으로 GPA 점수 계산
- 학기별 관리: 여러 학기 성적을 비교 분석
- 목표 설정: 원하는 학점을 위해 필요한 점수 계산
- 통계 정보: 여러 과목의 최고점, 최저점, 평균 등
📝 완성 체크리스트
📊 학점 계산기 체크리스트
🎉 완성 후 해볼 것
완성된 학점 계산기로 실제 성적을 관리해보세요! 목표 학점을 설정하고 현재 상태를 확인하며, 어떤 성적을 받아야 원하는 학점을 달성할 수 있는지 계산해보세요!
Last updated on