728x90
반응형
본 글은 "황기태"님의 [명품 C++ Programming]의 연습 문제 답을 공유하고자 작성되었으며, 필자가 직접 문제를 풀며 작성한 것이기에 오류가 있을 수 있습니다. 댓글로 알려주시면 반영하도록 하겠습니다.
시리즈 보기
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 1장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 2장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 3장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 4장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 5장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 6장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 7장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 8장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 9장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (이론 문제)
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (실습 문제)
[C++] 명품 C++ Programming 13장 연습 문제 풀이 (이론 문제)
💡
#include <iostream>
using namespace std;
int main() {
int ch, cnt = 0;
cout << "문자를 입력하세요 >>";
while ((ch = cin.get()) != EOF) {
if (ch == '\n') break;
if (ch == 'a') cnt++;
}
cout << "a의 개수는 " << cnt << "개 입니다.";
}
💡
#include <iostream>
using namespace std;
int main() {
char ch;
int cnt = 0;
cout << "문자를 입력하세요 >>";
while (true) {
cin.get(ch);
if (cin.eof() || ch == '\n') break;
if (ch == ' ') cnt++;
}
cout << "공백의 개수는 " << cnt << "개 입니다.";
}
💡
#include <iostream>
using namespace std;
int main() {
int ch;
cin.ignore(100, ';');
while ((ch = cin.get()) != EOF) {
cout << (char)ch;
if (ch == '\n') cin.ignore(100, ';');
}
cout << endl;
}
💡
#include <iostream>
using namespace std;
int main() {
int ch;
while ((ch = cin.get()) != EOF) {
if (ch == ';') {
cout.put('\n');
cin.ignore(100, '\n');
}
else cout.put(ch);
}
cout << endl;
}
💡
#include <iostream>
#include <string>
using namespace std;
int main() {
string cmd;
cout << "cin.get(char*, int)로 문자열을 읽습니다." << endl;
while (true) {
cout << "종료하려면 exit를 입력하세요 >> ";
getline(cin, cmd);
if (cmd == "exit") {
cout << "프로그램을 종료합니다...";
return 0;
}
}
}
💡
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main() {
cout.width(15);
cout << setw(15) << left << "Number";
cout << setw(15) << left << "Square";
cout << setw(15) << left << "Squre Root" << endl;
int i;
for (i = 0; i < 50; i += 5) {
cout << setw(15) << left << setfill('_') << i;
cout << setw(15) << left << setfill('_') << i * i;
cout << setw(15) << left << setfill('_') << setprecision(3) << sqrt(i) << endl;
}
}
💡
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main() {
for (int i = 0; i < 4; i++) {
cout << setw(8) << left << "dec";
cout << setw(8) << left << "hexa";
cout << setw(8) << left << "char";
}
cout << endl;
for (int i = 0; i < 4; i++) {
cout << setw(8) << left << "---";
cout << setw(8) << left << "----";
cout << setw(8) << left << "----";
}
cout << endl;
for (int i = 0; i < 128; i++) {
cout << setw(8) << left << i;
cout << setw(8) << left << hex << i;
if (isprint(i)) cout << setw(8) << left << (char)i;
else cout << setw(8) << left << ".";
if (i % 4 == 3) cout << endl;
}
}
💡
class Circle {
string name;
int radius;
public:
Circle(int raidus = 1, string name = "") {
this->radius = radius;
this->name = name;
}
};
int main() {
Circle d, w;
cin >> d >> w;// 키보드 입력을 받아 객체 d와 w를 완성
cout << d << w << endl; // 객체 d, w 출력
}
#include <iostream>
#include <string>
using namespace std;
class Circle {
string name;
int radius;
public:
Circle(int raidus = 1, string name = "") {
this->radius = radius;
this->name = name;
}
friend istream& operator >> (istream& stream, Circle& c);
friend ostream& operator << (ostream& stream, Circle c);
};
istream& operator >> (istream& stream, Circle& c) {
cout << "반지름 >> ";
stream >> c.radius;
cout << "이름 >> ";
stream >> c.name;
return stream;
};
ostream& operator << (ostream& stream, Circle c) {
stream << "(" << c.radius << "인 " << c.name << ")";
return stream;
};
int main() {
Circle d, w;
cin >> d >> w;// 키보드 입력을 받아 객체 d와 w를 완성
cout << d << w << endl; // 객체 d, w 출력
}
💡
class Phone {
string name;
string telnum;
string address;
public:
Phone(string name="", string telnum = "", string address="") {
this->name = name;
this->telnum = telnum;
this->address = address;
}
};
int main() {
Phone girl, boy;
cin >> girl >> boy;
cout << girl << endl << boy << endl;
}
#include <iostream>
#include <string>
using namespace std;
class Phone {
string name, telnum, address;
public:
Phone(string name="", string telnum = "", string address="") {
this->name = name;
this->telnum = telnum;
this->address = address;
}
friend istream& operator >> (istream& stream, Phone& p);
friend ostream& operator << (ostream& stream, Phone p);
};
istream& operator >> (istream& stream, Phone& p) {
cout << "이름:";
getline(stream, p.name);
cout << "전화번호:";
getline(stream, p.telnum);
cout << "주소:";
getline(stream, p.address);
return stream;
}
ostream& operator << (ostream& stream, Phone p) {
stream << "(" << p.name << "," << p.telnum << "," << p.address << ")";
return stream;
}
int main() {
Phone girl, boy;
cin >> girl >> boy;
cout << girl << endl << boy << endl;
}
💡
#include <iostream>
#include <string>
using namespace std;
int main() {
string password;
while (true) {
cin >> prompt >> password;
if (password == "C++") {
cout << "login success!!" << endl;
break;
}
else
cout << "login fil. try again!!" << endl;
}
}
#include <iostream>
#include <string>
using namespace std;
istream& prompt(istream& stream) {
cout << "암호?";
return stream;
}
int main() {
string password;
while (true) {
cin >> prompt >> password;
if (password == "C++") {
cout << "login success!!" << endl;
break;
}
else
cout << "login fil. try again!!" << endl;
}
}
💡
#include <iostream>
using namespace std;
int main() {
int x, y;
cin >> pos >> x;
cin >> pos >> y;
cout << x << "," << y << endl;
}
#include <iostream>
using namespace std;
istream& pos(istream& stream) {
cout << "위치는? ";
return stream;
}
int main() {
int x, y;
cin >> pos >> x;
cin >> pos >> y;
cout << x << "," << y << endl;
}
💡
// 객체 지향적 처리를 위한 고민만해서 재료가 없을 때 만들지 못하는 처리를 하지 않았습니다. 추후 만들도록 하겠습니다.
#include <iostream>
#include <string>
using namespace std;
class Basic {
protected:
string name;
int coffee, sugar, cream, water, cup;
public:
Basic(string name) { this->name = name; }
string getName() { return name; }
virtual void useCoffee(int& coffee, int use) { coffee -= use; }
virtual void useSugar(int& sugar, int use) { sugar -= use; }
virtual void useCream(int& cream, int use) { cream -= use; }
virtual void useWater(int& water, int use) { water -= use; }
virtual void useCup(int& cup, int use) { cup -= use; }
virtual void show(int& coffee, int& sugar, int& cream, int& water, int& cup) {
cout << "Coffee" << "\t";
printStar(coffee);
cout << "Sugar" << "\t";
printStar(sugar);
cout << "Cream" << "\t";
printStar(cream);
cout << "Water" << "\t";
printStar(water);
cout << "Cup" << "\t";
printStar(cup);
}
void printStar(int n) {
for (int i = 0; i < n; i++) {
cout << "*";
}
cout << endl;
}
void fill(int& coffee, int& sugar, int& cream, int& water, int& cup) {
coffee = 3; sugar = 3; cream = 3; water = 3; cup = 3;
show(coffee, sugar, cream, water, cup);
}
};
class Coffee : public Basic {
public:
Coffee() : Basic("맛있는 보통 커피") {}
void makeCoffe(int& coffee, int& water, int& cup) {
cout << getName() << " 나왔습니다~~" << endl;
useCoffee(coffee, 1);
useWater(water, 1);
useCup(cup, 1);
}
};
class SugarCoffee : public Basic {
public:
SugarCoffee() : Basic("맛있는 설탕 커피") {}
void makeCoffe(int& coffee, int& sugar, int& water, int& cup) {
cout << getName() << " 나왔습니다~~" << endl;
useCoffee(coffee, 1);
useSugar(sugar, 1);
useWater(water, 1);
useCup(cup, 1);
}
};
class BlackCoffe : public Basic {
public:
BlackCoffe() : Basic("맛있는 보통 커피") {}
void makeCoffe(int& coffee, int& cup) {
cout << getName() << " 나왔습니다~~" << endl;
useCoffee(coffee, 1);
useCup(cup, 1);
}
};
int main() {
int coffee = 3, sugar = 3, cream = 3, water = 3, cup = 3;
cout << "----- 명품 커피 자판키 켭니다. -----" << endl;
Basic tmp("");
tmp.show(coffee, sugar, cream, water, cup);
Coffee c;
SugarCoffee sc;
BlackCoffe bc;
int select;
while (true) {
cout << endl << endl;
cout << "보통 커피:0, 설탕 커피:1, 블랙 커피:2, 채우기:3, 종료:4>> ";
cin >> select;
switch (select)
{
case 0:
c.makeCoffe(coffee, water, cup);
c.show(coffee, sugar, cream, water, cup);
break;
case 1:
sc.makeCoffe(coffee, sugar, water, cup);
sc.show(coffee, sugar, cream, water, cup);
break;
case 2:
bc.makeCoffe(coffee, cup);
bc.show(coffee, sugar, cream, water, cup);
break;
case 3:
tmp.fill(coffee, sugar, cream, water, cup);
break;
case 4:
return 0;
}
}
}
반응형
'대학교 > 명품 C++programming 문제' 카테고리의 다른 글
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (실습 문제) (0) | 2022.12.11 |
---|---|
[C++] 명품 C++ Programming 12장 연습 문제 풀이 (이론 문제) (0) | 2022.12.10 |
[C++] 명품 C++ Programming 11장 연습 문제 풀이 (이론 문제) (0) | 2022.12.07 |
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (실습 문제) (0) | 2022.12.06 |
[C++] 명품 C++ Programming 10장 연습 문제 풀이 (이론 문제) (0) | 2022.12.02 |