이번 과제에서는 StudentStruct 구조체 배열을 다양한 기준으로 정렬하는 프로그램을 작성합니다.
정렬 기준은 다음과 같습니다:
- 학번 (ID)
- 이름 (Name)
- 중간고사 성적 (Midterm)
- 기말고사 성적 (Final)
- 총점 (Midterm + Final)
정렬은 두 가지 방식으로 구현합니다:
- Functor 기반 정렬 (
doTest1) - Lambda 기반 정렬 (
doTest2)
- C++에서
Functor와lambda의 사용방법을 익힌다. - STL 함수 사용 방법을 익힌다.
main.cpp: 과제의 메인 로직이 포함된 파일homework3.h:StudentStruct정의 및fillStudentRecord()함수 선언homework3.cpp: fillStudentRecord를 위한 기본 함수
아래 항목은 필수 구현 과제입니다. 점수에 반영됩니다.
SortByName: 이름 기준 오름차순 정렬SortByMidterm: 중간고사 성적 기준 내림차순 정렬SortByFinal: 기말고사 성적 기준 내림차순 정렬SortByTotal: 총점 기준 내림차순 정렬
- 이름 기준 오름차순 정렬
- 중간고사 성적 기준 내림차순 정렬
- 기말고사 성적 기준 내림차순 정렬
- 총점 기준 내림차순 정렬
fillStudentRecord()함수의numOfStudent파라미터를 reference 타입으로 변경해보세요.students파라미터는 왜 reference로 전달할 수 없는지 생각해보고 주석으로 설명해보세요.
⚠️ FIXME 항목은 점수에 반영되지 않지만, 도전해보면 포인터와 참조 개념을 더 깊이 이해할 수 있습니다.
다 구현한 후, 아래 명령어를 통해 테스트를 실행하세요:
.\test3.bat/bin/bash test3.sh