이제 상속과 다형성의 마지막 실습이예요.
다음의 시나리오를 보고 직접 클래스 다이어그램도 작성해 보고 구체적으로 구현해 보세요.
시나리오
프로그램이 시작하면서 학사 학생과 운동 학생, 마법 학생을 한 명씩 생성
학생을 생성 후 전체 학생에게 강의=>자습=>잠자기=>휴식하기=>음료마시기=>노래하기 순으로 진행
(각 단계마다 학생 정보를 출력)
자습하기에서는 해당 학생이 학사 학생이면 독서도 지시함
휴식하기에서는 해당 학생이 마법 학생이면 여행도 지시함
노래하기에서는 해당 학생이 운동 학생이면 춤추게 지시함
1. 학생
멤버 필드로 이름, 주민번호, 체력, 지력, 스트레스가 있음
주민번호: 순차적 부여
이름: 생성 시 전달
지력:100(최소 0, 최대 200)
체력: 100 (최소 0, 최대 200)
스트레스: 0 (최소 0, 최대 100)
연속으로 공부한 횟수: 0 (0,5), 공부를 하면 1 증가, 그 외의 행위를 하면 0으로 리셋, scnt로 부름
2. 학사 학생
멤버 필드로 더미 뇌가 있음
더미 뇌는 생성 시 0 이며 공부한 회수가 5의 배수가 될 때마다 1씩 증가
공부하다.
체력 5소모, 지력: scnt+더미 뇌 증가, 스트레스: 2감소
강의를 받다.
체력 3소모, 지력: scnt 증가, 스트레스: scnt증가
잠자다.
체력 10회복, 스트레스: 5감소 *scnt는 연속 공부한 회수
휴식하다.
체력 3회복, 스트레스: 25감소
음료 섭취
체력 5회복, 지력: 10감소 , 스트레스: 2증가
노래하다.
체력 10 소모, 지력: 5-scnt감소, 스트레스: 5-scnt증가
독서하다.
더미 뇌 1증가, 스트레스: 5감소
3. 마법 학생
마법 학생은 내부적으로 지팡이가 있다.
지팡이는 생성 시 0이며 마법 여행 시 1씩 증가
공부하다.
체력 3소모, 지력: scnt 증가, 스트레스: 3증가
강의를 받다.
체력 2소모, 지력: scnt 증가, 스트레스: 5증가
잠자다.
체력 10회복, 스트레스: 5감소
휴식하다.
체력 3회복, 스트레스: 25감소
음료 섭취
체력 5+지팡이 회복, 지력: 10-지팡이 감소, 스트레스: 2감소
노래하다.
체력 10-지팡이 소모, 지력: 5감소, 스트레스: 5감소
마법 여행을 가다.
지팡이 1증가
4. 운동 학생
운동 학생은 내부적으로 air가 있다.
air는 생성 시 0 이며 춤을 추면 1 증가
공부하다.
체력 2소모, 지력: scnt/2 증가,
air 3 감소, air*3만큼 스트레스 감소
강의를 받다.
체력 1소모, 지력: scnt/2 증가,
air :5 감소, air*3만큼 스트레스 감소
잠자다.
체력 10회복, 스트레스: 5감소
휴식하다.
체력 8회복, 스트레스: 25감소
음료 섭취
체력 5 회복, 지력: 3 감소, 스트레스: 2감소
노래하다.
체력 5소모, 지력: 2증가, 스트레스: 5감소
춤을 추다.
체력 5소모, 지력: 3증가, air 1증가
2016/04/25 - [언어 자료구조 알고리즘/디딤돌 C++] - [C++] 42. 상속과 다형성 최종 실습 - 학생
2016/04/25 - [언어 자료구조 알고리즘/디딤돌 C++] - [C++] 43. 상속과 다형성 최종 실습 - 파생 클래스
2016/04/25 - [언어 자료구조 알고리즘/디딤돌 C++] - [C++] 44. 상속과 다형성 최종 실습 - 코드
'언어 자료구조 알고리즘 > 디딤돌 C++' 카테고리의 다른 글
[C++] 46. 전역 연산자 중복 정의 (0) | 2016.04.25 |
---|---|
[C++] 45. 연산자 중복 정의 개요 (0) | 2016.04.25 |
[C++] 44. 상속과 다형성 최종 실습 - 코드 (0) | 2016.04.25 |
[C++] 43. 상속과 다형성 최종 실습 - 파생 클래스 (0) | 2016.04.25 |
[C++] 42. 상속과 다형성 최종 실습 - 학생 (0) | 2016.04.25 |
[C++] 40. 상속과 다형성 실습2 (도형) (0) | 2016.04.25 |
[C++] 39. 상속, 다형성 실습1 (상품, 할인 상품) (0) | 2016.04.25 |
[C++] 38. C++에서의 형 변환 (5) | 2016.04.25 |
[C++] 37. 하향 캐스팅(dynamic_cast) (0) | 2016.04.25 |
[C++] 36. 다중 상속 (0) | 2016.04.25 |