C++
-
명품 C++ 10장 Open ChallengeC++ 2018. 11. 17. 23:24
영어 어휘 테스트 프로그램 작성 영어 단어의 뜻 맞추기 게임을 만들어 보자. 영어 단어와 한글 단어로 구성되는 Word 클래스를 작성하고, vector v;로 벡터를 생성하고, 프로그램 내에서 여러 개의 Word 객체를 벡터에 삽입해 둔다. 그리고 다음 화면과 같이 랜덤하게 사용자에게 문제를 던지며, 4개의 한글 보기를 출력한다. 4개의 보기 중 정답을 제외한 3개는 벡터에 있는 단어 중에서 랜덤하게 선택한다. 이 문제에서 iterator는 사용할 필요 없다. 소스코드 #include #include #include #include #include using namespace std;class Word { string english; string korean;public: Word(string eng,s..
-
명품 C++ 10장 16번C++ 2018. 11. 17. 05:19
16. vector v;를 이용하여 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. Shape과 Circle, Line, Rect 클래스는 다음과 같다. 생성된 도형객체를 v에 삽입하고 관리하라. 9장 실습 문제 10번의 힌트를 참고하라. Shape.h #ifndef SHAPE_H#define SHAPE_Hclass Shape {protected: virtual void draw() = 0;public: void paint();};#endif Shape.cpp #include #include "Shape.h"using namespace std;void Shape::paint() { draw();} Circle.h class Circle : public Shape {protected: virtual vo..
-
명품 C++ 10장 15번C++ 2018. 11. 17. 05:08
15. vector를 이용하여 아래 Circle 클래스의 객체를 삽입하고 삭제하는 프로그램을 작성하라. 삭제 시에는 이름이 같은 모든 원을 삭제한다. 소스코드 #include #include #include using namespace std;class Circle { string name; // 이름 int radius; // 반지름public: Circle(int radius, string name) { this->radius = radius; this->name = name; } double getArea() { return 3.14*radius*radius; } string getName() { return name; }};int main() { vector v; cout > num; if (nu..
-
명품 C++ 10장 14번C++ 2018. 11. 17. 05:07
14. 암호 관리 응용프로그램을 map을 이용하여 작성하라. 소스코드 #include #include #include using namespace std;int main() { map m; string name; string password; cout > num; if (num == 1) { // 이름과 암호 삽입 cout > name >> password; m[name] = password; } else if (num == 2) { // 암호 검사 cout > name; for (;;) { // 암호를 맞출때 까지 반복 cout > password; if (password == m[name]) { // 입력받은 암호가 이름에 해당되는 암호와 같다면 cout
-
명품 C++ 10장 13번C++ 2018. 11. 17. 04:56
13. map 컨테이너를 이용하여 (이름, 성적)을 저장하고 이름으로 성적을 조회하는 점수 관리 프로그램을 만들어라. 이름은 빈칸 없이 입력하는 것을 원칙으로 한다. 소스코드 #include #include #include using namespace std;int main() { map m; string name; int score; cout > num; if (num == 1) { cout > name >> score; m[name] = score; } else if (num == 2) { cout > name; cout
-
명품 C++ 10장 12번C++ 2018. 11. 17. 04:45
12. Open Challenge를 수정하여 사용자가 어휘를 삽입할 수 있도록 기능을 추가하라. 소스코드 #include #include #include #include #include using namespace std;class Word { string english; string korean;public: Word(string eng,string kor) { this->english = eng; this->korean = kor; } string getEng() { return english; } string getKor() { return korean; }};int main() { string example[4] = { "" }; bool sw = false; srand((unsigned)time..
-
명품 C++ 10장 11번C++ 2018. 11. 17. 04:44
11. 책의 년도, 책이름, 저자 이름을 담은 Book 클래스를 만들고, vector v;로 생성한 벡터를 이요하여 책을 입고하고, 저자와 년도로 검색하는 프로그램을 작성하라. 소스코드 #include #include #include using namespace std;class Book { int year; string title; string author;public: Book() {} Book(int year, string title, string author) { this->year = year; this->title = title; this->author = author; } int getYear() { return year; } string getTitle() { return title; } ..
-
명품 C++ 10장 10번C++ 2018. 11. 17. 02:24
10. 나라의 수도 맞추기 게임에 vector를 활용해보자. 나라 이름(nation)과 수도 (capital) 문자열로 구성된 Nation 클래스를 만들고, vector v;로 생성한 벡터를 이용하여 나라 이름과 수도 이름을 삽입할 수도 있고 랜덤하게 퀴즈를 볼수도 있다. 프로그램 내에서 벡터에 Nation 객체를 여러 개 미리 삽입하여 퀴즈를 보도록 하라. 실행 화면은 다음과 같으며, 저자는 9개 나라의 이름과 수도를 미리 프로그램에서 삽입하였다. 문자열을 string 클래스를 이용하라. 소스코드 #include #include #include #include #include using namespace std;class Nation { string nation; string capital;public..