WeniVooks

검색

Cursor 톺아보기 with Python

실습 - 학생 점수 관리 프로그램 만들기

실습 - 학생 점수 관리 프로그램 만들기

🎯 이번 시간에 배울 것
  • 여러 기능을 조합한 실용적인 프로그램 만들기
  • AI에게 단계별로 요청하는 방법
  • 내가 만든 프로그램을 실제로 사용해보기
🌟 지금까지 배운 것들
Chapter 4-2에서 배운 것들

Chapter 4-2에서 다기능 프로그램 만들기를 배웠죠!

✅ 여러 기능이 있는 프로그램
✅ 메뉴 시스템으로 선택하기
✅ 입력 검증으로 안전하게 만들기
✅ 여러 기능이 있는 프로그램
✅ 메뉴 시스템으로 선택하기
✅ 입력 검증으로 안전하게 만들기

이제 더 실용적인 프로그램을 만들어보겠습니다! 🚀

📚 프로젝트: 간단한 학생 점수 관리 프로그램
🎯 우리가 만들 프로그램
📝 학생 점수 관리 프로그램

기능:
- 학생 이름 입력하기
- 3과목 점수 입력하기 (국어, 영어, 수학)
- 평균 점수 계산하기
- 등급 보여주기 (A, B, C, D, F)
- 결과 보기 좋게 출력하기

특징:
- 메뉴로 쉽게 선택
- 안전한 입력 처리
- 간단하고 사용하기 쉬움
📝 학생 점수 관리 프로그램

기능:
- 학생 이름 입력하기
- 3과목 점수 입력하기 (국어, 영어, 수학)
- 평균 점수 계산하기
- 등급 보여주기 (A, B, C, D, F)
- 결과 보기 좋게 출력하기

특징:
- 메뉴로 쉽게 선택
- 안전한 입력 처리
- 간단하고 사용하기 쉬움
🚀 Step 1: AI에게 요청하기
첫 번째 요청

새 파일에서 Ctrl+I:

학생 점수 관리 프로그램을 만들어주세요.

기능:
1. 학생 이름 입력받기
2. 국어, 영어, 수학 점수 입력받기
3. 평균 점수 계산하기
4. 등급 계산하기 (A, B, C, D, F)
5. 결과 예쁘게 출력하기

요구사항:
- 점수는 0~100 사이만 입력받기
- 잘못 입력하면 다시 입력할 수 있게 하기
- 결과를 보기 좋게 정리해서 보여주기
학생 점수 관리 프로그램을 만들어주세요.

기능:
1. 학생 이름 입력받기
2. 국어, 영어, 수학 점수 입력받기
3. 평균 점수 계산하기
4. 등급 계산하기 (A, B, C, D, F)
5. 결과 예쁘게 출력하기

요구사항:
- 점수는 0~100 사이만 입력받기
- 잘못 입력하면 다시 입력할 수 있게 하기
- 결과를 보기 좋게 정리해서 보여주기
AI가 만든 결과

AI가 생성한 프로그램:

# 학생 점수 관리 프로그램
print("🎓 학생 점수 관리 프로그램에 오신 걸 환영합니다!")
print("=" * 50)
 
# 학생 이름 입력
student_name = input("학생 이름을 입력하세요: ")
 
print(f"\n{student_name} 학생의 점수를 입력해주세요!")
 
# 국어 점수 입력
while True:
    korean_input = input("국어 점수 (0-100): ")
    if korean_input.isdigit():
        korean_score = int(korean_input)
        if 0 <= korean_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 영어 점수 입력
while True:
    english_input = input("영어 점수 (0-100): ")
    if english_input.isdigit():
        english_score = int(english_input)
        if 0 <= english_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 수학 점수 입력
while True:
    math_input = input("수학 점수 (0-100): ")
    if math_input.isdigit():
        math_score = int(math_input)
        if 0 <= math_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 평균 계산
total_score = korean_score + english_score + math_score
average_score = total_score / 3
 
# 등급 계산
if average_score >= 90:
    grade = "A"
elif average_score >= 80:
    grade = "B"
elif average_score >= 70:
    grade = "C"
elif average_score >= 60:
    grade = "D"
else:
    grade = "F"
 
# 결과 출력
print("\n" + "=" * 50)
print(f"📊 {student_name} 학생의 성적표")
print("=" * 50)
print(f"👤 이름: {student_name}")
print(f"📚 국어: {korean_score}점")
print(f"🗣️ 영어: {english_score}점")
print(f"🔢 수학: {math_score}점")
print("-" * 30)
print(f"📈 총점: {total_score}점")
print(f"📊 평균: {average_score:.1f}점")
print(f"🏆 등급: {grade}")
print("=" * 50)
 
