아래처럼 정의된 Person클래스를 정의하여라.

  • 클래스 이름: Person
  • Data:
    • 나이 (integer)
    • 이름 (string)
    • 성별 (char), F=여성, M=남성
    • 학교이름 (string)
    • 좋아하는 것들 (vector<string>): 좋아하는것들의 리스트. 중복 불가
    • 싫어하는 것들 (vector<string>): 싫어하는것들의 리스트. 중복 불가
      • 단, 같은 내용이 좋아하는 것과 싫어하는것에 중복되어 있을 수 없다
  • Actions:
    • Constructors
      • Person(string name, char gender)
        • age=1로 초기화
        • gender가 'M'이나 'F'가 아니면 'F'로 설정
        • 학교이름은 "NO SCHOOL"
        • 좋아하는것, 싫어하는것은 빈 리스트 초기화
    • Getters
      • string get_name()
      • int get_age()
      • char get_gender()
      • string get_favorite(int i): i번째 좋아하는것
      • string get_dislike(int i): i번째 싫어하는것
      • int get_fav_cnt(): 좋아하는것의 갯수
      • int get_dis_cnt(): 싫어하는것의 갯수
    • Setters
      • void set_name( string name )
      • void set_age( int age )
    • Checkers
      • bool is_female(): 여자면 참, 아니면 거짓
      • bool is_schoolkid(): 나이가 7살 이상, 19살 이하면 참
    • Other functions
      • void goto_school(string schoolname)
        • 학교이름을 설정해준다. 단, 나이가 7살이상 19살 이하가 아니면 "NO SCHOOL"로
      • void add_favorite(string thing)
        • thing을 좋아하는것들에 추가 (새로운 것만)
        • 싫어하는 것들에 있으면 삭제
      • void add_dislike(string thing)
        • thing을 싫어하는 것들에 추가 (새로운 것만)
        • 좋아하는 것들에 있으면 삭제
    • Operator overloading
      • operator++(prefix): 나이 1 증가
      • operator>: 나이를 비교

테스트 방법: 이번에는 테스트 코드를 제공하지 않습니다. 다만, 아래 항목들을 주의하세요.

  • 이름과 성별, 나이가 제대로 저장되는지
  • 좋아하는 리스트에 중복된 것들이 없는지, 싫어하는 리스트에 중복된 것들이 없는지, 두 리스트간에 중복은 없는지
  • 테스트 코드는 차후에 공개예정. 지난번 제공한 check 매크로를 이용해서 자신만의 테스트를 하시기 바랍니다.

제출할 것: cpphw5_<학번>.cpp 내용: class Person 정의 (main함수 포함하지 말 것. 포함시키면 감점)

채점: 채점에 사용된 테스트코드에 따라서 각 check 항목마다 1점~2점 감점됨. 2점 항목은 난이도가 있는 항목임. 점수 배분은 차후 공개.

 
class/os2014f/hw5.txt · Last modified: 2017/06/17 09:36 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki