본문 바로가기

자작 프로그램

Hell, World! 버전 1.0 자바 소켓을 이용한 간단한 채팅 프로그램 Hell, World 1.0입니다. 사용 방법은 다음과 같습니다.아래 파일을 다운로드받아 압축을 풉니다. hellworld.jar, hellworld.bar, hellworld의 3가지 파일이 있습니다.윈도우 사용자라면 hellworld.bat를 더블클릭하면 되고 리눅스 사용자라면 터미널에서 $ ./hellworld을 입력하면 됩니다. 그러면 아래와 같은 화면이 나타날 것입니다.메시지화면: 메시지가 출력되는 채팅의 주 화면입니다. 메시지 앞에는 4가지 중 하나의 표시가 올 수 있습니다.>> : 상대방으로부터 나에게 수신한 메시지입니다. ># : 프로그램이 나에게 알려주는 메시지입니다. 더보기
맥 OS용 만년달력 프로그램 맥 OS용 만년달력 프로그램입니다. 그레고리력 1년 1월 1일 월요일을 기준으로 윤년을 고려하여 달력을 출력합니다. 프로그램 첨부: 압축을 풀고 실행하면 아래와 같은 화면을 보실 수 있습니다. Prev Year는 1년 전 같은 달, Next Year는 1년 후 같은 달, Prev Month는 전달, Next Month는 다음달 달력을 보여줍니다. 가운데 큰 버튼을 누르거나 [Calendar] - [Jump to Year/Month]를 통해 직접 연도와 달을 입력할 수 있습니다. 기원전은 음수 연도를 입력하면 됩니다. 예를 들어 그레고리력 기준 기원전 10년 3월의 달력은 Year에 -10, Month에 March를 입력하고 [Apply] 버튼을 누르면 됩니다. 본 프로그램의 소스는 해피캠퍼스를 통해 유료.. 더보기
Objective-C로 작성해 본 복소수 클래스 #import // 간단한 복소수 클래스 @interface TapitoComplex : NSObject { float fImaginary; // 허수부 float fReal; // 실수부 } - (id) init; - (oneway void) release; - (float) getImaginary; - (void) setImaginary : (float) value; - (float) getReal; - (void) setReal : (float) value; - (TapitoComplex *) addComplex : (TapitoComplex *) value; - (TapitoComplex *) mulComplex : (TapitoComplex *) value; - (NSString *) toStr.. 더보기
자바로 구현한 만년달력 프로그램 그레고리력 만년달력 프로그램입니다. 기원후 1년 1월 1일(월요일)을 기준으로 하여 윤년 계산까지 직접 구현하는 방식으로 만들어졌으며 달력 범위는 long형 범위와 같습니다. 달력 범위: 기원전 9,223,372,036,854,775,808일 ~ 기원후 9,223,372,036,854,775,807일 사용 방법: 1. 먼저 http://java.sun.com 에 접속해서 Jave SE를 설치합니다. (이미 자바를 설치하신 분은 건너뛰셔도 됨) 2. SuperCalendar.jar를 다운받습니다. 3. 명령 창에서 java -jar SuperCalendar.jar를 입력한 후 엔터를 칩니다. 4. 상단의 달력 메뉴를 통해 연월을 직접 입력할 수도 있습니다. 5. A.D. 1년 1월의 달력을 보고 있습니다... 더보기
자바로 구현한 로또 번호 생성 프로그램 Lotto.java 소스 package com.tapito; import java.util.*; /** * 자동 번호 생성 클래스입니다. * @author tapito * */ public final class Lotto { private Random random; private byte[] numbers = null; private byte bonus = 0; /** * Lotto 클래스 형식 인스턴스를 초기화합니다. */ public Lotto() { this.numbers = new byte[6]; this.bonus = 0; this.random = new Random(); this.makeNumbers(); } /** * 생성된 숫자를 오름차순 정렬합니다. */ private void sortN.. 더보기
완전 심플 메모장 프로그램 (옴니아 Windows CE용) Windows 메모장 프로그램처럼 아무 파일이나 단순 텍스트 편집만 시키는 프로그램입니다. 물론 옴니아에 기본적으로 Word Mobile이 있기는 합니다만 txt, rtf확장자만 편집할 수 있기에 이를 약간 보완하기 위해 제작했습니다. 또한 이 프로그램은 인코딩 모드(기본, 표준 ASCII, UTF-7/8/16)를 선택해 저장할 수 있습니다. 더보기
숫자 출력 시리즈 1편 - 무지개 피라미드 숫자 출력 시리즈 1편입니다. 구 버전 Borland C++용 함수들을 썼기 때문에 현재 버전의 Visual Studio에서는 컴파일이 안 될 수 있습니다. /* * 삼각, 역삼각 숫자 출력 프로그램 * 작성자: tapitolife * http://tapito.tistory.com * http://kin.naver.com/profile/dkhighest * 사용 환경: Borland C++ 3.1, Windows 3.1 * */ #include #include #define BUFCOL 5 // 버퍼의 열 수를 설정합니다. #define BUFROW 8 // 버퍼의 행 수를 설정합니다. #define NUMMIN 1 // 숫자의 최소 값을 설정합니다. #define NUMMAX 40 // 숫자의 최대 값.. 더보기
C++로 구현해 본 간단 스택 내가 처음 C++ 을 공부할때와는 문법이 약간 달라진듯 하다. 아래 소스는 현재 통용되는 C++ 문법에 따라 자료구조를 다시 공부하는 중에 한번 만들어 본 스택 구현이다. BitField라던가, 예외처리, typeid 같은거는 처음 배울 당시 책에는 없었던 기능들이었는데... 최근에 나온 C++0x는 람다식도 지원한다니. C++이 갈수록 막강해지는 것 같아 재밌다. /* stdafx.h */ #ifndef __STDAFX_H #define __STDAFX_H #include #include #include #include #include #include #include #endif /* tnode.h */ #ifndef __TNODE_H #define __TNODE_H namespace Tapito { .. 더보기
Windows Mobile용 스톱워치 프로그램 제가 사용하는 옴니아에는 그 흔한 스톱워치 기능도 없습니다. 그래서 그냥 하나 만들어 봤습니다. 역시 C#으로 만드니 확실히 빨리 만들 수 있었습니다. (그만큼 제가 너무 날로 먹는다는 느낌도... ^^;;) Visual Studio 2008과 Windows CE 에뮬레이터 모습. 이상하게 폰트 적용이 안 되네요?? 배포할 때 폰트 파일도 같이 넣어줬는데 말이죠? 일단 다 완성하고 CAB 파일로 제 폰에 직접 배포해봅니다. 위의 CAB 파일을 클릭하면... 설치 위치를 지정해 주고 짝짝짝. 설치 성공입니다. ㅋㅋ 설치가 끝나면 이렇듯 프로그램 메뉴에 바로가기가 뜹니다. 프로그램 이름은 "Tapito Stopwatch" 뭐.. 특별히 사용법을 익힐 필요는 없으니까요. ㅎㅎ 다만 스톱워치가 돌아가고 있는 .. 더보기
간단한 C# LINQ 식 예제 C#에는 LINQ라는 기능이 제공되죠. 이게 간단히 말하면 SQL 구문을 약간 변형시킨 것인데요 배열 또는 데이터베이스에서 조건에 맞는 자료만 뽑는 기능을 언어 자체에서 제공하는 것입니다. 스크립트에서나 볼 수 있는 기능들이 C#에 들어간 것을 보면 확실히 C#은 대단한 물건임에는 틀림 없습니다. ㄷㄷ LINQ 식은 다음과 같은 포맷으로 구성됩니다. IEnumerable (인스턴스명) = from (자동변수) in (배열 또는 DB) where (조건) select (리턴 값) SQL과 비슷하면서도 약간의 차이가 있습니다. 바로 식의 순서인데요... SQL에서는 이렇게 표현하겠죠. select (필드명) from (테이블명) where (조건) 그러나 컴파일러 특성상 변수 이름을 먼저 선언해야 하기에 부.. 더보기
문자열 크로스 예제 제가 예전에 네이버 지식iN에 답변했던 내용을 조금 수정해 보았습니다. 어떤 분께서 두 개의 문자열을 입력 받아서 공통으로 들어간 문자 하나를 찾아서 크로스 시키는 문제를 질문했었는데요 http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=109898667&qb=66y47J6Q7Je0IOq1kOywqA==&enc=utf8§ion=kin.qna&rank=1&search_sort=0&spq=0 그냥 다시 생각나길래 그 당시 제가 올렸던 답변을 조금 수정해서 다시 게시합니다. ㅋㅋ 일단 문자열을 전체적으로 TCHAR 형으로 조금 바꿔보았습니다. #include #include #include #include #include #include #.. 더보기
문자열 빈도 프로그램 #include #include #include #include #include int main() { char buffer[128]; // 입력 버퍼 size_t arrayCount = 0; // 입력받은 문자열 수 char ** arrayPtr = NULL; // 입력받은 모든 문자열 배열 size_t checkCount = 0; // 중복 목록 수 char ** checkPtr = NULL; // 중복 목록 int * checkCnt = NULL; // 각 문자열별 빈도 수 int check = 0; // 중복된 거 찾으면 1, 아니면 0 size_t i = 0, j = 0; // 인덱스 변수 do { gets(buffer); // 입력 if(strcmp(buffer, "0") != 0) // "0.. 더보기
FindFirstFile, FindNextFile, FindClose 예제 #include #include #include #include #include void main() { TCHAR szTemp[512]; // 임시 버퍼 TCHAR szPathBuffer[MAX_PATH]; // 사용자로부터 입력 TCHAR szPathPattern[MAX_PATH]; // 검색 패턴 DWORD i; // 인덱스 변수 HANDLE hItem; // 검색 핸들 WIN32_FIND_DATA findData; // 파일 정보 setlocale(LC_ALL, ".949"); _tprintf(TEXT("디렉터리 경로를 입력해 주세요. (입력 예: C: 또는 C:\\My Documents)\n\r")); _tprintf(TEXT("입력 >> ")); #if defined(_UNICODE) || d.. 더보기
대/소문자 변환 예제 #include #include // 대문자인지검사합니다. #define ISUPPER(c) (('A' 더보기
완전 간단 회원 관리 프로그램 C++로 작성했고요 list를 이용한 완전 간단 회원 관리 프로그램입니다. ㅎㅎ 그냥 단순히 list 클래스와 iterator를 연습해보고자 만든 것이고요... 파일 저장 기능... 이딴 거 없습니다. list.begin()과 list.end(), list::iterator 이 3가지의 사용 방법을 익혀보고자 만들어 봤습니다. 소스 파일 공개합니다. // stdafx.h // 작성: tapitolife (http://tapito.tistory.com/), 트위터: @tapitolife // 내용: 각 파일의 공통적인 내용을 정의합니다. #ifndef __STDAFX_H #define __STDAFX_H #include #include #include #include #include #include usi.. 더보기
UK 검사의 개요와 검사 프로그램 구현 1. UK(Uchida-Kraepelin)란? UK검사는 대상자가 일정 시간동안 연속적인 덧셈 연산을 할 때의 작업량, 작업 곡선 등을 기초로 하여 수검자가 능력, 흥미 및 성격 특성을 진단하는 검사입니다. 원조는 독일의 정신학자 에밀 크래펠린(Emil Kraepelin, 1856~1926)의 연속 덧셈 방법이고 이를 적극적으로 도입하여 연구한 것은 일본의 임상심리학자 우찌다 유사브로(1894~1966)입니다. 우찌다는 정신분열증, 신경증, 약물중독 환자와 사고 빈발자, 직장 부적응자 등의 문제 성향의 집단과 정상인 집단에게 연속 덧셈을 시켜본 결과 각각의 그룹에서 공통적인 곡선 패턴이 나타남을 확인하였고 이에 근거하여 능력, 흥미 및 성격 특성 등을 진단하였습니다. 표준 UK검사는 전반부 15분 + 휴.. 더보기