객체지향 엘리베이터

이것은 아마도 대학교 3학년때… 20년전 전쯤…

객체지향프로그래밍 과목 마지막 과제물을 C++언어로 엘리베이터 시뮬레이션을 만들어서 제출했던 것으로 기억합니다. 아쉽게도 스크린샷은 찾을 수 가 없네요.

문제기술

저희 ㅇㅇ대학교 ㅇㅇㅇ관은 9층 건물이며 엘리베이터, 강의실 그리고 많은 사람들이 엘리베이터를 이용합니다.

엘리베이터는 여러사람이 동시에 탑승하며, 안전을 위하여 무게제한이 있고 인원초과시 안내방송과 함께 빨간등불이 켜집니다.

사람들은 자기가 목적한 층으로 가기위해서 현재층에서 건물 내벽에 부착된 오름버튼, 내림버튼을 이용해 진행방향을 선택합니다.

1. 목 표

엘리베이터 시뮬레이터를 구현하기 위해 연관된 객체들을 식별하고 식별되어진 객체들을 분석하고 모델링하여 C++ 언어에서 제공하는 객체지향 프로그래밍 기법을 사용하므로써 구조적프로그래밍에 익숙했던 프로그래밍 방법에서 탈피 하여 새로운 형태의 객체지향적인 방법으로 프로그래밍 해보고, 이미 만들어진 STL(Standard Template Library)을 사용하므로써 보다 질좋고, 안정되게 프로그래밍하는데 목적을 두고 있다.

2. 개발환경

O/S : Windows 98

CPU : PentiumII 350

RAM : 128M

화면 : 1024X768

Language & Tool : Visual C++ 6.0, Borland C++ builder 3.0

3. 알고리즘과 기법

C++의 객체지향 기법을 적용하여 엘리베이터 시뮬레이터에 필요한 객체(엘리베이터, 사람, 단추, 건물, 층)를 구현하였고, C++Builder 3.0에서 제공하는 TBevel, TLabel, TEdit, TLabel, TStatusBar, TButton 컴포넌트를 사용하여 인터페이스를 구현하였습니다.

Linked list를 구현하여 사람들을 구현할 있었지만, C++에서 제공하는 STL(Standard Template Library)중 list<..>를 사용하였습니다.

4. 제약사항

– 엘리베이터 스케줄링

시작시간 : 0초부터 시작.

건물안으로 들어오는 사람들의 수 : 1 ~ 10 까지 랜덤하게 입력

건물안에 총 사람들 수 : 100명

엘리베이터 이동 시간 : 1초

문열고 사람내리는 시간 : 1초

종료 버튼을 누를 때 가지 실행을 계속한다.

– 층버튼

버튼이 누려진 것을 보이기 위해서 엘리베이터가 지나간 진행방향 버튼이 1초 후에 꺼진다.

5. class



댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다