Menu
Coddy logo textTech

요약 - 학생 성적

Coddy Lua 여정의 객체 지향 프로그래밍 (Object Oriented Programming) 섹션에 포함된 레슨. 70개 중 18번째.

challenge icon

챌린지

쉬움

이 장에서 배운 모든 것을 하나로 모아 인스턴스 변수, getter, setter, 계산된 속성이 모두 함께 작동하는 완전한 Student 클래스를 만들어 봅시다!

코드를 두 파일로 나누어 구성합니다:

  • Student.lua: 표준 prototype pattern을 사용하여 Student 클래스를 Define합니다. 각 student는 namegrade를 저장해야 합니다. 클래스에는 다음이 필요합니다:
    • :new(name, grade) constructor
    • student의 name을 반환하는 :getName() getter
    • current grade를 반환하는 :getGrade() getter
    • grade를 update하는 :setGrade(newGrade) setter
    • student의 grade가 threshold보다 크거나 같으면 true를, otherwise false를 반환하는 :hasPassed(threshold) method
  • main.lua: Student module을 Require하고, student를 Create하고 상태를 확인하며 grade를 update한 다음 변경 사항을 확인하여 모든 기능을 시연합니다.

네 개의 inputs를 받습니다:

  1. Student의 name
  2. Initial grade
  3. 확인할 passing threshold
  4. 설정할 new grade

main 파일에서 given name과 initial grade로 student를 Create한 다음, 다음 내용을 각각 별도의 줄에 Print합니다:

  1. student의 name
  2. student의 initial grade
  3. given threshold에서 student가 통과했는지 여부 (true 또는 false를 Print)
  4. new grade로 update한 후의 student의 grade
  5. grade update 후에도 same threshold에서 student가 통과했는지 여부

예를 들어 inputs가 Emma, 55, 60, 75라면 output은 다음과 같아야 합니다:

Emma
55
false
75
true

Emma는 처음에 grade가 55였으므로 passing threshold인 60을 충족하지 못했습니다. grade를 75로 update한 후에는 통과합니다!

REQUIRED OUTPUT FORMAT: [Your translated content here]

직접 해보기

-- 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)의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러