if grade in ["A", "B"]:
    print("🎉 축하합니다! 우수한 성적이에요!")
elif grade == "C":
    print("👍 좋은 성적이에요! 조금만 더 노력해보세요!")
else:
    print("💪 다음에는 더 좋은 결과가 있을 거예요!")
# 학생 점수 관리 프로그램
print("🎓 학생 점수 관리 프로그램에 오신 걸 환영합니다!")
print("=" * 50)
 
# 학생 이름 입력
student_name = input("학생 이름을 입력하세요: ")
 
print(f"\n{student_name} 학생의 점수를 입력해주세요!")
 
# 국어 점수 입력
while True:
    korean_input = input("국어 점수 (0-100): ")
    if korean_input.isdigit():
        korean_score = int(korean_input)
        if 0 <= korean_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 영어 점수 입력
while True:
    english_input = input("영어 점수 (0-100): ")
    if english_input.isdigit():
        english_score = int(english_input)
        if 0 <= english_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 수학 점수 입력
while True:
    math_input = input("수학 점수 (0-100): ")
    if math_input.isdigit():
        math_score = int(math_input)
        if 0 <= math_score <= 100:
            break
        else:
            print("❌ 0부터 100 사이의 점수를 입력해주세요!")
    else:
        print("❌ 숫자로 입력해주세요!")
 
# 평균 계산
total_score = korean_score + english_score + math_score
average_score = total_score / 3
 
# 등급 계산
if average_score >= 90:
    grade = "A"
elif average_score >= 80:
    grade = "B"
elif average_score >= 70:
    grade = "C"
elif average_score >= 60:
    grade = "D"
else:
    grade = "F"
 
# 결과 출력
print("\n" + "=" * 50)
print(f"📊 {student_name} 학생의 성적표")
print("=" * 50)
print(f"👤 이름: {student_name}")
print(f"📚 국어: {korean_score}점")
print(f"🗣️ 영어: {english_score}점")
print(f"🔢 수학: {math_score}점")
print("-" * 30)
print(f"📈 총점: {total_score}점")
print(f"📊 평균: {average_score:.1f}점")
print(f"🏆 등급: {grade}")
print("=" * 50)
 
if grade in ["A", "B"]:
    print("🎉 축하합니다! 우수한 성적이에요!")
elif grade == "C":
    print("👍 좋은 성적이에요! 조금만 더 노력해보세요!")
else:
    print("💪 다음에는 더 좋은 결과가 있을 거예요!")
🎉 놀라운 결과!

이 프로그램의 특징들:

  • 안전한 입력 처리 (올바른 숫자인지 확인)
  • 계산 기능 (평균, 등급)
  • 예쁜 출력 (이모지와 선 꾸미기)
  • 격려 메시지 (등급에 따른 응원)
🎮 Step 2: 더 좋은 프로그램 만들기
개선 요청하기

AI에게 추가 요청:

위 프로그램을 더 좋게 만들어주세요:

1. 여러 학생의 점수를 입력받을 수 있게 하기
2. 메뉴에서 선택할 수 있게 하기
3. 전체 학생 목록도 볼 수 있게 하기

메뉴:
- 학생 점수 입력하기
- 학생 목록 보기
- 프로그램 종료
위 프로그램을 더 좋게 만들어주세요:

1. 여러 학생의 점수를 입력받을 수 있게 하기
2. 메뉴에서 선택할 수 있게 하기
3. 전체 학생 목록도 볼 수 있게 하기

메뉴:
- 학생 점수 입력하기
- 학생 목록 보기
- 프로그램 종료
개선된 프로그램
# 여러 학생 점수 관리 프로그램
print("🎓 학급 점수 관리 프로그램")
print("=" * 40)
 
# 학생 정보를 저장할 리스트들
student_names = []
korean_scores = []
english_scores = []
math_scores = []
averages = []
grades = []
 
print("메뉴를 선택해주세요!")
print("1. 학생 점수 입력하기")
print("2. 학생 목록 보기")
print("3. 프로그램 종료")
 
choice = input("선택하세요 (1-3): ")
 
if choice == "1":
    # 학생 점수 입력
    print("\n=== 학생 점수 입력 ===")
    
    student_name = input("학생 이름: ")
    
    # 국어 점수 입력
    korean_input = input("국어 점수 (0-100): ")
    if korean_input.isdigit() and 0 <= int(korean_input) <= 100:
        korean_score = int(korean_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        korean_score = 0
    
    # 영어 점수 입력
    english_input = input("영어 점수 (0-100): ")
    if english_input.isdigit() and 0 <= int(english_input) <= 100:
        english_score = int(english_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        english_score = 0
    
    # 수학 점수 입력
    math_input = input("수학 점수 (0-100): ")
    if math_input.isdigit() and 0 <= int(math_input) <= 100:
        math_score = int(math_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        math_score = 0
    
    # 평균과 등급 계산
    average = (korean_score + english_score + math_score) / 3
    
    if average >= 90:
        grade = "A"
    elif average >= 80:
        grade = "B"
    elif average >= 70:
        grade = "C"
    elif average >= 60:
        grade = "D"
    else:
        grade = "F"
    
    # 리스트에 저장
    student_names.append(student_name)
    korean_scores.append(korean_score)
    english_scores.append(english_score)
    math_scores.append(math_score)
    averages.append(average)
    grades.append(grade)
    
    print(f"✅ {student_name} 학생의 정보가 저장되었습니다!")
    print(f"평균: {average:.1f}점, 등급: {grade}")
 
elif choice == "2":
    # 학생 목록 보기
    print("\n=== 학생 목록 ===")
    
    if len(student_names) == 0:
        print("등록된 학생이 없습니다.")
    else:
        print("번호 | 이름 | 국어 | 영어 | 수학 | 평균 | 등급")
        print("-" * 50)
        
        for i in range(len(student_names)):
            print(f"{i+1:2d}   | {student_names[i]:4s} | {korean_scores[i]:2d}   | {english_scores[i]:2d}   | {math_scores[i]:2d}   | {averages[i]:4.1f} | {grades[i]}")
 
elif choice == "3":
    print("👋 프로그램을 종료합니다!")
 
else:
    print("❌ 1, 2, 3 중에서 선택해주세요!")
# 여러 학생 점수 관리 프로그램
print("🎓 학급 점수 관리 프로그램")
print("=" * 40)
 
# 학생 정보를 저장할 리스트들
student_names = []
korean_scores = []
english_scores = []
math_scores = []
averages = []
grades = []
 
print("메뉴를 선택해주세요!")
print("1. 학생 점수 입력하기")
print("2. 학생 목록 보기")
print("3. 프로그램 종료")
 
choice = input("선택하세요 (1-3): ")
 
if choice == "1":
    # 학생 점수 입력
    print("\n=== 학생 점수 입력 ===")
    
    student_name = input("학생 이름: ")
    
    # 국어 점수 입력
    korean_input = input("국어 점수 (0-100): ")
    if korean_input.isdigit() and 0 <= int(korean_input) <= 100:
        korean_score = int(korean_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        korean_score = 0
    
    # 영어 점수 입력
    english_input = input("영어 점수 (0-100): ")
    if english_input.isdigit() and 0 <= int(english_input) <= 100:
        english_score = int(english_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        english_score = 0
    
    # 수학 점수 입력
    math_input = input("수학 점수 (0-100): ")
    if math_input.isdigit() and 0 <= int(math_input) <= 100:
        math_score = int(math_input)
    else:
        print("❌ 올바른 점수를 입력해주세요!")
        math_score = 0
    
    # 평균과 등급 계산
    average = (korean_score + english_score + math_score) / 3
    
    if average >= 90:
        grade = "A"
    elif average >= 80:
        grade = "B"
    elif average >= 70:
        grade = "C"
    elif average >= 60:
        grade = "D"
    else:
        grade = "F"
    
    # 리스트에 저장
    student_names.append(student_name)
    korean_scores.append(korean_score)
    english_scores.append(english_score)
    math_scores.append(math_score)
    averages.append(average)
    grades.append(grade)
    
    print(f"✅ {student_name} 학생의 정보가 저장되었습니다!")
    print(f"평균: {average:.1f}점, 등급: {grade}")
 
elif choice == "2":
    # 학생 목록 보기
    print("\n=== 학생 목록 ===")
    
    if len(student_names) == 0:
        print("등록된 학생이 없습니다.")
    else:
        print("번호 | 이름 | 국어 | 영어 | 수학 | 평균 | 등급")
        print("-" * 50)
        
        for i in range(len(student_names)):
            print(f"{i+1:2d}   | {student_names[i]:4s} | {korean_scores[i]:2d}   | {english_scores[i]:2d}   | {math_scores[i]:2d}   | {averages[i]:4.1f} | {grades[i]}")
 
elif choice == "3":
    print("👋 프로그램을 종료합니다!")
 
else:
    print("❌ 1, 2, 3 중에서 선택해주세요!")
🌟 학습 성과 체크
오늘 배운 내용
✅ 실용적인 프로그램 만들기
✅ 여러 데이터를 리스트로 관리하기
✅ 안전한 입력 처리 방법
✅ 계산 결과를 예쁘게 출력하기
✅ 실용적인 프로그램 만들기
✅ 여러 데이터를 리스트로 관리하기
✅ 안전한 입력 처리 방법
✅ 계산 결과를 예쁘게 출력하기
프로그램 만들기 과정

1단계: 간단한 한 명 버전부터 시작 2단계: 여러 명을 처리할 수 있게 개선 3단계: 메뉴 시스템으로 사용하기 편하게

🎯 실습: 나만의 프로그램 만들기
미션 선택하기

다음 중 하나를 선택해서 만들어보세요:

옵션 1: 반 친구들 생일 관리 프로그램
기능:
- 친구 이름과 생일 입력하기
- 친구 목록 보기
- 이번 달 생일인 친구 찾기
기능:
- 친구 이름과 생일 입력하기
- 친구 목록 보기
- 이번 달 생일인 친구 찾기
옵션 2: 용돈 기록 프로그램
기능:
- 받은 용돈 기록하기 (날짜, 금액, 누가 줬는지)
- 쓴 돈 기록하기 (날짜, 금액, 뭘 샀는지)
- 남은 돈 계산해서 보여주기
기능:
- 받은 용돈 기록하기 (날짜, 금액, 누가 줬는지)
- 쓴 돈 기록하기 (날짜, 금액, 뭘 샀는지)
- 남은 돈 계산해서 보여주기
옵션 3: 읽은 책 목록 프로그램
기능:
- 읽은 책 정보 입력하기 (제목, 작가, 별점)
- 책 목록 보기
- 별점 높은 책 찾기
기능:
- 읽은 책 정보 입력하기 (제목, 작가, 별점)
- 책 목록 보기
- 별점 높은 책 찾기
실습 진행 방법

1단계: 위의 옵션 중 하나를 선택 2단계: AI에게 기본 기능 요청 3단계: 테스트해보고 문제점 찾기 4단계: 개선 요청해서 더 좋게 만들기

🔧 AI에게 요청하는 팁
좋은 요청 방법
✅ 구체적으로 설명하기
"생일 관리 프로그램을 만들어주세요.
- 친구 이름과 생일(월/일)을 입력받기
- 입력한 친구들 목록 보기
- 메뉴로 선택할 수 있게 하기"

✅ 예시 들어주기
"예를 들어 '홍길동 3/15' 이렇게 입력하면
3월 15일이 홍길동의 생일로 저장되면 좋겠어요"
✅ 구체적으로 설명하기
"생일 관리 프로그램을 만들어주세요.
- 친구 이름과 생일(월/일)을 입력받기
- 입력한 친구들 목록 보기
- 메뉴로 선택할 수 있게 하기"

✅ 예시 들어주기
"예를 들어 '홍길동 3/15' 이렇게 입력하면
3월 15일이 홍길동의 생일로 저장되면 좋겠어요"
단계별 개선 방법
1단계: "기본 기능이 있는 생일 관리 프로그램 만들어주세요"
2단계: "이번 달 생일인 친구를 찾는 기능을 추가해주세요"
3단계: "결과를 더 예쁘게 보여주는 기능을 추가해주세요"
1단계: "기본 기능이 있는 생일 관리 프로그램 만들어주세요"
2단계: "이번 달 생일인 친구를 찾는 기능을 추가해주세요"
3단계: "결과를 더 예쁘게 보여주는 기능을 추가해주세요"
🎉 마무리

축하합니다! 이제 여러분은 실용적인 프로그램을 만들 수 있는 개발자가 되었습니다! ✨

🔥 오늘의 성취
  1. 실용적인 점수 관리 프로그램 완성
  2. 여러 데이터를 리스트로 관리하는 방법
  3. 단계별 프로그램 개선 경험
  4. 안전한 입력 처리 방법 습득
💡 다음 시간 예고

다음 Chapter 4-4에서는 나만의 특별한 프로그램 만들기를 배워보겠습니다!

🎯 오늘의 과제

실용적인 프로그램 만들기:

위의 실습에서 선택한 프로그램을 완성해보세요!

  • 최소 3개 이상의 기능
  • 메뉴 선택 시스템
  • 여러 데이터 관리
  • 친절한 결과 출력

여러분은 이제 실제로 사용할 수 있는 유용한 프로그램을 만들 수 있는 개발자입니다! 🚀

{"packages":["numpy","pandas","matplotlib","lxml"]}
4.2 여러 기능이 있는 프로그램 만들기4.4 나만의 특별한 프로그램 만들기