Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
class:os2014f:hw5 [2014/10/09 23:55]
mhshin created
class:os2014f:hw5 [2025/10/13 12:45] (current)
Line 1: Line 1:
-Student ​클래스를 ​다음과 같이 ​정의하여라+아래처럼 정의된 Person클래스를 정의하여라.
-  * Student 클래스는 다음과 같은 private 데이터를 저장할 수 있다. +
-    - 성 (last name), string type +
-    - 이름 (first name), string type +
-    - 학년, integer type +
-    - 수강과목 리스트, vector(string) type +
-  * Student 클래스는 다음과 같은 public 함수를 제공한다. +
-    - 생성자는 다음을 인자로 받는다. +
-      - 성(string),​ 이름(string) +
-      - 이 생성자가 불리면 학년을 1로 초기화 한다. 수강과목은 없음. +
-    - string get_name(): 성+빈칸+이름을 string으로 리턴한다. 예: Shin Minho +
-    - int get_year(): 학년을 리턴한다 +
-    - void promote(): 학년을 하나 증가한다. 단, 현재 4학년이면 0으로 설정한다. +
-    - bool graduated():​ 학년이 0이면 참을 리턴한다. 그 외는 거짓. +
-    - void enroll(string classname): 주어진 이름의 수업을 수강한다. +
-  * Student 클래스는 다음과 같은 main()함수를 실행했을 때 모두 패스해야 한다.+
  
-<​code>​ +  * 클래스 이름: Person 
-int main() { +  * Data: 
-    ​Student s1"​Kim",​ "​Soochul" ​); +    * 나이 ​(integer
-    ​check( s1.get_year(), ); +    ​* 이름 ​(string
-    ​checks1.get_name(), "Kim Soochul" ​); +    ​* 성별 ​(char), F=여성, M=남성 
-    ​s1.promote(); +    * 학교이름 (string
-    checks1.get_year(), 2 ); +    ​* 좋아하는 것들 ​(vector<​string>​):​ 좋아하는것들의 리스트중복 불가 
-    ​check( s1.graduated(), false ); +    * 싫어하는 것들 ​(vector<​string>​): 싫어하는것들의 리스트. 중복 불가 
-    ​s1.enroll"​C++" ​); +      * 단같은 내용이 좋아하는 것과 싫어하는것에 중복되어 있을 수 없다 
-    ​s1.enroll"​Java" ​); +  * Actions: 
-    ​vector<string> classes = s1.get_classes(); +    * Constructors 
-    ​checkclasses[0]"​C++" ​); +      * Person(string name, char gender) 
-    ​checkclasses[1], "Java" ); +        * age=1로 초기화 
-    ​s1.promote(); +        * gender가 '​M'​이나 '​F'​가 아니면 '​F'​로 설정 
-    ​s1.promote(); +        * 학교이름은 ​"NO SCHOOL" 
-    ​s1.promote(); +        * 좋아하는것,​ 싫어하는것은 빈 리스트 초기화 
-    ​check( s1.graduated(), true ); +    ​* Getters 
-} +      * string get_name() 
-</code    +      * 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_ageint 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.1412873749.txt.gz · Last modified: 2025/10/13 13:00 (external edit) · [Old revisions]
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki