Menu
Coddy logo textTech

요약 - 학생 성적

Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 18번째.

challenge icon

챌린지

쉬움

이번 장에서 배운 인스턴스 변수, 게터(getters), 세터(setters), 그리고 계산된 속성들을 모두 활용하여 완전한 Student 클래스를 만들어 봅시다!

코드는 두 개의 파일로 구성됩니다:

  • Student.lua: 표준 프로토타입 패턴을 사용하여 Student 클래스를 정의합니다. 각 학생은 namegrade를 저장해야 합니다. 클래스에는 다음이 필요합니다:
    • :new(name, grade) 생성자
    • 학생의 이름을 반환하는 :getName() 게터
    • 현재 성적을 반환하는 :getGrade() 게터
    • 성적을 업데이트하는 :setGrade(newGrade) 세터
    • 학생의 성적이 임계값(threshold)보다 크거나 같으면 true를, 그렇지 않으면 false를 반환하는 :hasPassed(threshold) 메서드
  • main.lua: Student 모듈을 불러와서(require) 학생을 생성하고, 상태를 확인하고, 성적을 업데이트하고, 변경 사항을 검증함으로써 모든 기능을 시연합니다.

네 가지 입력을 받게 됩니다:

  1. 학생의 이름
  2. 초기 성적
  3. 확인할 합격 임계값
  4. 새로 설정할 성적

메인 파일에서 주어진 이름과 초기 성적으로 학생을 생성한 후, 다음 내용을 각각 별도의 줄에 출력하세요:

  1. 학생의 이름
  2. 학생의 초기 성적
  3. 주어진 임계값으로 합격 여부 확인 (true 또는 false 출력)
  4. 새로운 성적으로 업데이트한 후의 학생 성적
  5. 성적 업데이트 후 동일한 임계값으로 합격 여부 확인

예를 들어, 입력값이 Emma, 55, 60, 75라면 출력은 다음과 같아야 합니다:

Emma
55
false
75
true

Emma는 처음에 55점을 받아 합격 임계값인 60점을 넘지 못했습니다. 하지만 성적을 75점으로 업데이트한 후에는 합격하게 됩니다!

직접 해보기

-- Student 모듈 가져오기
local Student = require('Student')

-- 입력 읽기
local name = io.read()
local initialGrade = tonumber(io.read())
local threshold = tonumber(io.read())
local newGrade = tonumber(io.read())

-- TODO: 주어진 이름과 초기 성적으로 학생 객체 생성

-- TODO: getter를 사용하여 학생의 이름 출력

-- TODO: getter를 사용하여 학생의 초기 성적 출력

-- TODO: 주어진 임계값을 기준으로 학생의 합격 여부를 확인하고 출력

-- TODO: setter를 사용하여 학생의 성적 업데이트

-- TODO: 학생의 새로운 성적 출력

-- TODO: 성적 업데이트 후 학생의 합격 여부를 확인하고 출력

Object Oriented Programming의 모든 레슨