C++ 1588

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 12장 연습문제

[12.1] /*실행 결과와 같이 1부터 10까지의 값들에 대한 제곱값과 나누기 3을 한 값을 "out1.txt" 파일로 출력해본다각 출력값들에 대해 적절한 크기의 필드를 지정하고 오른쪽 정렬로 출력하도록 한다.나누기 3을 한 값의 결과는 실수로 처리될 수 있어야 하며 소수점 이하 첫 번째 자리까지만 출력하도록 한다*/#include #include using namespace std; int main(void){ ofstream fout("out1.txt"); //출력 스트림 생성 및 파일 열기 if (!fout) { cout > std.dpt; fout.write((char*)&std, sizeof(std)); } fout.close(); cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 10장 연습문제

[10.1]/*2개의 매개 변수 값을 교환하는 Swap 함수를 함수 템플릿으로 만들고 이를 테스트하기 위한main 함수도 작성해 본다. 실매개 변수의 값도 교환되어야 한다.함수 템플릿을 연습할 수 있는 기본적인 문제이다.어려움이 있다면 int형을 위한 swap 함수를 먼저 작성한 후 템ㅍ프릿 매개 변수로 바뀌어야 될 부분을 생각해 본다*/#include using namespace std; template void Swap(T &a, T &b){ T temp = a; a = b; b = temp;} int main(void){ int num1 = 10, num2 = 20; cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 9장 연습문제

[9.1]/*그림 9.1과 같은 클래스 구성에 있어서 클래스 객체들 간의 복사 생성이 수행되는지테스트해보도록 한다. 다음과 같은 코드가 수행 가능한지 생각해보면 된다*/#include using namespace std; #define PI 3.14 class CPoint //임의로 추가한 CPoint 객체{private: int x; int y;public: CPoint(int a = 0, int b = 0) :x(a), y(b) { } CPoint &operator=(const CPoint &Po) { cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 8장 연습문제

[8.1]/*다음 프로그램에서 잘못된 부분을 지적하고 수정해 본다.현재 상속 액세스 지정자가 public으로 되어 있다.엑세스 지정자가 protected와 private일 때는 어떻게 달라지는지 생각해 본다*/#include using namespace std; class Base{//private:public: int a;//protected:public: int b;public: int c;}; class Derived :public Base{private: //int d; //Derived 클래스 내에서는 접근 가능 void func1() { a = 1; //public 상속을 하더라도 Base 클래스의 private 멤버 접근 불가 b = 2; c = 3; d = 4; e = 5; f = 6; }..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 7장 연습문제

[7.1]/*예제 7.1에서 CPoint 클래스에 덧셈뿐만 아니라 뺄셈(Sub), 부호반대(Invert), 이동(Move),1씩 증가(Inc)를 위한 멤버 함수들을 추가해본다.main 함수와 실행 결과를 참고한다*/#include using namespace std; class CPoint{private: int x; int y;public: CPoint(int a = 0, int b = 0) :x(a), y(b) { } CPoint Sum(const CPoint &Po) { return CPoint(x + Po.x, y + Po.y); } CPoint Sub(const CPoint &Po) { return CPoint(x - Po.x, y - Po.y); } CPoint Invert() { return..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 6장 연습문제

[6.1]/*다음 프로그램의 문제점이 무엇인지 메모리 구조와 관련하여 설명해 본다*/#include using namespace std; class CArray{private: int *ary; int count;public: CArray(int c = 1) { count = c; ary = new int[count]; for (int i = 0; i < count; i++) ary[i] = i; } //이 문장을 추가하면 오류 해결(main문에서 delete Ary1을 해줘야한다) /* CArray(const CArray &copy) { count = copy.count; ary = new int[count]; for (int i = 0; i < count; i++) ary[i] = i; } */ ~C..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 5장 연습문제

[5.1]/*예제 5.4의 프로그램에서 3행 2열의 CPoint 객체 배열을 생성하되,배열 선언시에는 별도의 초기화를 하지 않고 단지 선언만 한 후,사용자로부터 각 원소의 x, y 값을 차례로 입력받도록한다.그리고 제대로 입력이 되었는지 출력을 통해 확인해보도록 한다*/#include using namespace std; class CPoint{private: int x, y;public: /* CPoint(int a, int b) :x(a), y(b) { } */ void SetXY(int a, int b) { x = a; y = b; } void Print() { cout

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 4장 연습문제

[4.1]/*텔레비전을 클래스로 표현한다.그리고 이 클래스로부터 객체를 생성하고 사용해 본다.텔레비전을 표현하기 위해서는 브랜드, 가격, 제조회사, 제조일자 등의 속성이 필요하고켜다, 끄다, 채널을 돌리다, 볼륨을 조정하다 등의 메서드가 필요하다.이 외에도 필요한 속성과 메서드를 생각해보고 (예제 4.1)의 클래스와 같이 작성해 본다*/#include #include using namespace std; class TV{ //4.1에서는 아직 public private을 정의하지 않았다 char brand[20]; //브랜드 int price; //가격 char company[50]; //회사 char date[10]; //날짜 void TurnOn() //켜다 { } void TurnOff() //끄다..

기초를 탄탄히 세워주는 C++ 프로그래밍 입문 3장 연습문제

[3.1]/*int형 값에 대한 절대값을 반환하는 함수 Abs를 매크로와 인라인 함수로 구현해 본다.두 경우 모두 다음 코드의 반환값은 2가 되어야 한다Abs(-4+2);매크로 작성 시에는 매개 변수의 처리에 대해 주의해야 할 것이다.이를 통해 매크로보다 인라인 함수의 작성이 보다 쉽다는 것을 느끼게 될 것이다.*/#include using namespace std; /*#define Abs(X) (X>0?X:-X) //매크로*/ inline int Abs(int X){ if (X > 0) return X; else return -X;} int main(void){ cout