분류 전체보기

개발 기록/C Language

[C언어] 도서 종합 관리 프로그램 개발 계획서 | development plan

학교 수행평가 과제로 위처럼 만들어봤다. 소스코드와 실행 방법은 아래 글에 첨부되어있다. [C언어] 도서 관리 프로그램 | 도서 대출, 반납, 등록, 검색 | 구조체, 파일입출력 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #define BOOK_NAME_SIZE 50 #define BOOK_AUTH_SIZE 30 #define BOOK_PUBL_SIZE 30 void borrowbook(); // 도서 대출 함수 void returnbook.. white-world.tistory.com

청춘 기록/수필

학교 동아리 면접 결과, 성취

B1ND라는 대소고 학생 생활 관리 시스템 동아리에 지원을 하고 면접을 본 후, 면접 결과를 기다리며 몇 번이나 바인드 동아리 웹사이트를 들락날락했다. 사실 학교 동아리니까 떨어지더라도 다시 우뚝 서자고 다짐했지만 떨어지면 어쩌지, 하고 걱정이 들었다. 심야 자율학습 2에 내려온 오늘이었다. 별 기대 안 하고 동아리 웹사이트를 열어봤는데, 평소와 다른 창이 나왔다. 면접 결과였던 것이다. 순간의 기쁨과 가족들에게 '나 이뤘어!' 외치고 싶은 마음이 몰려왔다. 기대를 하지 않고 맛본 행복은 달았다. 사실 기쁨만 존재했던 건 아니었다. 떨어진 친구들에 대한 안 좋은 마음과, 그들 몫까지 더 열심히 해야겠다는 책임감이 느껴졌다. 행복감에 여기서 멈추지 말고, 자만심은 더욱이 가지지 않기로 했다. 이 동아리에서..

개발 기록/C Language

[C언어] 구조체 복사 strcpy, memcpy 알아보기

C언어에서는 구조체란 개념을 사용하고, 한 구조체변수에서 다른 구조체변수로 구조체를 복사하려면 아래처럼 할 수 있다. #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct _p { char name[20]; int x; int y; }Point; int main(void) { Point p1, p2; strcpy(p1.name, "구조체 복사"); p1.x = 10; p1.y = 20; // 아래 출력되도록 p2에 p1의 값을 복사해보자. strcpy(p2.name, p1.name); p2.x = p1.x; p2.y = p1.y; printf("%s\n", p2.name); printf("%d %d\n", p2.x, p2.y); return ..

청춘 기록/수필

내게 삶이란 | about my life

오늘도 글을 끄적여 본다. 난 정말 빠르게 흘러간 시간들을 거쳐 16년을 살아왔다. 물론 훨씬 많이 살아온 분들도 계시겠지만, 나로써는 내 삶이 최초이다. 5살 즈음 가족과 외식가고, 경주에 놀러가고, 기차여행 갔을 때가 정말 엊그제 같지만, 그 뒤 정말 많은 시간이 흘러왔다. 시간의 흐름은 나만 겪으면 그나마 괜찮겠지만, 우리 가족도 겪는다. 시간이란 것을 묶어두고 싶지만 어쩔 수 없는 자연의 순리이다. 시간은 지금처럼 빠르게 흘러가서, 결국 한 점에 도달하겠지. 과정을 빨리감기 한 것 마냥 주마등이 스쳐가는 날이 올 것이다. 마지막 호흡이 주어질 것이고, 평생을 함께 보내 온 자아를 보내야 할 순간이 올 것이다. 사람이란, 꽃처럼 활짝 피어도 결국엔 시든다. 어쩌면 끝이란 것이 정해져 있기에 아름다운..

청춘 기록/수필

시험 기간과 시험 공부에 대하여 | 진정한 공부

