윤성우 55

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

[1번 문제]/*부호 연산자로는 -는 단항 연산자이다.이 연산자는 피연산자의 부호를 반전시킨 겨로가를 반환한다.예를 들어서 다음 문장이 실행되면,int num2= -num1;num2에는 num1과 절대값은 같지만 부호가 다른 값이 저장된다.물론 num1의 값에는 영향을 미치지 않는다.이와 유사하게 Point 클래스를 대상으로 - 연산자를 오버로딩 해보자.다음의 문장이 실행되면, Point pos2= -pos1;Pos2의 멤버변수는 pos1의 멤버변수 값과 다른 부호의 값으로 초기화되도록 오버로딩해보자*/#include using namespace std; class Point{private: int xpos; int ypos;public: Point(int x = 0, int y = 0) :xpos(x)..

OOP 단계별 프로젝트 7

비록 조금 늦었지만, 지금이라도 프로그램을 여러 개의 파일에 나눠서 관리를 하자.예를 들어서 Simple이라는 이름의 클래스 있다면, Simple.h와 Simple.cpp 파일을 만들자.그리고 Simple.h에는 클래스의 선언을, Simple.cpp는 클래스의 정의(멤버함수의 정의)를 담자.그리하여 다음의 구조로 파일을 분할하자.Account.h, Account.cpp //Account 클래스의 선언과 정의NormalAccount.h //NormalAccount 클래스의 선언과 정의HighCreditAccount.h //HighCreditAccount 클래스의 선언과 정의AccountHandler.h, AccountHandler.cpp //AccountHandler 클래스의 선언과 정의BankingCom..

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

1. 다음 중 DNS(Domain Name System)에 대한 설명으로 맞는 것을 모두 고르시오. >a. DNS가 존재하기 때문에 IP를 대신해서 도메인 이름을 사용할 수 있다. c. 하나의 DNS 서버에 모든 도메인 정보가 다 등록되어 있지는 않다. 그러나 등록되지 않은 도메인의 IP주소도 얻어올 수 있 다. *틀린 설명 b. DNS 서버는 사실 라우터를 의미한다. 라우터가 도메인 이름정보를 참조하여 데이터의 진로를 결정하기 때문이다 ->DNS 서버는 도메인 이름을 IP주소로 변환하는 역할을 수행한다. d. DNS 서버는 운영체제에 따라서 구분이 된다. 즉, 윈도우 운영체제용 DNS서버와 리눅스용 DNS 서버는 구분이 된다. ->구분이 안된다 2. 아래의 대화를 읽고 동수가 제안한 해결책으로 문제가 ..

OOP 단계별 프로젝트 6

/*'보통예금계좌'를 의미하는 NormalAccount 클래스는 객체의 생성과정에서(생성자를 통해서) 이율정보(이자비율의 정보)를 등록할 수 있도록 정의하자.반면, '신용신뢰계좌'를 의미하는 HighCreditAccount 클래스에는 다음의 특성을 부여해서 정의하자1.NormalAccount 클래스와 마찬가지로 객체 생성과정에서 기본이율을 등록할 수 있다2.고객의 신용등급을 A, B, C로 나누고 계좌개설 시 이 정보를 등록한다3.A, B, C 등급별로 각각 기본이율에 7%, 4%, 2%의 이율을 추가로 제공한다. 사실 이자는 시간이 지나야 발생하지만, 우리는 구현의 편의상 입금시에 이자가 원금에 더해지는 것으로 간주한다.그리고 모든 계좌에 대해 공히 다음의 조건을 적용하자.1.계좌개설 과정에서 초기 입..

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

/*예제 EmployeeManager4.cpp를 확장하여 다음 특성에 해당하는 ForeignSalesWorker 클래스를 추가로 정의해보자"영업직 직원 중 일부는 오지산간으로 시장개척을 진행하고 있다. 일부는 아마존에서, 또 일부는 테러의 위험이 있는지역에서 영업활동을 진행 중에 있다. 따라서 이러한 직원들을 대상으로 별도의 위험수당을 지급하고자 한다." 위험수당의 지급방식은 위험의 노출도에 따라서 다음과 같이 나뉘며, 한번 결정된 직원의 '위험 노출도'는 변경되지 않는다고 가정한다(const)1.리스크 A:영업직의 기본급여와 인센티브 합계 총액의 30%를 추가로 지급한다2.리스크 B:영업직의 기본급여와 인센티브 합계 총액의 20%를 추가로 지급한다3.리스크 C:영업직의 기본급여와 인센티브 합계 총액의 ..

OOP 단계별 프로젝트 5

/*우리가 구현하고 있는 Banking System의 주요기능은 다음과 같다1.계좌개설2.입금3.출금4.계좌정보 전체 출력이러한 기능은 전역함수를 통해서 구현되어있다. 그러나 객체 지향에는 '전역'이라는 개념이 존재하지 않는다.비록 C++에서는 전역함수와 전역변수의 선언을 허용하고 있지만, 이는 객체지향 프로그래밍을 위한 것은 아니니 가급적 사용하지 않는 것이 좋다기능적 성격이 강한 컨트롤 클래스를 등장시키면, 우리가 구현하고 있는 단계별 프로젝트에서 전역함수들을 없앨 수 있다.이들을 하나의 컨트롤 클래스로 묶을 수 있기 때문이다.이렇게 되면 컨트롤 클래스는 프로그램의 기능적 측면을 담당하게 되므로, 컨트롤 클래스의 성격에도 부합한다.그럼 이번 단계에서 구현해야 할 컨트롤 클래스의 구현방법에 대해서 간단..

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

[1번 문제]/*정사각형을 의미하는 Square 클래스와 직사각형을 의미하는 Rectangle 클래스를 정의하고자 한다.그런데 정사각형은 직사각형의 일종이므로, 다음의 형태로 클래스의 상속관계를 구성하고자 한다class Rectangle{ }; class Square :public Rectangle{ };이에 다음 main 함수와 함께 실행이 가능하도록 위의 클래스를 완성해보자int main(void){ Rectangle rec(4, 3); rec.ShowAreaInfo(); Square sqr(7); sqr.ShowAreaInfo(); return 0;} */#include using namespace std; class Rectangle{private: int row; int column;public..

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

[1번 문제]/*앞서 상속관계에 놓여있는 클래스의 생성자 정의 및 호출 방식에 대해 설명하였다.이 내용을 바탕으로 다음 클래스에 적절한 생성자를 삽입해보자.그리고 이의 확인을 위한 main 함수를 적절히 정의해보자class Car //기본 연료 자동차{private:i nt gasolineGauge;public: int GetGasGauge() { return gasolineGauge; }}; class HybridCar :public Car //하이브리드 자동차{private: int electricGauge;public: int GetElecGauge() { return electricGauge; }}; class HybridWaterCar :public HybridCar //하이브리드 워터카{pri..