자동차 트립컴퓨터 파이썬클래스로 구현하기

이미지
오늘은 파이썬으로 자동차 클래스 를 만들어 보고자 합니다. 예를 들면, 자동차의 연비, 최대 연료 탱크량, 현재 연료량, 주행거리 등을 속성 (Attribute or Property)으로 갖고 "기름을 넣다", "주행하다" 등의 행위를 함수 (Method) 로 구현하고자 합니다. 클래스를 설계할 때, 위와 같이 속성은 변수 로, 행위는 함수 로 구현하는 것이 기본입니다. 아래와 같이 사용합니다. 두개의 파이썬 파일 ( main.py, car.py ) 로 구성되어 있으므로 두 파일을 같은 경로에 두고 main.py를 실행하면 됩니다.  먼저 Car Class 객체를 생성하고 사용하는 main.py 파일입니다. main.py from car import Car c = Car('마이카', 15, 60) # 이름, 연비, 연료탱크량 c.print() c.chargeFuel(47) c.print() c.drive(100) c.print() 코드는 아래와 같이 동작합니다. 3번 라인 : Car 클래스 객체 c 생성, (차량이름, 연비, 최대연료탱크량) 4번 라인 : Car 클래스 print() 메서드 호출, 차량 정보 출력 6번 라인 : Car 클래스 chargeFuel() 메서드 호출, 기름 충전 9번 라인 : Car 클래스 drive() 메서드 호출, 차량 주행   위 코드의 수행 결과는 다음과 같습니다. 마이카를 한대 생성하고, 기름을 47 리터 충전 후, 100 Km를 주행한 결과입니다. [Car 클래스 생성 후 사용결과] car.py 다음으로 Car Class 코드를 살펴보겠습니다. class Car: def __init__(s...

중첩(Nested)클래스로 Iterator 직접 구현하기

이미지
C++ STL의 템플릿 클래스들이 제공하는 이터레이터를 직접 구현해본 예제 입니다. 예를 들면, std::vector 의 이터레이터를 다음과 같이 사용합니다. std::vector<int> v; v.push_back(5);  v.push_back(3);  v.push_back(7);  // 이터레이터 선언 std::vector<int>::iterator itr = v.begin(); 직접 템플릿 클래스를 만들고 이를 순회하는 iterator 도 직접 만들어 보는 것이죠. 이진 탐색 트리( B inary S earch T ree, 이하 BST)의 Iterator를 직접 구현 해보고자 하는 학원생이 있어 같이 공부하며 만들어 보았습니다. 이 게시물은 BST의 기본적인 구현을 설명하지 않습니다. 인터넷에 많은 자료가 있으므로 참조하기 바라며, Custom Iterator 의 내용 위주로 설명하겠습니다. 구글 검색으로 아래 사이트의 도움을 많이 받았습니다. 미국 "The Ohio State University, Steven J Zeil" 교수님이 구현한 예제이며, 해당 주제에 대해 잘 정리되어 있습니다. 링크 :  https://www.cs.odu.edu/~zeil/cs361/latest/Public/treetraversal/index.html 아래와 같이 사용합니다.  Main.cpp #include <iostream> #include <string> #include "bst.h" int main() { // int type bst ocs::bst<int> b1; b1.insert(5); b1.insert(3); b1.insert(7); b1.insert(2); b1.insert(10); std:...

Qt C++앱 Android 배포하기(개발환경구축)

이미지
개요 이번 포스팅은 C++과 Qt 를 이용해 안드로이드 앱 을 만드는 과정을 진행할 계획입니다. 앱은 간단한 샘플로 제작하고, Qt를 이용해 C++ Android 개발환경을 구축 하는 방법에 대해 집중해 보았습니다. 저 또한 데스크탑 환경이 아닌 낯선 모바일 개발환경을 처음 접했을 때, 이 부분이 가장 어려웠습니다. 결과부터 살펴보면 PC와 폰을 연결해 Qt의 Cross Platform  을 이용, Windows 플랫폼에서 개발 -> Android 플랫폼에서 실행 으로 구성되어 있습니다. [Windows 10, LG G7 연결] [Qt 앱 실행화면] 물론 이 방법 외에도 안드로이드 앱을 만들 수 있는 개발환경은 다양합니다. Android Studio(Java or Kotlin),  Microsoft Xamarin(C#) 등 선호하는 방법으로 개발환경은 스스로 선택하면 되겠습니다.   개발 환경 구축 이 예제는 Windows 10 Pro 64bit 운영체제에서 구성, 작성되었습니다. 더불어, 아래의 구성요소들이 필요합니다.  Qt Android Studio Android NDK Java JDK   1. Qt 설치 Qt는 C++로 만들어진 Class들의 집합이며, 크로스 플랫폼을 지원합니다. GUI ( G raphic U ser I nterface) 개발에 주로 사용되지만, 네트워크, 블루투스, 3D, 쓰레드 등 다양한 분야의 클래스를 지원합니다.   설치...

MFC기반의 CPP REST SDK 사용법(코로나앱)

이미지
오늘은 Microsoft 에서 배포한 C++ REST SDK ( 코드명 : 카사블랑카 ) 를 이용해 Http Request 를 하는 내용에 대해 다룹니다. 목표 공공 데이터 포털의 시도별 코로나 정보를 REST API를 이용해 처리   바로 앞 예제에서 파이썬을 이용해 만들어 본 코로나 예제 와 개념은 동일하지만, C++을 이용해 시도해 보았습니다.   간단히 전반적인 개요 를 살펴보면, 1. 공공 데이터 회원 가입 (앞 게시물 참조) 2. 코로나 시도별 정보 권한(키) 획득 3. Microsoft REST SDK를 이용한 요청데이터 생성 및 전송 4. 응답 데이터 문자열(UTF-8) 수신 (XML or JSON), 신청 정보별로 다름 5. XML 파싱 후 MFC CListControl 에 출력 6. 전국 시도별 코로나 정보 획득   쿼리 요청 후 응답 결과는 아래와 같이 처리됩니다. [쿼리 요청 후 응답 데이터 리스트 컨트롤 출력] [응답 데이터 XML 문자열] 프로젝트 생성 과정 은 다음과 같습니다. 1. C++, MFC 대화상자 프로젝트 생성 2. 프로젝트 생성 후 솔루션 탐색기->프로젝트 우클릭 ->NuGet 패키지 관리 3. CPPREST 검색 후 해당 패키지 설치 4. 설치 후 솔루션 폴더 아래 Packages 폴더 설치 확인 이제 Microsoft 에서 만든 Rest SDK 를 이용해 C++로 코드 작성 준비가 완료 되었습니다.   ...

이 블로그의 인기 게시물

Qt Designer 설치하기

PyQt5 기반 동영상 플레이어앱 만들기