도서관리 시스템 고도화(동적메모리) # 프로그램 설계 1. 고도화 개요 베스트셀러 Top3 도서의 제목을 출력하는 기능 도서 데이터를 동적할당을 이용하여 저장 프로그램 구현 시 처리 대상 자료 • 도서명 • 저자 • 가격 • 판매수량 • 코드 • 베스트셀러 2. 기능 정의 1) 메뉴 2) 기능 도서 입력, 도서 출력, 제목 검색, 저자검색(검색기능키워드검색), 출판연도별 목록 출력, 베스트셀러 출력 3) 고도화 내용 베스트셀러 Top3 출력 동적메모리를 할당하여 저장 연속 입력 기능, 출력 메뉴 연속 사용 기능 4) 고도화 방법 3. 자료구조 정의 1) 자료 2) 자료구조 struct book { char bookTitle[50]; char bookAuthor[20]; int bookPrice; int ..
함수 포인터 # 함수 포인터 이해 1. 소개 1) 정의 함수 포인터란? 함수의 주소를 저장하는 변수 2) 필요성 프로그램 코드 간결화 배열로 처리함으로써 중복 코드 제거 가능 상황에 따른 함수 호출 함수를 데이터 형태로 처리 →함수의 보관과 전달이 용이 3) 형식 리턴타입 (*함수 포인터명)(매개변수리스트); 4) 활용 2. 함수 포인터 형식 1) 리턴과 매개변수가 없는 함수에 대한 함수 포인터 #include void hello() { printf(“Hello, world!\n”); } void good() { printf(“Good morning!\n”); } int main() { void (*fp)(); fp = hello; fp(); fp = good; fp(); return 0; } 2) 리턴..
동적 메모리 # 동적 메모리 이해 1. 개요 동적메모리사진1 데이터의 개수를 미리 알 수 없을 때 사용 처리 대상 데이터가 유동적일 때, 특히 변동 폭이 큰 경우 2. 라이브러리 함수 1) 종류 - 헤더파일 stdlib.h - 헤더파일 stdlib.h 2) malloc() char* arr; arr = malloc( 5 ); int* arr; arr = (int *) malloc( 20 ); 3) free() int* arr; arr = (int *) malloc( 5 ); free(arr); 4) calloc() int* arr; arr = (int *) calloc( 5 , 4 ); 5) realloc() int* arr; arr = (int *) malloc( 8 ); arr = (int *)rea..
도서관리 시스템 고도화(라이브러리 적용) # 프로그램 설계 1. 고도화 개요 도서를 키워드로 검색하여 결과를 출력하는 프로그램을 개발 코드 데이터에서 출판연도별 책 목록 출력 기능 2. 기능 정의 1) memcmp 3. 자료구조 정의 # 코드 분석 1. 선언부 #include #include typedef struct book{ char bookTitle[50]; char bookAuthor[20]; int bookPrice; int bookSale; char bookCode[9]; // xxxxxxx 북코드 }BOOK; int inBook(BOOK* , int); void outBook(BOOK* , int); void searchBook(BOOK* , int); 2. 코드입력 검증 int inBook..
문자열 비교 검색 라이브러리 # 라이브러리 함수 이해 1. 헤더 파일 : string.h 1) 비교함수 memcmp : 메모리 블록을 비교 strcmp : 문자열을 비교 strncmp : 문자열 개수를 지정하여 비교 2) 검색함수 memchr : 메모리 블록에서 문자열 검색 strchr : 문자열에서 찾는 문자의 첫 번째 위치 strrchr : 문자열의 마지막에서부터 문자 위치 검색 strspn : 문자열에서 특정 문자로 구성된 문자열의 길이 strcspn : 문자열에서특정문자로구성에포함되지않는문자열의길이 strstr : 부분 문자열 위치 strtok : 토큰으로 문자열 분리 # 라이브러리 함수 활용 1. 문자열 비교함수 1) memcmp #include #include int main () { char..
문자 분류 데이터 변환 관련 라이브러리 # 라이브러리 함수 이해 1. 종류 1) 헤더 파일 : string.h strlen : 문자열의 길이를 반환 int count=0; while(str[i]!=NULL) { count++; i++; } 2) 복사함수 memcpy : 메모리 블록을 복사 memmove : 메모리 블록을 이동 strcpy : 문자열을 복사 strncpy : 문자열 개수를 지정하여 복사 3) 연결함수 strcat : 문자열을 연결 strncat : 문자열 개수를 지정하여 연결 # 라이브러리 함수 활용 1. 길이함수 #include #include intmain () { char szInput[256]; printf("Enter a sentence: "); gets (szInput); pri..
수학 관련 라이브러리 # 라이브러리 함수 이해 1. 종류 1) 삼각함수 cos : cosine 값 연산 sin : sine 값 연산 tan : tangent 값 연산 acos : arc cosine 값 연산 asin : arc sine 값 연산 atan : arc tangent 값 연산 atan2 : 매개변수가 2개인 arc tangent 값 연산 2) 지수, 로그 함수 exp : 지수 연산 log : 자연로그 연산 log10 : 상용로그 연산 3) 제곱함수 pow : 거듭제곱 연산 sqrt : 거듭제곱근 연산 4) 반올림함수 ceil : 올림연산 round : 반올림 연산 floor : 내림연산 5) 최대값∙최소값 함수 fmax : 매개변수 중 최대값 반환 fmin : 매개변수 중 최소값 반환 6) 절..
도서관리 시스템 # 프로그램 설계 1. 프로그램 개요 도서관리 프로그램이란? 도서명과 저자 등의 정보를 저장하고 저장된 도서 목록 젂체를 출력하거나 찾고자 하는 도서를 제목과 저자 정보로 검색하여 결과를 출력하는 프로그램을 개발 프로그램 구현 시 처리 대상 자료 도서명,가격,저자,판매수량 2. 기능 정의 메뉴 : 도서 입력, 도서 출력, 도서 검색, 종료 기능 : 도서 입력, 출력, 제목 검색, 저자 검색 요구사항 • 메뉴방식으로 작업 선택 • 종료 메뉴 추가 • 책 제목 최대 50글자까지 입력 가능 • 저자명 최대 20글자까지 입력 가능 • 검색 : 제목 검색, 저자 검색 • 최대 100권 관리 기능 3. 자료구조 정의 1) 선언부 #include #include typedef struct book{ ..