실습숙제2 (Due by 10/3)

□ 단원 : 유틸리티 클래스, 집합 클래스
□ 목표 : CString, 집합클래스 연습
□ 주요 연습 내용 : CString, CList
□ 준비자료 : 2_CPerson.zip (Person.cpp, Person.h, Student.cpp, Student.h, Faculty.cpp, Faculty.h, PersonManager.cpp, PersonManager.h, main.cpp)


1102780408.zip
참고: VC++는 Win32 console에 MFC를 사용하는 방식으로 작성한다.
http://dis.dankook.ac.kr/lectures/hci08/entry/WIN32-Console-Program-Using-MFC-Classes



연습문제 Ex2 (Due by 10/3 금 24시까지)
-cyber 강의실 (cyber.dku.edu)로 source code, executable file, solution/project VC++ 2005 file, 보고서를 학번_이름_Ex2.zip으로 묶어서 낼 것. 보고서 (30%)

[연습문제]


1. CPerson 클래스의 변수를 CString 형으로 변환한다. 그에 따른 함수 내부를 수정한다. (10%)


– CString m_strName;


– int n_nID;


– CString m_strPhone;


– CString m_strAddr;


– friend bool operator==(const CPerson &lhs, const CPerson &rhs) 함수 추가


 


2. CStudent 클래스의 변수를 CString 형으로 변환한다. 그에 따른 함수 내부를 수정한다. (10%)


– float m_nGPA;


– friend bool operator==(const CStudent &lhs, const CStudent &rhs) 함수 추가


 


3. CFaculty 클래스는 CPerson에서 파생한 클래스로 다음과 같은 멤버변수를 추가로 가지고 있다. (10%)


– CString m_strDept;


그리고 멤버 함수는 다음과 같은 기능을 한다.


– CFaculty(); // default constructor 기본 생성자 함수


– CFaculty(CString , int, CString, CString, CString); // conversion 형변환 생성자 함수


– CFaculty(const CFaculty&); // copy constructor 복사 생성자 함수


– CFaculty& operator=(const CFaculty&); // operator= 함수


– virtual ~CFaculty(); // destructor 소멸자 함수


– virtual void Show(); // CFaculty의 이름, 아이디, 전화번호, 주소, 소속을 보여줌


– CString GetDepartment() const; // CFaculty의 소속 (m_strDept)을 돌려줌


– friend std::ostream& operator<<(std::ostream&, const CFaculty&);


– friend std::ostream& operator<<(std::ostream&, const CFaculty*);


– friend std::istream& operator>>(std::istream&, CFaculty&);


– friend bool operator==(const CFaculty &lhs, const CFaculty &rhs) 함수 추가


 


4. CPerson, CStudent, CFaculty 목록을 CList를 이용하여 입출력을 통합 관리하는 CPersonManager 클래스를 작성한다. (20%)


– private 멤버로 CList<CPerson*, CPerson*> m_aPersonList를 가짐


– 소멸자는 모든 CPerson을 리스트에서 제거함


– Add 함수는 CPerson을 리스트에 추가함


– Remove 함수는 CList의 Find를 이용하여 동일한 CPerson이 존재하는지 확인 후 있으면 그것을 제거함


– RemoveAll 함수는 모든 CPerson을 리스트에서 제거함


– GetTotalNumberOfPeople 함수는 리스트에 존재하는 CPerson이 몇 명 있는지를 알려줌


– GetPersonList 함수는 리스트를 돌려줌


– Show 함수는 리스트에 존재하는 모든 CPerson의 Show()를 사용하여 모든 Person, Student, Faculty의 내용(즉, 이름, 아이디, 전화번호, 주소 등등)을 출력함


 


5. main.cpp에서 CPersonManager 목록에 10개 이상의 CPerson, CStudent, CFaculty를 추가하고 난 후, 다음을 수행한다. (20%)


– CPersonManger의 GetTotalNumberOfPeople 함수 사용하여, 리스트에 몇 명의 Person이 존재하는지 출력


– CPersonManger의 Show 함수 사용하여, 리스트에 있는 모든 Person, Student, Faculty의 내용(즉, Person들의 이름, 아이디, 전화번호, 주소 등등)을 출력


– CPersonManger의 Remove와 Show 함수를 사용하여, 각각 한 두 명의 Person, Student, Faculty를 리스트에서 지우고 난 후, 리스트에 있는 모든 내용을 출력


– cin으로 CPerson, CStudent, CFaculty 정보를 입력받은 객체를 생성 후, 리스트에 있는 모든 내용을 출력


 

Leave a Reply

Your email address will not be published. Required fields are marked *