반응형

분류 전체보기 2934

[C++] 79. 최종 실습 - 학생 복귀

[C++] 79. 최종 실습 - 학생 복귀 이번에는 학생 복귀 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 학생 복귀 보기에서는 장소에 있는 학생을 선택하여 IComeBack 개체를 이용하여 복귀하게 합니다. 이를 위해 장소에 있는 학생 중에 사용자가 입력한 PN과 일치하는 학생을 찾는 부분이 필요합니다.먼저 IComeBack 인터페이스에 ComeBack 메서드를 약속하세요. interface IComeBack{ virtual void ComeBack(Man *man)=0;}; 그리고 IComeBack 인터페이스에서 파생한 EhNara에 이를 재정의해야겠죠. 먼저 클래스에 메서드를 선언하세요.class EhNara:public IComeBack{ ...중략...publi..

[C++] 78. 최종 실습 - 전체 보기

[C++] 78. 최종 실습 - 전체 보기 이번에는 전체 보기 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 전체 보기에서는 이 에이치 나라에 있는 모든 학생 정보를 출력합니다. 그리고 모든 장소의 정보를 출력합니다. 각 장소에서는 해당 장소에 있는 모든 학생 정보를 출력합니다.EhNara의 멤버 ViewAll 메서드를 구현합시다. void EhNara::ViewAll() //전체 보기 { 전체 학생 정보 보기와 전체 장소 정보 보기 메서드를 만들어서 이를 호출하게 합시다. ViewStudents();//전체 학생 정보 보기 ViewPlaces();//전체 장소 정보 보기 } EHNara 클래스에 멤버 메서드 ViewStudents와 ViewPlaces를 추가하세요. Eh..

[C++] 77. 최종 실습 - 학생 이동

[C++] 77. 최종 실습 - 학생 이동 이번에는 학생 이동 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 시나리오를 보면 먼저 이동할 장소를 선택하고 이동할 학생을 선택합니다. 그리고 해당 장소로 학생을 이동합니다.만약 이동할 장소가 학교일 때는 처음 온 학생인지 확인하여 학번을 부여합니다. 처음 온 학생이라면 학번이 0일 것입니다. 이럴 때는 학번을 부여합니다.EhNara의 멤버 MoveStudent를 구현합시다. void EhNara::MoveStudent() //학생 이동{먼저 이동할 장소를 선택합니다. Place *place = SelectPlace();//이동할 장소 선택잘못 선택하였을 때 메시지를 출력하고 메서드를 끝냅니다. if(place==0)//잘못 선..

[C++] 76. 최종 실습 - 학생 생성

[C++] 76. 최종 실습 - 학생 생성 이번에는 학생 생성 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 시나리오를 보면 먼저 최종 사용자로부터 학생 유형과 이름을 입력받습니다. 그리고 학생 공장에게 학생을 만들어 줄 것을 요청하면 학생 공장에서 학생을 생성하여 반환합니다.이제 이 부분을 구현해 봅시다. 먼저 EhNara 클래스에 학생을 보관할 수 있는 컬렉션을 멤버 필드로 추가하세요.class EhNara:public IComeBack{ ...중략... SeqArray base; ...중략...}; 이제 EhNara 클래스의 멤버 MakeStudent 메서드를 구현합시다. void EhNara::MakeStudent() //학생 생성{최종 사용자가 생성할 학생 유형을..

[C++] 75. 최종 실습 - 초기화 및 해제화

[C++] 75. 최종 실습 - 초기화 및 해제화 유즈케이스 별로 수행 흐름을 시퀀스로 정의하고 이를 코드로 구현하는 작업을 할 차례입니다. 여기에서는 유즈케이스에는 표현하지 않았지만 EhNara의 초기화 부분과 해제화 부분을 시퀀스 다이어그램으로 작성하고 코드로 옮기는 부분을 먼저 하기로 할게요. 먼저 초기화의 시퀀스 다이어그램을 작성합시다. 시나리오를 보면 EhNara를 생성한 후에 초기화에서는 학생 공장과 학교, 주거지, 다운타운을 생성합니다. 초기화에서 수행할 일은 이것으로 충분합니다. 그런데 학교나 주거지, 다운타운은 학생을 EhNara로 복귀하기 위해 IComeBack 개체가 필요합니다. 따라서 장소의 생성자에는 입력 인자로 IComeBack 개체를 전달해 주어야겠죠.이제 이 부분을 구현해 봅..

[C++] 74. 최종 실습 - 클래스 추가하기

[C++] 74. 최종 실습 - 클래스 추가하기 이제 클래스를 추가하고 클래스 사이의 관계에 따라 헤더 파일을 포함합시다. 여기에서는 헤더 파일에 포함문을 작성하는 것 까지만 할 거예요.클래스 다이어그램을 보면서 클래스를 추가하세요. 현재 EhNara, Place, Downtown, School, Village 클래스를 추가한 상태죠. 앞에서 작성한 확장 가능한 순차 배열인 SeqArray 템플릿 클래스를 추가하세요. 그리고 상속과 다형성 최종 실습에서 작성한 프로그램에서 Student, MStudent, SStudent, PStudent 클래스를 이용할게요. 소스 파일과 헤더 파일을 복사하여 프로젝트에 추가하세요. 이 외에 Man, IStudy, IRelax, IPlay를 추가하세요. 그리고 이를 기반..

[C++] 73. 최종 실습 - 확장 가능한 순차 배열

[C++] 73. 최종 실습 - 확장 가능한 순차 배열 EhNara 프로그램에서는 EhNara 클래스, 학생 공장에서 학생 개체를 보관합니다. 그리고 장소에서는 사람 개체를 보관합니다. 여기에서는 순차적으로 보관할 수 있는 확장 가능한 배열을 템플릿으로 정의합시다. 확장 가능한 배열은 저장소가 꽉 차면 내부에서 저장소의 크기를 늘려 주어 사용하는 개발자가 저장소의 크기에 신경을 쓰지 않고 사용할 수 있는 동적 배열입니다. 여기에서는 순차 보관하는 기능과, 특정 인덱스의 요소를 제거, 특정 알고리즘이 참인 인덱스를 구하는 등의 기능을 제공하는 확장 가능한 배열을 만듭시다. template class SeqArray { 먼저 저장소와 저장소의 크기, 보관 개수를 기억하고 있어야 합니다. data *base;..

[C++] 72. 최종 실습 - 프로토 타이핑

[C++] 72. 최종 실습 - 프로토 타이핑 이번에는 앞에서 작성한 EhNara 뼈대에 요구 분석 및 정의에서 작성한 유즈케이스 다이어그램을 보며 프로토 타이핑을 작성합시다. GUI(Graphic User Interface) 프로그램에서는 이해관계자의 요구 사항을 제대로 파악한 것인지 확인하기 위해 프로토 타이핑을 작성하곤 합니다. 이해관계자의 요구 사항은 고정적인 것이 아니라 시시 때때로 변할 수 있는데 자주 변하는 부분이 대부분 User Interface에 관한 것이 많습니다. 즉 내부적인 것 보다 외형적인 부분에서 요구 사항이 자주 바뀔 수 있습니다. 이러한 것을 개발 앞 단계에 배치하여 이해관계자의 요구 사항을 반영하기 위해 프로토 타이핑을 합니다. EhNara 프로그램은 GUI 프로그램이 아니..

[C++] 71. 최종 실습 - EHNARA 뼈대

[C++] 71. 최종 실습 - EHNARA 뼈대 이번 실습에서는 유즈케이스 별로 시퀀스 다이어그램 설계하고 구현하는 것을 반복할 것입니다. 먼저 이제까지 작업한 것을 구현하고 유즈케이스 별로 시퀀스 다이어그램 작성 맟 구현으로 들어갈게요. EhNara의 뼈대를 만들고 난 후에 기본적인 사용자와 상호 작용의 프로토 타이핑을 할게요. 프로젝트에 Program.cpp 파일과 EhNara 클래스를 추가하세요. EhNara 형식 개체는 프로그램에 유일하며 대부분의 콘솔 응용 프로그램은 프로그램 초기화, 사용자와 상호 작용, 해제화 순으로 진행합니다. class EhNara { 단일체를 표현하기 위해 생성자와 소멸자의 접근 지정은 private으로 설정합니다. 대신 유일한 단일개체를 정적 멤버로 선언할게요. st..

[C++] 70. 최종 실습 - 설계1(클래스 다이어그램)

[C++] 70. 최종 실습 - 설계1(클래스 다이어그램) 설계 단계에서는 프로그램에 정의할 형식을 정하고 이들 사이에 관계를 정의하는 것과 유즈케이스 별로 수행 흐름을 정의하는 작업이 있습니다. 프로그램에 정의할 형식을 정하고 이들 사이에 관계를 정의한 것은 클래스 다이어그램으로 표현합니다. 유즈케이스 별로 수행 흐름을 정의하는 것은 여러 가지 다이어그램으로 표현할 수 있는데 여기에서는 시퀀스 다이어그램으로 작성할게요. 먼저 프로그램에 정의할 형식을 정하고 이들 사이에 관계를 정의합시다. 제일 먼저 이 에이치 나라와 학생 공장이 있죠.그리고 학교, 주거지, 다운타운이 있죠. 그런데 이 세 개의 형식은 학생이 올 수 있고 초점을 받아 사용자와 상호작용을 수행하는 등의 공통점이 있습니다. 논리적으로 보았을..

반응형