시험 기간이 소떼처럼 몰려오면 발등에 불이 떨어지듯이 시험 범위 공부를 한다. 대한민국 학생이라면, 또는 학생이었다면 누구나 경험해봤을 것이다. 물론 공신들은 8주 전부터 시험 공부를 한다고 하지만, 큰 결단력이 없으면 공부를 시험 전까지 미루기 마련이다. 수업 시간에 많이 집중을 했다 하더라도, 하나의 개념을 놓치거나 이해가 안 되는 부분이 있기만 해도 부가적인 공부를 해야 한다. 그 부가적인 공부를 하고 문제 풀이를 통해 개념에 대해 다시 한 번 생각하며, 개념을 다지는 과정이 진정한 시험 공부라고 생각한다. 하지만 일부 학생들(혹은 사람들)은 시험 공부=문제 풀이라고 생각한다. 또한 교과목에 나온 개념을 생각해보지 않고 문제 풀이를 시작한다. 이것은 마치 빌딩을 지을 때 설계도 안 하고 바로 현장에..

개발 기록/C Language

[C언어] 구조체로 학생 정보 입력받고 출력하기 | struct, typedef

#define _CRT_SECURE_NO_WARNINGS #include // 구조체를 사용하여 이름과 나이를 입력받아 출력하는 프로그램 typedef struct data { char name[20]; int age; int stunum; }Student; int main() { Student me; printf("이름 입력 : "); scanf("%s", me.name); printf("나이 입력 : "); scanf("%d", &me.age); printf("학번 입력 : "); scanf("%d", &me.stunum); //출력하는 코드를 작성해보세요. printf("제 이름은 %s, 나이는 %d, 학번은 %d입니다.\n", me.name, me.age, me.stunum); return 0; ..

개발 기록/C Language

[C언어] 도서 관리 프로그램 | 도서 대출, 반납, 등록, 검색 | 구조체, 파일입출력

#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #define BOOK_NAME_SIZE 50 #define BOOK_AUTH_SIZE 30 #define BOOK_PUBL_SIZE 30 void borrowbook(); // 도서 대출 함수 void returnbook(); // 도서 반납 함수 void registerbook(); // 도서 등록 함수 void printbook(); // 도서 목록 출력 함수 void searchmenu(); // 도서 검색 메뉴 함수 void searchbookbyname(); // 도서명으로 검색 void searchbookbyauth(); // 저자로 검색 void searchbookbyp..

개발 기록/C Language

[C언어] 로또 번호 추첨하고 맞추는 프로그램 | Lottery

#define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { int cnt = 0; int randNum; int isSame; int input[7] = { 0, }; int lottery[7] = { 0, }; int randomArray[51] = { 0, }; srand(time(NULL)); printf("로또 7개의 숫자를 입력하세요(1~50 중복입력불가) : "); for (int i = 0; i < 7; i++) scanf("%d", &input[i]); for (int i = 0; i < 7; i++) { randNum = rand() % 50 + 1; if(randomArray[randNum]) { i--; continue; }..

개발 기록/JAVA

[JAVA] 자바 컴파일 결과가 exe가 아닌 class인 이유

