SMALL

분류 전체보기 103

파일 입출력 라이브러리(Basic Step)

파일 입출력 입력과 출력의 대상이 파일인 경우 입출력 대상 텍스트 파일, 이진 파일 입출력 과정 * 스트림을 생성함으로 파일 구조체에 대한 접근이 가능해짐. 파일 열기 파일 입출력을 수행하려면 먼저 fopen 함수를 이용하여 파일을 열어야 함 fopen 함수의 원형: FILE* fopen(const char* filename, const char* mode); filename : 파일 이름 mode : 파일 열기 모드 리턴 값 : 생성된 파일 스트림의 파일 포인터를 리턴 / 파일을 열 수 없으면 Null 포인터를 리턴 Default mode는 Text file. 입출력 함수 예제_1 #include int main(void) { FILE* fp; char ch; if (fp = fopen("./main...

도서관리 시스템 고도화(동적메모리)

고도화 개요 - 베스트셀러 Top3 도서의 제목을 출력하는 기능 - 도서 데이터를 동적할당을 이용하여 저장 프로그램 구현 시 처리 대상 자료 - 도서명 - 가격 - 코드 - 저자 - 판매수량 - 베스트셀러 기능 정의 - 베스트셀러 Top3 출력 - 동적메모리를 할당하여 저장(필요한 만큼 데이터를 사용) - 연속 입력 기능, 출력 메뉴 연속 사용 기능 고도화 방법 베스트셀러 출력 메모리 공간 활용 연속 입·출력 - qsort함수를 이용한 판매수량 정렬 - 동적 메모리 할당을 이용한 요구 메모리축속 - 무한 반복 루프로 구현 자료 typedef struct book { char bookTitle[50]; char bookAuthor[20]; int boolPrice; int bookSale; char boo..

함수 포인터(Function Pointer)

함수 포인터란? - 함수의 주소를 저장하는 변수 필요성 프로그램 코드 간결화 배열로 처리함으로써 중복 코드 제거 가능 상황에 따른 함수 호출 함수를 데이터 형태로 처리 → 함수의 보관과 전달이 용이 형식 - 리턴 타입 (*함수 포인터명)(매개변수 리스트); 1. 리턴과 매개변수가 없는 함수에 대한 함수 포인터 #include void hello() { printf("Hello, world!\n"); } void good() { printf("Good morning!\n"); } int main() { void (*fp)(); // 함수 포인터 선언(리턴타입void, 매개변수 없음) fp = hello; // hello 함수 시작 주소를 대입 fp(); // 함수 포인터로 호출 fp = good; // g..

동적 메모리

" 10칸의 전철이 있다. 평균 승객의 수를 고려한다면 4칸 정도만으로도 충분히 승객을 태울 수 있다. 만약 승객의 수에 따라서 전철 칸 수를 늘리고 줄일 수 있다면 효율적인 운행이 가능해진다. 프로그램 메모리에도 필요에 따른 크기 할당이 가능한 것이 바로 동적 메모리 이다. " 동적 메모리 이해 특 징 정적 메모리 동적 메모리 메모리 할당 컴파일 단계에 이루어짐 실행 시간에 이루어짐 메모리 해제 자동으로 해제 명시적으로 해제 필요 사용 범위 지역 변수는 선언된 블록 내, 전역 변수는 프로그램 전체에서 사용할 수 있음 프로그래머가 원하는 동안 만큼 사용할 수 있음 메모리 관리 컴파일러의 책임 프로그래머의 책임 개요 1. 데이터의 갯수를 미리 알 수 없을 때 사용 2. 처리 대상 데이터가 유동적일 때, 특..

수학 관련 라이브러리

어려운 계산식을 직접 만들지 않고, 만들어놓은 라이브러리를 사용할 수 있다. 종류 1. 삼각함수 cos cosine 값 연산 sin sine 값 연산 tan tangent 값 연산 acos arc conie 값 연산 asin arc sine 값 연산 atan arc tangent 값 연산 atan2 매개변수가 2개인 arc tangetn 값 연산 2. 지수, 로그 함수 exp 지수 연산 log 자연로그 연산 log10 상용로그 연산 3. 제곱함수 pow 거듭제곱 연산 sqrt 거듭제곱근 연산 4. 반올림함수 ceil 올림연산 round 반올림 연산 floor 내림연산 5. 최대값, 최소값 함수 fmax 매개변수 중 최대값 반환 fmin 매개변수 중 최소값 반환 6. 절대값 함수 abs 정수의 절대값 연산..

도서관리 시스템 구현

도서관리 프로그램이란? - 도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 전체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발 프로그램 구현 시 처리 대상 자료 { 도서명, 가격, 저자, 판매수량 } 기능 정의 항 목 내 용 메뉴 도서 입력, 도서 출력, 도서 검색, 종료 기능 도서 입력, 출력, 제목 검색, 저자 검색 요구사항 - 메뉴 방식으로 작업 선택 - 종료 메뉴 추가 - 책 제목 최대 50글자까지 입력 가능 - 저자명 최대 20글자까지 입력 가능 - 검색: 제목 검색, 저자 검색 - 최대 100권 관리 기능 자료구조 정의 자 료 도서명 char bookTitle 저자 char bookAuthor 가격 int bookPrice 판매수량 int b..

문자 처리 라이브러리

문자 관련 입출력 함수 getc() putc() int getc( FILE *stream); - 지정한 스트림으로 부터 문자 읽기 - 입력문자 ASCII코드 값을 리턴, 오류 시에는 EOF 리턴 int putc(int ch, FILE *stream); - 지정한 스트림에 지정한 값을 출력 - 정상 출력 시 출력문자 리턴, 오류 시는 EOF 리턴 _getch() _getche() _putch() (conio.h에 포함) int _getch(void); int _getche(void); - 키보드로부터 입력되는 문자를 읽음 - 입력 문자의 ASCII코드를 리턴 - _GETCHE() 는 echo를 사용 - 버퍼를 사용하지 않는 입력 int _putch(int ch); - 화면에 지정한 값을 출력 - 정상 출력..

라이브러리(Library)

늦음 밤에 허기를 달래기 위해서 편의점을 갈 수 있고, 직접 만들어 먹을 수도 있다. 편의점은 바로 만들어 먹을 수 있고, 아니면 내 입맛에 맞게 직접 만들어 먹을 수도 있다. 코딩도 마찬가지로 내가 직접 코딩을 할 수도 있고, 이미 만들어져 있는 코드(라이브러리)를 사용할 수도 있다. 라이브러리 이해 정의 서브루틴이나 함수들이 저장된 파일들의 모음 보통 컴파일된 형태인 목적코드 형태로 존재 프로그램에서 공통 사용 가능한 기능을 포함하고 있는 오브젝트 파일 사용자의 프로그램과 링크되어, 실행이 가능한 완전한 프로그램 사용 이유 - 자주 사용되는 특정한 기능을 main 함수에서 분리해 놓음. ex) printf(), scanf() 등등 ㅁ 프로그램 유지 ㅁ 쉬운 디버깅 ㅁ 컴파일 시간 단축 분류 - 정적 ..

어플리케이션 최적화(Application Optimization)

최적화란? - 정보공학에서 시스템을 수정하여 어떠한 면의 작업을 더 효과적으로, 또는 자원을 덜 사용하도록 만드는 작업 컴퓨터 프로그램은 더 빠르게 실행되거나 기억 장치 또는 자원을 덜 차지하게 하여 운영하도록 개선 유지보수의 편의성을 고려한 코드 개선 안정성 확보를 위한 최적화 최적화 기법 - 성능 체크 : 최적화 대상 선정 - 코드 분석 : 최적화 향상 병목지점 찾기 (소요시간) 구조체 복사 시 대입연산자 대신 라이브러리 함수를 이용 구조체 전달은 포인터를 이용 함수의 매개변수를 축소 (4개 이하: 레지스터 이용, 4개 이상: 스택 이용) 4Byte 이상 전달 시 포인터를 이용 4개 이상인 경우 인자를 구조체로 선언하고 구조체 포인터를 매개변수로 전달 const를 적절히 활용 (안정성 확보 차원) 2..

LIST