C++

    Composite pattern (과일상자 예제 2단계)

    (25190) 과일을 담을 수 있는 Box 클래스를 수정하여 다른 Box까지 담을 수 있는 구조로 refactoring하라. (main함수가 작동하도록.) Composite 패턴을 활용한다. 예시: [상자. 이름은 큰 상자. 내용은 (사과. 이름은 좋은 사과) [상자. 이름은 작은 상자. 내용은 (사과. 이름은 불량 사과) (바나나. 이름은 파란 바나나) (바나나. 이름은 노란 바나나) [상자. 이름은 아주 작은 상자. 내용은 아주작은 상자 끝] 작은 상자 끝] 큰 상자 끝] *내 출력 더보기 [상자. 이름은 큰 상자. 내용은: (사과. 이름은 좋은 사과입.) 큰 상자 끝] [상자. 이름은 작은 상자. 내용은: (사과. 이름은 불량 사과입.) (바나나. 이름은 파란 바나나입.) (바나나. 이름은 노란 바..

    클래스 상호참조 (수강신청 예제)

    (13530) 수강 신청을 위한 클래스들을 작성한다. 과목당 최대 학생 수는 무제한이며 최초 설정된 인원수로 포인터 배열을 동적 할당한다. 학생당 최대 과목 수는 10과목으로 한다. #include #include "student.h" #include "course.h" using namespace std; int main() { Student *s1, *s2, *s3; Course *c1, *c2, *c3; s1 = new Student("김길동", "60201111"); s2 = new Student("이길동", "60202222"); s3 = new Student("홍길동", "60203333"); c1 = new Course("국어1", "1001", 20); // 과목명, 과목번호, 제한인원 c..

    클래스 상호참조 (family 예제)

    (12470) main함수가 실행되도록 파일을 클래스별로 나누어 코드를 작성하시오. 자식의 수에는 제한이 없도록 포인터 배열로 구현한다. 크기 제한은 20명으로 한다. #include "wife.h" #include "family.h" #include "child.h" using namespace std; int main() { Man *m = new Man("김부자"); Wife *f = new Wife("강예쁜"); Family *myFamily = new Family(m, f); // 생성자에서 서로 포인터를 연결해 준다. Child *c1 = new Child("김장남"); Child *c2 = new Child("김차남"); Child *c3 = new Child("김삼남"); myFamily-..

    클래스로 Thread 구현

    (26020) 두개의 로봇 이름을 각각 "R2D2" 와 "U-3PO"라 하고 두개의 로본이 동시에 실행되도록 스레드 두개를 실행하라. #include #include #include using namespace std; class Robot{ public: Robot(string name) :name_(name){ } void operator () (){ run(); } void run(){ for (auto i=1; i

    Thread 기초

    (26010) 두개의 스레드를 만들어서 실행한다. 하나의 스레드는 0.1초에 한번씩 10번을 "Apple" 이라고 출력하고, 다른 스레드는 0.2초에 한 번 씩 5번을 "Banana" 라고 출력한다. #include #include #include using namespace std; void apple(){ for(auto i=1;i

    Singleton pattern 기초

    (25210) 주어진 Single 클래스를 Singleton 패턴을 이용하여 인스턴스가 하나 밖에 생기지 않도록하라. #include using namespace std; class Single{ public: static Single *GetInstance(int n){ static Single *instance_= 0; if(instance_==0) {instance_=new Single(n); } return instance_; } void show(){ cout show(); cout