자바 소스 코드를 실행하는 과정에서 컴파일러는 자바 소스코드를 이용해 클래스 파일을 생성한다. 그런데 C와 같은 언어에서는 최종으로 exe 파일을 생성한다. ( 이 exe 파일은 단순히 더블클릭으로 실행시키기만 하면 작동된다. ) ​ 자바에서는 왜 실행하기도 어려운 클래스 파일을 만드는 걸까? 먼저, C와 C++같은 언어에서는 컴파일된 실행 파일을 모든 운영체제에서 동일하게 사용 불가능하다. 윈도우에서 컴파일한 실행 파일을 리눅스에서 사용할 수 없다는 이야기다. 하지만 자바에서는 JVM이라는 중간단계 역할을 수행하는 것이 있기 때문에, 한번 작성해 컴파일한 파일은 어떤 운영체제에서든 사용 가능하다. ( 자바는 JVM으로 이러한 장점이 생겼지만, 반대로 C와 같은 언어에서는 없는 중간 단계가 자바에는 있어..

개발 기록/C Language

[C언어] 두 점 사이의 거리 구하기 | sqrt 함수

#include #include struct Point { int x, y; }; int main(void) { struct Point p; p.x = 1; p.y = 2; struct Point p1; p1.x = 3; p1.y = 4; double a, b, c; a = p1.x - p.x; b = p1.y - p.y; c = sqrt(a * a + b * b); printf("%.2f\n", c); return 0; } a = x좌표 거리의 차이 b = y좌표 거리의 차이 c의 제곱 = a의 제곱 + b의 제곱 c = 루트(a의 제곱 + b의 제곱)

개발 기록/C Language

[C언어] 유클리드 호제법으로 최대공약수와 최소공배수 구하는 프로그램 | GCD, LCM

#define _CRT_SECURE_NO_WARNINGS #include int main(void) { int x, y, xy, z; int gcd = 0, lcm = 0; do { x = 0, y = 0; printf("두 수를 입력하세요 : "); scanf("%d %d", &x, &y); xy = x * y; if (x > 0 && y > 0) { while (1) { z = x % y; if (!z) { gcd = y; lcm = xy / y; break; } else { x = y; y = z; } } printf("최대공약수 = %d, 최소공배수 = %d\n", gcd, lcm); } else if (x != 0 || y != 0) { printf("양의 정수를 입력하세요. (Quit 0, 0..

개발 기록/C Language

[C언어] 소수(Prime) 구하기 | 효율적인 알고리즘

#define _CRT_SECURE_NO_WARNINGS #include int isPrime(int n) // 소수인지 아닌지 알려주는 함수 { for (int i = 2; i * i = 1000) { printf("\n"); continue; } int primeCnt = 1; for (int i = 2; i

청춘 기록/수필

게임 회사 취업 가이드 | 넥슨 옥찬호 개발자님 특강

오늘 대구소프트웨어마이스터고등학교에서 넥슨 옥찬호(Chris Ohk) 개발자님의 특강을 들었다. 저번 게시글(프로젝트가 실패하는 이유) 다음 "게임 회사 취업 가이드" 특강이 이어졌다. 아래는 게임 회사 취업 가이드 특강을 들으며 기록한 내용을 정리한 글이다. 게임 프로그래머가 하는 일들 - 게임 컨텐츠 개발 - 게임 버그 재현 및 수정 - 라이브 서비스 유지보수 - 게임 엔진 R&D (최적화, 새로운 기술 제공 등의 게임 엔진 개조) 게임 프로그래머 채용 과정 - 입사지원서 제출 (자기소개서, 포트폴리오)(2 : 8 정도로 포트폴리오가 더 중요) - 코딩 테스트 (알고리즘 문제 풀기, 코딩 스타일) - 기술 면접 (컴퓨터공학 관련 지식, 고난도 문제 해결 과정) - 팀/임원 면접 (팀 또는 회사에 어울..

청춘 기록/수필

프로젝트가 실패하는 이유 | 넥슨 옥찬호 개발자님 특강

오늘 대구소프트웨어마이스터고등학교에서 넥슨 옥찬호(Chris Ohk) 개발자님의 특강을 들었다. 아래는 특강을 들으며 들은 내용을 정리한 글이다. 우리의 프로젝트가 실패하는 이유 정의되지 않거나 잘못 정의된 목표 알 수 없는 자원 할당 동상이몽 팀원들 모든 일을 혼자 해결하려는 시도 갈팡질팡한 프로젝트 관리 위 목차들을 순서대로 살펴볼 것이다. 정의되지 않거나 잘못 정의된 목표 프로젝트 목표 = 수행할 작업과 수행하지 않을 작업을 정의하는 영역. 어떤 일을 해야 하는지, 어떤 일을 하지 않아야 하는지. 프로젝트 목표를 정의하지 않거나 잘못 정의할 경우 팀원이 프로젝트의 방향성을 이해하지 못한다. 프로젝트를 실패하지 않게 하기 위해 아래와 같이 목표를 잘 정의해야 함 - 단계와 태스크 - 높은 수준의 요구..

개발 기록/C Language

[C언어] 대각선 방향으로 숫자 출력하기 | 배열 이용

#include #pragma warning (disable : 4996) int main() { int arr[100][100] = { 0 }; int a, b; int value = 1; int k = 0; scanf("%d %d", &a, &b); while (1) { for (int i = 0; i < b; i++) { for (int j = 0; j < a; j++) { if (i + j == k) arr[j][i] = value++; } } k++; if (value - 1 == a * b) { break; } } for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { printf("%3d", arr[i][j]); } printf("\n");..

우준성
'분류 전체보기' 카테고리의 글 목록 (12 Page)