전체 글 2432

열혈 C++ 프로그래밍 2-2 문제

/*const 포인터에 대한 복습을 겸할 수 있는 문제를 제시하겠다. 다음의 상수선언을 보자const int num=12;포인터 변수를 선언해서 위 변수를 가리키게 해보자. 그리고 이 포인터의 변수를 참조하는 참조자를 하나 선언하자마지막으로 이렇게 선언된 포인터 변수와 참조자를 이용해서 num에 저장된 값을 출력하는 예제를 만들자*/#include using namespace std; int main(void){ const int num = 12; const int *ptr = # //포인터 변수를 선언해서 변수 가리킴 const int *(&pointer) = ptr; //포인터의 변수를 참조하는 참조자 cout

열혈 C++ 프로그래밍 2-1 문제

[1번 문제]/*참조자를 이용해서 다음 요구사항에 부합하는 함수를 각각 정의하여라1.인자로 전달된 int형 변수의 값을 1씩 증가시키는 함수2.인자로 전달된 int형 변수의 부호를 바꾸는 함수*/#include using namespace std; void add(int &ptr) //참조자를 이용한 함수, 물론 포인터를 이용해도 된다{ ptr += 1;} void reverse(int &ptr){ ptr *= -1;} int main(void){ int num; cout > num; cout

OOP 단계별 프로젝트 1

/*우리가 구현하고자 하는 것은 '은행계좌 관리 프로그램'이다. 프로젝트 1단계에서는 C스타일로 구현하는 것을 목표로 한다구현할 기능은 다음과 같다1.계좌개설2.입금3.출금4.전체고객 잔액조회 프로그램을 간결하게 하기 위해서 몇가지 가정1.통장의 계좌번호는 중복되지 아니한다(중복검사 하지 않겠다는 뜻)2.입금 및 출금액은 무조건 0보다 크다(입금 및 출금액의 오류검사 않겠다는 뜻)3.고객의 계좌정보는 계좌번호, 고객이름, 고객의 잔액, 이렇게 세가지만 저장 및 관리한다4.둘 이상의 고객 정보 저장을 위해서 배열을 사용한다5.계좌번호는 정수의 형태이다*/#include #include using namespace::std; int Menu(void); //메뉴void MakeBankAccount(void)..

열혈 C++ 프로그래밍 1-4 문제

C++을 제대로 공부하려면 다음의 내용을 잘 알고 있어야 한다1.헤더파일의 의미와 정의 방법2.헤더파일에 삽입할 내용과 소스파일에 삽입할 내용을 구분하는 방법3.둘 이상의 헤더파일과 소스파일을 만들어서 하나의 실행파일로 컴파일하는 방법 파일분할과 관련된 감을 살리기 위해서 앞서 소개한 예제 NameSp2.cpp를 다음과 같이 총 3개의 파일로 분할해서 컴파일 해보자1.헤더파일 main함수를 제외한 나머지 두 함수의 선언을 삽입2.소스파일1 main 함수를 제외한 나머지 두 함수의 정의를 삽입3.소스파일2 main 함수만 삽입 [NameSp2.cpp 원본]#include namespace BestComImpl //이름공간안에 함수의 선언만 삽입되었다{ void SimpleFunc(void);} namesp..

열혈 C++ 프로그래밍 1-3 문제

/*예제 DefaultValue3.cpp에 정의된 함수 BoxVolume를 "매개변수의 디폴트 값 지정" 형태가 아닌, '함수 오버로딩'의 형태로 재 구현해보자.물론 main 함수는 변경하지 않아야 하며, 실행결과도 동일해야한다*/ /*DefulatValue3.cpp #include int BoxVolume(int length, int width = 1, int height = 1); //첫번째 매개변수에는 디폴트 값이 지정되지 않았으므로, BoxVolume 함수를 호출할 때는 반드시 하나 이상의 인자를 전달해야한다 int main(void){ std::cout

열혈 C++ 프로그래밍 1-2 문제

/*다음 main 함수에서 필요로 하는 swap 함수를 오버로딩 해서 구현해보자*/#include void swap(int *num1, int *num2) //매개변수의 자료형이 다르기 때문에 오버라이딩이 가능하다(직접 구현){ int temp = *num1; *num1 = *num2; *num2 = temp;} void swap(char *ch1, char *ch2) //매개변수의 자료형이 다르기 때문에 오버라이딩이 가능하다(직접 구현){ char temp = *ch1; *ch1 = *ch2; *ch2 = temp;} void swap(double *dbl1, double *dbl2) //매개변수의 자료형이 다르기 때문에 오버라이딩이 가능하다(직접 구현){ double temp = *dbl1; *dbl..

열혈 C++ 프로그래밍 1-1 문제

[1번 문제]/*사용자로부터 총 5개의 정수를 입력 받아서, 그 합을 출력하는 프로그램을 작성해 보자.단, 프로그램의 실행은 다음과 같이 이뤄져야 한다.*/#include int main(void){ int num = 0; int sum = 0; for (int i = 0; i num; sum += num; } std::cout > name; std::cout > phone; std::cout > num; while (num 9) { std::cout > num; } for (int i = 0; i sell; if (sell == -1) { std::cout

명품 C언어 프로젝트 2.1장 연습문제

[1번 문제]/*임의의 영문 문자열에 대해 소문자는 대문자로, 대문자는 소문자로 동시에 변환하는 함수를 작성하시오*/#include #include //toupper, tolower#include void change(char str[]); int main(void){ char string[20]; printf("문자열 입력:"); scanf("%s", string); printf("문자열 변환:"); change(string); printf("바뀐 문자열:%s\n", string); return 0;} void change(char str[]){ int i; int length = strlen(str); for (i = 0; i = 65 && str[..

TCP/IP 소켓 프로그래밍 5장 내용 확인문제

1. TCP 소켓의 연결설정 과정인 Three-way handshaking에 대해서 설명해 보자. 특히 총 3회의 데이터 송수신이 이뤄지는데, 각각의 데이터 송수신 과정에서 주고 받는 데이터에 포함된 내용이 무엇인지 설명해 보자. >호스트 A가 호스트 B에게 전달하는 메세지를 SYN이라고 한다. 이렇듯 호스트 A가 호스트 B에게 전송하는 데이터의 동기화를 위해서 처음 보내는 '동기화 메세지'를 가리켜 SYN이라고 한다. 이어서 호스트 B가 호스트 A에게 전달하는 메세지를 가리켜 SYN+ACK라고 한다. 이는 처음으로 보내는 동기화 메세지와 앞서 수신한 메세지에 대한 응답의 내용까지 포함되어 있기 때문이다. 그리고 마지막으로 호스트 A가 호스트 B에게 전달하는 메세지에는 동기화 정보가 포함되어 있기 때문에..

명품 C언어 프로젝트 1장 연습문제

[1번 문제]/*입력한 문자가 한글인지 영문이지를 구분하는 프로그램을 작성하시오*/#include #include int main(void){ unsigned char word[100]; //앞에 unsigned를 꼭 붙여야합니다! printf("문자를 입력해주세요:"); scanf("%s", word); for (int i = 0; word[i] != NULL; i++) //문자열의 끝은 NULL입니다 { if (word[i] >= 65 && word[i] = 97 && word[i] = 176 && word[i]