학생 관리 시스템 설계

C++Beginner
지금 연습하기

소개

이번 챌린지에서는 디지털 시대에 학교가 학생 정보를 효율적으로 관리할 수 있도록 돕는 견고하고 안전한 C++ 학생 관리 클래스를 설계하는 과제를 수행합니다. 목표는 이름, 나이, GPA 를 위한 프라이빗 (private) 데이터 멤버를 가진 Student 클래스를 만들고, 학생 정보를 설정하고 표시하기 위한 퍼블릭 (public) 세터 (setter) 메서드를 구현하는 것입니다.

이것은 챌린지 과제입니다. 가이드가 제공되는 실습과 달리, 학습 단계를 따라가는 것이 아니라 스스로 독립적으로 과제를 완료해야 합니다. 챌린지는 보통 난이도가 조금 있는 편입니다. 어려움을 겪는다면 Labby 와 상의하거나 솔루션을 확인할 수 있습니다. 통계 데이터에 따르면 이 과제는 초급 수준이며 통과율은 96%입니다. 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

학생 관리 시스템 설계

디지털 시대의 학교에는 학생 정보를 관리하는 효율적인 방법이 필요합니다. 여러분의 과제는 C++ 로 견고하고 안전한 학생 관리 클래스를 만드는 것입니다.

과제

  • name, age, gpa를 프라이빗 데이터 멤버로 갖는 Student 클래스 생성
  • 학생 정보를 설정하는 퍼블릭 세터 메서드 구현
  • 학생 정보를 출력하는 퍼블릭 메서드 생성

요구 사항

  • name (string), age (int), gpa (double) 를 프라이빗 데이터 멤버로 갖는 Student 클래스를 작성하세요.

  • 문자열 파라미터를 받아 이름이 비어 있지 않은지 검증하는 setName 메서드를 구현하세요.

  • 정수 파라미터를 받아 나이가 0 에서 120 사이인지 검증하는 setAge 메서드를 구현하세요.

  • 실수 (double) 파라미터를 받아 GPA 가 0.0 에서 4.0 사이인지 검증하는 setGPA 메서드를 구현하세요.

  • 학생 정보를 다음 형식으로 출력하는 displayInfo 메서드를 작성하세요:

    Student Name: <name>
    Student Age: <age>
    Student GPA: <gpa>
  • 구현 내용을 ~/project/student.cpp 파일에 저장하세요.

  • 필요한 헤더인 <iostream><string>을 포함하세요.

예시

프로그램을 실행하여 구현 내용을 테스트하세요:

g++ student.cpp -o student
./student

프로그램 실행 결과 예시:

Student Name: Alice Johnson
Student Age: 20
Student GPA: 3.75

힌트

  • 데이터 멤버에는 프라이빗 접근 제어자를 사용하세요.
  • 적절한 입력 검증 로직이 포함된 세터 메서드를 만드세요.
  • 이름에는 std::string을 사용하세요.
  • 나이와 GPA 범위에 대한 입력 검증을 구현하세요.
✨ 솔루션 확인 및 연습

요약

요약하자면, 이번 챌린지에서는 이름, 나이, GPA 를 포함한 학생 정보를 효율적으로 저장하고 표시할 수 있는 C++ 학생 관리 클래스를 설계했습니다. 이름에는 std::string, 나이에는 int, GPA 에는 double을 사용하는 등 지정된 요구 사항을 충족하기 위해 프라이빗 데이터 멤버와 퍼블릭 세터 메서드를 구현했습니다. 최종 구현 결과물은 ~/project/student.cpp 파일에 저장되어야 합니다.