2014년 비주얼프로그래밍 과제리스트
(1) 그림과 같이 화면을 구성하고 지시와 같이 동작하도록 프로그램을 작성하라. (부과 3월 13일. 제출 3월20일)
- PictureBox로 만든 all이 우측 하단으로 이동한다.
- 벽에 부딪히면 반대로 움직인다. 상하좌우 4개의 벽에 대해 모두 반동한다.
- 빠르게/느리게 라디오 버튼 선택에 따라 움직이는 속도를 다르게 한다.
- 실행 화면을 캡쳐하여 구성 컨트롤 요소의 이름을 표기한 그림을 넣고, 소스를 넣은 보고서를 제출한다.
(2) 실습자료의 NBody 문서와 프로그램을 참조하여 다음 동영상처럼 동작하는 프로그램을 작성하라. (부과 3월 20일. 제출 3월27일)
- 버튼을 누르면 행성이 만유인력에 의해 움직이는 모양을 애니메이션 하라.
- 디자인 화면은 설명할 필요 없고, 소스만 넣은 보고서를 제출한다.
(3) 다음의 지시사항과 같이 동작하는 비트조작 프로그램을 작성하라. 실습자료를 참고한다. (부과 3월 27일. 제출 4월3일)
- 실행 화면을 캡쳐하여 구성 컨트롤 요소의 이름을 표기한 그림을 넣고, 소스를 넣은 보고서를 제출한다.
(4) 다음 지시사항처럼 스트링에서 검색, 치환하는 프로그램을 작성하라. (부과 4월 3일. 제출 4월 10일)
- 첨부된 지시사항을 잘 읽어보고 이에 따라 작성한다.
(5) 아두이노와의 폴링방식 프로그램을 다음과 같이 수정하라. (부과 4월 17일. 제출 4월 24일)
- 실습시간에 제시된 통신프로토콜 중 "RI"와 "RA"는 각각 접점 입력과 아날로그 입력의 상태를 얻는 것이다.
- 이를 하나로 합쳐 다음과 같은 통신 프로토콜을 추가한다.
입력접점(버튼)과 AD입력(가변저항)을 동시 조회. 아두이노가 수신하는 명령 (고정길이)
<STX> |
R |
B |
<ETX> |
아두이노의 응답 (10byte 고정길이)
<ACK> |
R |
B |
d |
d |
, |
d |
d |
d |
<ETX> |
(※) 콤마 앞쪽의 dd = 00~FF. 8개 접점의 bitwise OR.
(※) 콤마 뒤쪽의 ddd = 000~3FF(1023). 각 채널의 10비트 해상도 AD값
- 아두이노 프로그램을 적절히 추가해 넣어야 한다.
public static bool AskAllData(SerialPort serialPort, bool[] bits, out int adval)
- PC 프로그램의 timCommMon_Tick() 함수에서는 새로운 AskAllData( ) 함수만 호출하는 것으로 수정하여 이전과 같이 동작하도록 하라.
(6) TCP 통신에 관한 실습 시간의 프로그램을 다음과 같이 수정하라. (부과 4월 24일. 제출 5월 8일)
[1] 상대 프로그램이 정지되거나 Closed되어도, 재 실행되면 즉시 다시 연결되도록 프로그램을 수정하라.
상태 감시 타이머에 다음의 기능을 넣으면 될 것이다.
(1) Server : 통신 상태가 Closed가 되면 즉시 Listen으로 전환한다.
(2) Client : 통신 상태가 Closed가 되면 성공할 때까지 Connect를 시도한다.
[2] Server에서의 원의 움직임도 거꾸로 Client의 원의 위치에 반영되는 기능도 추가하라.
서로의 움직임을 서로 간섭하게 되므로, 최후 조작의 결과가 반영될 것이다.
이를 위하여 port 연결을 새로 추가하라. Port번호는 5003으로 한다.
(7) [라벨링] 다음의 지시와 같은 프로그램을 작성하라. (부과 5월 29일. 제출 6월 5일)
- 첨부된 지시사항을 잘 읽어보고 이에 따라 작성한다.
- water.jpg에 대해 실행한 실행화면은 아래와 같이 될 것이다.
←water.jpg(우측버튼클릭하여 다른이름저장)