C++ Programming Ch.10 Exercise 12 Solution
Problem: Open Challengeλ₯Ό μμ νμ¬ μ¬μ©μκ° μ΄νλ₯Ό μ½μ ν μ μλλ‘ κΈ°λ₯μ μΆκ°νλΌ. Execution Resultλ λ€μκ³Ό κ°λ€. Execution Result: Objective & Hints: vector 컨ν μ΄λμ μ’ ν© μμ© μ°μ΅ λλ€ μ μλ₯Ό λ°©μμν€κΈ° μν΄ λ€μ λ λΌμΈμ μ½λκ° νμνλ©°, κ³Ό λ₯Ό include ν΄μΌ ν©λλ€. 1 2 srand((unsigned)time(0)); // μμν λλ§λ€, λ€λ₯Έ λλ€μλ₯Ό λ°μμν€κΈ° μν seed μ€μ int n = rand(); // 0μμ RAND_MAX(32767) μ¬μ΄μ λλ€ν μ μκ° nμ λ°μ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 #include #include #include #include using namespace std; class Word { string engWord, korWord; public: Word(string engWord=0, string korWord=0){ this->engWord = engWord; this->korWord = korWord; } void inputWord(string engWord, string korWord){ this->engWord = engWord; this->korWord = korWord; } string getEngWord(){ return engWord; } string getKorWord(){ return korWord; } }; void inputWord(vector &v) { cout << "μμ΄ λ¨μ΄μ exitμ μ λ ₯νλ©΄ μ λ ₯ λ\n"; string engWord, korWord; while(true){ cout << "μμ΄ >>"; cin >> engWord; if(engWord == "exit") break; cout << "νκΈ >>"; cin >> korWord; v.push_back(Word(engWord, korWord)); } } void gameStart(vector &v) { srand((unsigned)time(0)); int num; cout << "μμ΄ μ΄ν ν μ€νΈλ₯Ό μμν©λλ€. 1~4 μΈ λ€λ₯Έ μ λ ₯μ μ’ λ£.\n"; while(true){ int randNum = rand()%v.size(); cout << v.at(randNum).getEngWord() << "?\n"; string ex[4] = " "; int tmp = rand()%4; ex[tmp] = v.at(randNum).getKorWord(); for(int i=0; i<4; i++){ if(tmp == i) continue; while(true){ // μ€λ³΅λλ μ«μκ° μκ² μ²λ¦¬ int numChosen = rand()%v.size(); if(ex[0]!=v.at(numChosen).getKorWord() && ex[1]!=v.at(numChosen).getKorWord() && ex[2]!=v.at(numChosen).getKorWord() && ex[3]!=v.at(numChosen).getKorWord()){ ex[i] = v.at(numChosen).getKorWord(); break; } } } for(int i=0; i<4; i++) cout << "(" << i+1 << ") " << ex[i] << ' '; cout << ":>"; cin >> num; // μ«μλ§ μ λ ₯ if(num == -1