๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 12 Solution

Problem: ๋‹ค์Œ์€ ํ•™๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Dept ํด๋ž˜์Šค์™€ ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” main()์„ ๋ณด์—ฌ ์ค€๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Dept { int size; // scores ๋ฐฐ์—ด์˜ ํฌ๊ธฐ int* scores; // ๋™์  ํ• ๋‹น ๋ฐ›์„ ์ •์ˆ˜ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ public: Dept(int size) { // ์ƒ์„ฑ์ž this->size = size; scores = new int[size]; } Dept(const Dept& dept); // ๋ณต์‚ฌ ์ƒ์„ฑ์ž ~Dept(); // ์†Œ๋ฉธ์ž int getSize() { return size; } void read(); // size ๋งŒํผ ํ‚ค๋ณด๋“œ์—์„œ ์ •์ˆ˜๋ฅผ ์ฝ์–ด scores ๋ฐฐ์—ด์— ์ €์žฅ bool isOver60(int index); // index์˜ ํ•™์ƒ์˜ ์„ฑ์ ์ด 60๋ณด๋‹ค ํฌ๋ฉด true ๋ฆฌํ„ด }; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int countPass(Dept dept) { // dept ํ•™๊ณผ์— 60์  ์ด์ƒ์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” ํ•™์ƒ์˜ ์ˆ˜ ๋ฆฌํ„ด int count = 0; for (int i = 0; i < dept.getSize(); i++) { if (dept.isOver60(i)) count++; } return count; } int main() { Dept com(10); // ์ด 10๋ช…์ด ์žˆ๋Š” ํ•™๊ณผ com com.read(); // ์ด 10๋ช…์˜ ํ•™์ƒ๋“ค์˜ ์„ฑ์ ์„ ํ‚ค๋ณด๋“œ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด scores ๋ฐฐ์—ด์— ์ €์žฅ int n = countPass(com); // com ํ•™๊ณผ์— 60์  ์ด์ƒ์œผ๋กœ ํ†ต๊ณผํ•œ ํ•™์ƒ์˜ ์ˆ˜๋ฅผ ๋ฆฌํ„ด cout << "60์  ์ด์ƒ์€ " << n << "๋ช…"; } (1) main()์˜ Execution Result๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋˜๋„๋ก Dept ํด๋ž˜์Šค์— ๋ฉค๋ฒ„๋“ค์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๊ณ , ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. ...

March 5, 2020 ยท 5 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 11 Solution

Problem: ์ฑ…์˜ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ์„ ์ €์žฅํ•˜๋Š” ๋‹ค์Œ Book ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋ฌผ์Œ์— ๋‹ตํ•˜์—ฌ๋ผ. 1 2 3 4 5 6 7 8 9 class Book { char *title; // ์ œ๋ชฉ ๋ฌธ์ž์—ด int price; // ๊ฐ€๊ฒฉ public: Book(const char* title, int price); ~Book(); void set(char* title, int price); void show() { cout << title << ' ' << price << "์›" << endl; } }; (1) Book ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž, ์†Œ๋ฉธ์ž, set() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. set() ํ•จ์ˆ˜๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ title์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ์œผ๋ฉด ๋จผ์ € ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๊ณ  ์ด๊ณณ์— ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›์€ ์ฑ…์ด๋ฆ„์„ ์ €์žฅํ•œ๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 10 Solution

Problem: ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. ๋‹ค์Œ ์ฝ”๋“œ์™€ Execution Result๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ append() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. append()๋Š” Buffer ๊ฐ์ฒด์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  Buffer ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Buffer{ string text; public: Buffer(string text) { this->text = text; } void add(string next) { text += next; } // text์— next ๋ฌธ์ž์—ด ๋ง๋ถ™์ด๊ธฐ void print() { cout << text << endl; } }; int main() { Buffer buf("Hello"); Buffer& temp = append(buf, "Guys"); // buf์˜ ๋ฌธ์ž์—ด์— "Guys" ๋ง๋ถ™์ž„ temp.print(); // "HelloGuys" ์ถœ๋ ฅ buf.print(); // "HelloGuys" ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 9 Solution

Problem: ํด๋ž˜์Šค Accumulator๋Š” add() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ณ„์† ๊ฐ’์„ ๋ˆ„์ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ๋‹ค. Accumulator ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ. 1 2 3 4 5 6 7 class Accumulator{ int value; public: Accumulator(int value); // ๋งค๊ฐœ ๋ณ€์ˆ˜ value๋กœ ๋ฉค๋ฒ„ value๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. Accumulator& add(int n); // value์— n์„ ๋”ํ•ด ๊ฐ’์„ ๋ˆ„์ ํ•œ๋‹ค. int get(); // ๋ˆ„์ ๋œ ๊ฐ’ value๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. }; Accumulator๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด main() ํ•จ์ˆ˜์— ์˜ํ•ด ํ™œ์šฉ๋œ๋‹ค. 1 2 3 4 5 int main() { Accumulator acc(10); acc.add(5).add(6).add(7); // acc์˜ value ๋ฉค๋ฒ„๊ฐ€ 28์ด ๋œ๋‹ค. cout << acc.get(); // 28 ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 8 Solution

Problem: ๋ฌธ์ œ 7๋ฒˆ์˜ MyIntStack์„ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•˜์˜€๋‹ค. ์Šคํƒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” ์ƒ์„ฑ์ž์—์„œ ์ฃผ์–ด์ง€๊ณ  size ๋ฉค๋ฒ„์— ์œ ์ง€ํ•œ๋‹ค. MyIntStack ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MyIntStack{ int *p; // ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ํฌ์ธํ„ฐ int size; // ์Šคํƒ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ int tos; // ์Šคํƒ์˜ ํƒ‘์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค public: MyIntStack(); MyIntStack(int size); MyIntStack(const MyIntStack& s); // ๋ณต์‚ฌ ์ƒ์„ฑ์ž ~MyIntStack(); bool push(int n); // ์ •์ˆ˜ n์„ ์Šคํƒ์— ํ‘ธ์‹œํ•œ๋‹ค. // ์Šคํƒ์ด ๊ฝ‰ ์ฐจ ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด bool pop(int &n); // ์Šคํƒ์˜ ํƒ‘์— ์žˆ๋Š” ๊ฐ’์„ n์— ํŒํ•œ๋‹ค. // ๋งŒ์ผ ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด }; MyIntStack ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 7 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ ํด๋ž˜์Šค MyIntStack์„ ๊ตฌํ˜„ํ•˜๋ผ. MyIntStack ์Šคํƒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” 10์ด๋‹ค. 1 2 3 4 5 6 7 8 class MyIntStack{ int p[10]; // ์ตœ๋Œ€ 10๊ฐœ์˜ ์ •์ˆ˜ ์ €์žฅ int tos; // ์Šคํƒ์˜ ๊ผญ๋Œ€๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค public: MyIntStack(); bool push(int n); // ์ •์ˆ˜ n ํ‘ธ์‹œ. ๊ฝ‰ ์ฐจ ์žˆ์œผ๋ฉด false, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด bool pop(int &n); // ํŒํ•˜์—ฌ n์— ์ €์žฅ. ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด false, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด }; MyIntStack ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 6 Solution

Problem: find() ํ•จ์ˆ˜์˜ ์›ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฌธ์ž์—ด a์—์„œ ๋ฌธ์ž c๋ฅผ ์ฐพ์•„, ๋ฌธ์ž c๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋งŒ์ผ ๋ฌธ์ž c๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด success ์ฐธ์กฐ ๋งค๊ฐœ ๋ณ€์ˆ˜์— false๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๋ฌผ๋ก  ์ฐพ๊ฒŒ ๋˜๋ฉด success์— true๋ฅผ ์„ค์ •ํ•œ๋‹ค. 1 char& find(char a[], char c, bool& success); ๋‹ค์Œ main()์ด ์ž˜ ์‹คํ–‰๋˜๋„๋ก find()๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 int main() { char s[] = "Mike"; bool b = false; char& loc = find(s, 'M', b); if(b == false) { cout << "M์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋‹ค" << endl; return 0; } loc = 'm'; // 'M' ์œ„์น˜์— 'm' ๊ธฐ๋ก cout << s << endl; // "mike"๊ฐ€ ์ถœ๋ ฅ๋จ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 5 Solution

Problem: ๋‹ค์Œ Circle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. 1 2 3 4 5 6 7 8 class Circle{ int radius; public: Circle(int r) {radius =r;} int getRadius() {return radius;} void setRadius(int r) {radius = r;} void show() {cout << "๋ฐ˜์ง€๋ฆ„์ด " << radius << "์ธ ์›" << endl;} }; Circle ๊ฐ์ฒด b๋ฅผ a์— ๋”ํ•˜์—ฌ a๋ฅผ ํ‚ค์šฐ๊ณ ์ž ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. 1 2 3 4 void increaseBy(Circle a, Circle b) { int r = a.getRadius() + b.getRadius(); a.setRadius(r); } ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด increaseBy() ํ•จ์ˆ˜๋Š” ๋ชฉ์ ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š”๊ฐ€? ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 4 Solution

Problem: ์•„๋ž˜์™€ ๊ฐ™์ด ์›ํ˜•์ด ์ฃผ์–ด์ง„ bigger()๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” main()์„ ์ž‘์„ฑํ•˜๋ผ. bigger()๋Š” ์ธ์ž๋กœ ์ฃผ์–ด์ง„ a, b๊ฐ€ ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ํฐ ์ˆ˜๋Š” big์— ์ „๋‹ฌํ•œ๋‹ค. 1 bool bigger(int a, int b, int& big); Execution Result: Objective & Hints: ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์—ฐ์Šต 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 #include using namespace std; bool bigger(int a, int b, int& big){ if(a==b) return true; else { if(a>b) big = a; else big = b; return false; } } int main() { int a, b, big; cout << "๋‘๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”>>"; cin >> a >> b; if(!bigger(a, b, big)) cout << "ํฐ ์ˆ˜๋Š” : " << big; else cout << "๋‘ ์ •์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค."; } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 3 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•˜๋„๋ก combine() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Execution Result: Objective & Hints: string ํด๋ž˜์Šค์™€ ์ฐธ์กฐ ์‚ฌ์šฉ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include using namespace std; void combine(string t1, string t2, string &t3){ t3 = t1 + " " + t2; } int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil