EPI00 개발일지

(코딩 교육용)C언어 순서맞추기 문제내는 프로그램 본문

프로그램 개발?

(코딩 교육용)C언어 순서맞추기 문제내는 프로그램

EPI00 2021. 6. 16. 16:59

동아리 축제 때 전시(사실상은 Zoom을 통한 랜선 시연)할 프로그램을 만들어야 했는데, 이 때 우리 동아리에서 나온 여러개의 아이디어 중 코드를 퍼즐처럼 순서를 맞추며 실행해보는 그런걸 해보면 어떻겠냐는 아이디어를 실현했다. 

개발 기간 : 2021년 06월 16일 13시 15분 ~ 16시 30분
사용 언어 : Python 3.7.4
(C를 통해 구동되는 Python으로 C 교육용 프로그램을 만들었다는 부분이 유머)

소스 코드 : https://github.com/dpvpd/code_order

프로그램 다운로드 : https://drive.google.com/file/d/1taB9YK701AZwMjRwf0wE_6xEd6h2L61G/view?usp=sharing 

 

LearnC.zip

 

drive.google.com

 

dpvpd/code_order

C언어 코드 교육용 순서 맞추기 프로그램. Contribute to dpvpd/code_order development by creating an account on GitHub.

github.com

프로그램 소개 :

우선, 프로그램을 켜면 이런 창이 뜬다. 

[코드 선택] 버튼을 누르면 위와 같은 창이 뜨는데, 이 중 하나를 선택해 [선택]을 누르면 프로그램에 내장된 코드를 로드할 수 있다. (사실 귀찮아서 3개만 만들어 놓았다. )

이렇게 코드가 로드되는데(본 예시에선 3rdcode.c를 선택했다), 좌측에 뜬 코드들을 드래그 앤 드롭으로 순서를 바꾼 뒤 [실행해보기]를 누르면 새 콘솔창이 열리며 해당 코드가 실행된다. 

여기서 [실행해보기]를 누르면...

위와 같이 코드가 실행된다. 실행된 뒤 23을 입력한 후 Enter를 누른 화면이다. 

 

사실 아이디어만으로는 만들지 못할 것이랑 생각이 들었으나, "하니까 되더라."
C언어 코드 실행은 사실 코드를 컴파일해서 실행하는게 아니라, 저 코드와 출력 결과가 같은 c언어 코드를(내용은 다르다. #include <windows.h>와 system("pause") 때문에)미리 컴파일해두고 그 결과로 나온 exe파일을 data폴더에 넣어놓고 subprocess를 이용해 실행하는 방식이다. 한마디로 편법.

아마 이 사실을 알고, data폴더 속의 파일들(.ui파일 두개는 제외)을  뜯어본 사람들, 혹는 github에 올려둔 소스코드를 읽어본 사람들은 바로 알 수 있을 것이다. 
data폴더 속의 데이터 파일만 어떻게 잘 수정하면 저기에 더 많은 코드를 추가할 수 있다는 사실을.
하지만 난 귀찮다....

 

추가로.... 코드를 선택하지 않고 실행하면 critical 창이 뜨고, 순서를 맞추기 않고 실행하면 information창이 뜨면서 실행이 안된다. 일부러 막아둠