본문 바로가기

분류 전체보기

(24)
Queue 막 구현하기 https://cplusplus.com/reference/queue/queue/ https://cplusplus.com/reference/queue/queue/ container_typeThe second template parameter (Container)Type of the underlying container cplusplus.com 기능> 1. 생성자: 기본 생성자 2. empty() : 큐가 비어있는지 체크 후 bool 타입 반환 3. size() : 큐에 저장된 데이터 갯수 integer 타입 반환 4. front() : 큐에 가장 처음에 추가한 데이터 반환 (제거 x, 수정 가능) 5. back() : 큐에 가장 마지막에 추가한 데이터 반환 (제거 x, 수정 가능) 6. push() : 큐..
Stack 막 구현해보기 https://cplusplus.com/reference/stack/stack/ https://cplusplus.com/reference/stack/stack/ container_typeThe second template parameter (Container)Type of the underlying container cplusplus.com 기능> 1. 생성자 : 기본 생성자만 추가 2. empty() : 현재 스택이 비어있는지 체크하여 Bool 타입 반환 3. size() : 현재 스택에 저장된 데이터의 갯수 Integer 타입 반환 4. top() : 가장 최근에 넣은 데이터 반환 (수정 가능) 5. push() : 스택에 데이터 추가 6. pop() : 스택에서 가장 최근 추가한 데이터 삭제 7. ..
20. 완료 프로젝트 #define _CRT_SECURE_NO_WARNINGS #include #include typedef enum _COMMAND { Exit, Add, Search, PrintAll, Remove, } COMMAND; typedef struct _USERDATA { char szName[32]; char szPhone[32]; struct _USERDATA* pNext; }USERDATA; #define FILE_NAME"PhoneBook.txt" #define PRINT_ERR_MSG(msg)printf("ERROR: %s", msg); USERDATA* phoneBook = NULL; COMMAND print_menu() { COMMAND selectMenu; printf("[1]Add\t[2]Sea..
19. 전처리기 [연습문제] 1. 인자로 32비트 크기의 자료에서 오른쪽 16비트만 잘라내는 매크로를 작성하고, 인자로 0x12345678을 전달했을 때 매크로 사용 결과를 출력하세요. [소스코드] #define _CRT_SECURE_NO_WARNINGS #include #define LOWORD(bits)((int)bits & 0xFFFF0000) #define LOWORD2(bits)(((int)bits >> 16)
18. 파일 입출력 [18장 연습문제] 1. 표준 입력 장치에서 문자열을 입력받은 후, 표준 출력 장치로 출력하는 프로그램을 작성하세요. 단, 반드시fgets()와 fputs() 함수를 사용하세요. [소스코드] #define _CRT_SECURE_NO_WARNINGS #include #include #include int main(int argc, char* argv[]) { char buffer[255] = { 0 }; fputs("Input your string : ", stdout); fgets(&buffer, _countof(buffer), stdin); fputs(buffer, stdout); return 0; } [실행화면] 2. 현재 경로에서 TestFile.txt 파일을 열어서, 사용자가 입력한 문자열을 뒤에..
17. 기본 자료구조 1. 사용자로부터 다섯 개의 문자열을 입력받은 후, 내림차순으로 버블 정렬하여 출력하는 코드를 작성하세요. 단, 다섯 개의 문자열은 모두 동적으로 할당받은 메모리에 저장해야 합니다. 배열은 절대로 사용하지 않습니다. [소스코드] [실행결과] 2. 다음의 코드는 크기가 5인 스택을 구현하는 미완성 코드입니다. Push( ) 함수는 스택에 자료를 넣는 함수이고, Pop( ) 함수는 꺼내는 함수입니다. 만일 스택이 비어 있으면 Pop( ) 함수는 0을 반환하며 그렇지 않을 경우에는 1을 반환합니다. 그리고 인자로 전달받은 주 소에 스택에서 꺼낸 값을 저장해 줍니다. Push( ) 함수는 인자로 양수만 받을 수 있어야 하며 자료 추가에 성공하면 1을 반환하지 만, 스택이 다 채워졌거나 인자가 음수인 경우에는 0..
16. 구조체와 공용체 1. 학생 관리 프로그램을 개발한다고 가정하고, 이 프로그램에 사용할 학생 구조체를 선언하겠습니다. 멤버로는 이름, 학번, 전화번호, 국어 점수, 영어 점수, 수학 점수, 석차 등이 있어야 합니다. 점수와 석차는 정수로 표현하는 자료지만 나머지는 모두 문자열이라고 가정하겠습니다. 그리고 이름의 최대 길이는 영문을 기준으로 30자를 넘지 않으며, 학번은 12자 미만이고, 전화번호는 16자 미만이라고 가정하겠습니다. 구조체의 이름을 STUDENT로 하여 구조체를 선언한 코드를 작성합니다. 단, 반드시 typedef 문을 조합하여 선언합니다. [소스코드] #define _CRT_SECURE_NO_WARNINGS #include typedef struct _STUDENT { unsigned char szName..
15. 함수에 대한 고급 이론 1. 재귀 호출을 이용하여 값이 60 이하인 피보나치(Fibonacci) 수열을 출력하는 프로그램을 작성하세요. 참고로 피보나치 수열은 다음과 같이 앞 두 숫자의 합이 이어지는 모습을 하고 있습니다. 1 1 2 3 5 8 13 21 34 55 [소스코드] #define _CRT_SECURE_NO_WARNINGS #include void Fibonacci(int nLimit, int nBefore, int nAfter) { int nTmp = 0; nTmp = nBefore + nAfter; nBefore = nAfter; nAfter = nTmp; if (nBefore nData2) { return "Left"; } else if (nData1 < nData2) { return "Right"; } els..
14. 변수에 대한 고급 이론 1. typedef 예약어를 사용하여 unsigned char형을 BYTE형으로 정의하는 코드를 작성하세요. [소스코드] #define _CRT_SECURE_NO_WARNINGS #include typedef unsigned char BYTE; void main(void) { BYTE byte = 'A'; putc(byte, stdout); return; } [실행결과] 2. char형 배열을 전역 변수로 선언한 후, main() 함수에서 사용자로부터 문자열을 입력받아 전역 변수에 저장합니다. 그리고 전역 변수에 저장된 문자열을 출력하는 void PrintData() 함수를 작성하고 main() 함수에서 이를 호출하는 프로그램을 작성하세요. [소스코드] #define _CRT_SECURE_NO_WARNI..
13. 유틸리티 함수 1. 난수를 구하는 함수를 사용하여 가위바위보 게임을 구현합니다. 0~2 범위의 숫자를 발생시켜서 0은 가위, 1은 바위, 2는 보라고 가정합니다. 게임 방식은 사용자로부터 0~2 범위의 정수를 입력받은 후, 이에 대응하는 0~2 범위의 난수를 발생시켜 사용자가 입력한 정보와 비교하여 가위바위보 게임을 진행하고, 사용자와 컴퓨터 중에서 승자가 누구인지 출력합니다. [소스코드] #define _CRT_SECURE_NO_WARNINGS #define _CRT_RAND_S #include #include #include enum GAME_TYPE { SCISSOR, ROCK, PAPER }; void main(void) { int anGameType[] = { SCISSOR, ROCK, PAPER }; int..