본문 바로가기

C++ 언어

(39)
C++ 언어 연습문제14 [문제] 아래의 코드에는 두 가지 문제가 있다. 1) 점의 좌표는 0이상 100이하가 되어야 하는데, 잘못된 값이 들어오는 것을 막을 수 없다. 2) 직사각형을 의미하는 Rectangle 객체의 좌 상단과 우 하단의 좌표 값이 바뀌는 것에 대한 대책이 없다. 아래의 코드와 변경된 main문 그리고 실행결과를 참고하여 위의 두 가지 문제점을 해결하는 코드를 작성하라. 조건1) 파일을 Point.h, Point.cpp, Rectangle.h, Rectangle.cpp, main.cpp로 분활하라. 조건2) const 함수를 선언할 것 #include using namespace std; class Point { public: int x;// x좌표의 범위는 0이상 100이하 int y;// y좌표의 범위는 ..
C++ 언어 연습문제13 [문제] 아래 코드를 보고 SaleApples, BuyApples 함수를 완성하라. #include using namespace std; class FruitSeller { private: int APPLE_PRICE; int numOfApples; int myMoney; public: void InitMembers(int price, int num, int money) { APPLE_PRICE = price; numOfApples = num; myMoney = money; } SaleApples() { } void ShowSaleResult() { cout
C++ 언어 연습문제12 [문제] 아래의 코드에서 Break(), ShowCarState() 함수를 인라인 함수로 바꿔라. 1. Car.h #ifndef __CAR_H__ #define __CAR_H__ namespace CAR_CONST { enum { ID_LEN = 20, MAX_SPEED = 200, FUEL_STEP = 2, ACC_STEP = 10, BREAK_STEP = 10 }; } class Car { private: char gamerID[CAR_CONST::ID_LEN]; int fuelGauge; int curSpeed; public: void InitMembers(const char* ID, int fuel); void ShowCarState(); void Accel(); void Break(); }; #..
C++ 언어 연습문제11 [문제] 아래의 코드를 가지고 Car.h, Car.cpp, RacingMain.cpp로 파일을 나눠라. #include #include using namespace std; namespace CAR_CONST { enum { ID_LEN = 20, MAX_SPD = 200, FUEL_STEP = 2, ACC_STEP = 10, BRK_STEP = 10 }; } class Car { private: char gamerID[CAR_CONST::ID_LEN]; int fuelGauge; int curSpeed; public: void InitMembers(const char* ID, int fuel); void ShowCarState(); void Accel(); void Break(); }; void Car..
C++ 언어 연습문제10 [문제] 아래의 코드를 보고 빈 곳을 채워라. 조건1) enum을 사용할 것 - 아이디 길이 = 20, 최대 속도 = 200, 연료 단계 = 2, 엑셀 단계 = 10, 브레이크 단계 = 10 조건2) 클래스의 멤버 변수는 아이디, 연료량, 현재속도로 할 것 조건3) 엑셀 함수를 완성할 것 - 엑셀을 밟을 때마다 연료 단계만큼 연료량이 감소하고, 엑셀 단계만큼 현재 속도가 증가할 것 - 현재 속도가 최대 속도를 넘지 못하게 할 것 - 연료가 없으면 속도 증가가 안되도록 할 것 조건4) 브레이크 함수를 완성할 것 - 브레이크를 밟을 때마다 브레이크 단계만큼 속도가 감소할 것 - 브레이크 단계보다 현재 속도가 작으면 현재 속도는 0으로 할 것 #include #include using namespace std..
C++ 언어 연습문제9 [문제] 2차원 평면상에서의 좌표를 표현할 수 있는 구조체를 다음과 같이 정의하였다. typedef struct __Point { int xpos; int ypos; }Point; 위의 구조체를 기반으로 두 점의 합을 계산하는 함수를 다음의 형태로 정의하고(덧셈결과는 함수의 반환을 통해서 얻게 한다), Point& PntAdder(const Point &p1, const Point &p2); 두 점([3,30], [70,7])을 선언하여, 위 함수를 이용한 덧셈연산을 진행하는 main 함수를 정의해보자. 단, 구조체 Point 관련 변수의 선언은 무조건 new 연산자를 이용해서 진행해야 하며, 할당된 메모리 공간의 소멸도 철저해야 한다. [실행결과] [73, 37] [코드] #include using n..
은행계좌 관리 프로그램 버전1 프로그램 설명 1. 기능 1) 계좌개설 2) 입금 3) 출금 4) 전체고객 잔액조회 2. 조건 1) 통장의 계좌번호는 중복되지 아니한다(중복검사는 하지 않음). 2) 입금 및 출금액은 무조건 0보다 크다(입금 및 출금액의 오류검사는 하지 않음). 3) 고객의 계좌정보는 계좌번호, 고객이름, 고객의 잔액, 이렇게 세가지만 저장 및 관리한다. 4) 둘 이상의 고객 정보 저장을 위해서 배열을 사용한다. 5) 계좌번호는 정수의 형태이다. 실행결과 코드 #include #include using namespace std; const int NAME_LEN = 20; void ShowMenu(void);//메뉴출력 void MakeAccount(void);//계좌개설을 위한 함수 void DepositMoney(v..
C++ 언어 연습문제8 [문제] 문제의 제시에 앞서 먼저 다음 코드를 보자. int main(void) { int num1 = 5; int *ptr1 = &num1; int num2 = 10; int *ptr2 = &num2; } 위의 코드를 보면 ptr1과 ptr2가 각각 num1과 num2를 가리키고 있다. 이때 ptr1과 ptr2를 대상으로 다음과 같이 함수를 호출하고 나면, SwapPointer(ptr1, ptr2); ptr1과 ptr2가 가리키는 대상이 서로 바뀌도록 SwapPointer 함수를 정의해 보자. [실행결과] 5 10 10 5 [코드] #include using namespace std; void SwapPointer(int* (&pref1), int* (&pref2)); int main() { int n..