프로그램을 작성할 때 사용자 정의 형식을 기준으로 소스 파일을 구분하여 개발하면 유지보수 비용을 줄일 수 있어요.
사용자 정의 형식을 헤더에 정의하고 해당 형식의 멤버에 영향을 주는 기능은 소스 파일에 정의하는 형태로 개발하면 개발 비용 뿐만 아니라 C++이나 Java, C#과 같은 OOP 언어를 익히는데도 도움을 줄 수 있죠.
여기에서는 학생을 사용자 정의 형식으로 정의하고 관련 기능을 소스로 정의하여 사용하는 실습을 진행할게요.
실습 시나리오
학생은 학번, 이름, 체력, 지력, 스트레스, 연속으로 공부한 횟수를 멤버로 갖는다.
학번은 순차적으로 부여하며 이름은 생성할 때 입력인자로 전달받는다.
체력은 초기값이 100이며 0에서 100 사이의 값을 유지한다.
지력은 초기값이 100이며 0에서 200 사이의 값을 유지한다.
스트레스는 초기값이 0이며 0에서 100 사이의 값을 유지한다.
연속으로 공부한 횟수는 초기값이 0이며 0에서 5 사이의 값을 유지한다.
학생이 공부하면 연속으로 공부한 횟수는 1 증가하며 그 외의 행동을 하면 0으로 리셋한다.
학생이 공부하면 체력이 5 소모하며 지력은 연속으로 공부한 횟수만큼 증가하고 스트레스는 2 감소한다.
학생이 강의를 받으면 체력은 3 소모하며 지력은 연속으로 공부한 횟수만큼 증가하고 스트레스는 2 증가한다.
학생이 잠을 자면 체력은 10 회복하고 스트레스는 5 감소한다.
학생이 휴식하면 체력은 3회복하고 스트레스는 10 감소한다.
학생이 음료를 마시면 체력이 10 소모하며 지력은 5 감소하고 스트레스는 2 감소한다.
학생이 노래하면 체력이 10 소모하며 지력은 1 증가하고 스트레스는 5 감소한다.
추가로 학생 정보를 출력하는 기능을 제공한다.