purposeforblogging의 등록된 링크

 purposeforblogging로 등록된 네이버 블로그 포스트 수는 211건입니다.

이것이 C#이다 3장 연습문제 1. [내부링크]

문제 다음과 같이 사용자로부터 사각형의 너비와 높이를 입력받아 넓이를 계산하는 프로그램을 완성하세요 다름 코드 중 주석 부분을 바꾸면 됩니다. 실행 결과: 사각형의 너비를 입력하세요. 30 사각형의 높이를 입력하세요. 40 사각형의 넓이는 1200. 내가 짠 코드 using System;namespace RectArea{ class MainApp { public static void Main() { Console.WriteLine("사각형의 너비를 입력하세요."); string width = Console.ReadLine(); Console.WriteLine("사각형의 높이를 입력하세요."); string height = Console.ReadLine(); int S = int.Parse(width)*int.Parse(height); Console.WriteLine($"사각형의 넓이는 {S}."); } }}

이것이 C#이다 3장 연습문제 2 [내부링크]

문제 다음 코드에서 잘못된 부분을 찾고, 그 이유를 설명하세요. int a = 7.3; float b = 3.14; double c = a * b; char d = "abc"; string e = '한'; 이유 float b=3.14; =>float b=3.14f; 로 바뀌어야 하고, char d="abc"; 는 하나의 문자만 저장할 수 있기 때문에 잘못되었다.

이것이 C#이다 3장 연습문제 3 [내부링크]

문제 값 형식과 참조 형식의 차이는 무엇인가요? 답 값 형식은 스택에 데이터를 저장하고, 참조 형식은 힙에다 데이터를 저장하고, 스택에다 데이터 주소를 저장한다.

이것이 C#이다 3장 연습문제 4 [내부링크]

문제 박싱과 언박싱을 설명하세요. 참조 형식 중 하나인 object는 모든 형식의 기본 클래스이기 때문에 어떤 형식의 데이터든 저장할 수 있는데, 이때 object형식에 값 형식의 데이터를 저장할 경우, 값 형식의 데이터를 박싱하여 스택이 아닌 힙에 저장을 한다. 언박싱이란 object a=20; //참조 형식, int형 데이터를 박싱하여 힙에 저장 int b=(int)a; //힙에 박싱되어있는 int형 데이터를 복사 후, 언박싱하여 스택에 저장 위의 코드처럼 힙에 있는 값 형식의 데이터를 스택으로 옮길 때 박스를 복사 후, 언박싱하여 옮긴다.

이것이 C#이다 3장 연습문제 5 [내부링크]

문제 다음 코드를 컴파일한 후의 a와 b는 각각 어떤 데이터 형식이겠습니까? var a = 2020; var b = "double"; 답 a : 값 형식 b : 참조 형식

이것이 C#이다 4장 연습문제 1 [내부링크]

문제 i++와 ++i의 차이점은 무엇인가요? 답 i++는 i++가 속한 줄의 코드를 실행한 후에 i의 값이 1 증가하는 것이다. 반면에 ++i는 ++i가 속한 줄의 코드가 실행될 때 i의 값이 1 증가하는 것이다.

이것이 C#이다 4장 연습문제 2 [내부링크]

문제 다음 보기 중에서 그 결과가 다른 것을 찾으세요 (변수 i를 초기화해서 각 보기를 실행해보면 그 결과가 나옵니다. 고민을 좀 해본 후에 답을 확인해보세요.) 1. i=i+1; 2. i++; 3. ++i; 4. i+=1; 답 2번

이것이 C#이다 4장 연습문제 3 [내부링크]

문제 다음 코드에서 a와 b는 각각 얼마일까요? int a = 8 >> 1 int b = a >> 2; 답 a : 4 b : 1

이것이 C#이다 4장 연습문제 4 [내부링크]

문제 다음 코드에서 a는 얼마일까요? int a = 0xF0 | 0x0F; 답 255 풀이 0이 붙으면 8진수, 0x가 붙으면 16진수 (16진수)0xF0 => (2진수) 1111 0000 (16진수)0x0F => (2진수) 0000 1111 |는 OR 연산자 이므로 0xF0 | 0x0F => 1111 1111 = 2^8-1 =256-1 = 255 이다

이것이 C#이다 4장 연습문제 5 [내부링크]

문제 다음 코드에서 b는 어떤 값을 가질까요? int a = 10; string b = a == 0 ? "가나다" : "ABC"; 답 ABC

명품 C++ programming 13장 실습문제 2번 [내부링크]

문제 0~100점 사이의 점수를 입력받아 학점을 F(60 미만), D(70 미만), C(80 미만), B(90 미만), A(100 이하)로 출력하는 프로그램을 작성하라. 점수가 0~100 사이가 아닌 경우 예외로 처리하라. #include<iostream>using namespace std;int main() { int input = 0; cout << "0~100점 사이의 점수를 입력하시오: "; cin >> input; try { if (60 > input && 0 <= input) cout << "F 학점입니다." << endl; else if (70 > input && 0 <= input) cout << "D 학점입니다." << endl; else if (80 > input && 0 <= input) cout << "C 학점입니다." <&l.......

명품 C++ programming 13장 실습문제 3번 [내부링크]

문제 0에서 9 사이의 정수를 키보드에서 입력받아 리턴하는 get() 함수의 원형은 다음과 같다. int get() throw(char*); get() 함수는 사용자가 0에서 9 사이의 값을 입력하지 않는 경우 문자열("input fault")의 예외를 발생시킨다. get() 함수를 작성하라. get() 함수를 이용하여 두 개의 정수를 키보드로부터 입력받아 두 수의 곱을 출력하는 main() 함수를 작성하라. main() 함수는 while 문을 무한 반복한다. 0~9 사이의 정수 입력 >> 50~9 사이의 정수 입력 >> 65X6=300~9 사이의 정수 입력 >> 70~9 사이의 정수 입력 >> -2input fault 예외 발생, 계산할 수 없음0~9 사이의 정수 입력 >> 40~9 사이의 정수.......

명품 C++ programming 13장 실습문제 4번 [내부링크]

문제 다음 코드에서 getFileSize() 함수는 매개 변수에 NULL이 넘어오면 -1을, 파일을 열수 없으면 -2를 리턴하고, 정상적인 경우 파일 크기를 리턴한다. #include<iostream>#include<fstream>using namespace std;int getFileSize(const char* file) { if (file == NULL) return -1; // file이 NULL 포인터이면 -1 리턴 ifstream fin(file); if (!fin) return -2; // 열기가 실패하면 -2 리턴 fin.seekg(0, ios::end); int length = fin.tellg(); return length;}int main() { int n = getFileSize("c:\\windows\\system.ini"); cout << "파일 크기 = " << n << endl; // 파일 크기 = 219가 출력됨 int m = getFi.......

명품 C++ programming 13장 실습문제 5번 [내부링크]

문제 다음은 정수를 입력받아 구구단을 출력하는 프로그램이다. 그런데 이 프로그램은 1~9가 아닌 정수가 입력되는 것을 걸러내지 못하고, 특히 문자가 입력되면 무한루프에 빠지게 된다. #include<iostream>using namespace std;int main() { int n; while (true) { cout << "양수입력>> "; cin >> n; for (int i = 1; i <= 9; i++) cout << n << 'x' << i << '=' << n * i << ' '; cout << endl; }}다음과 같이 실행되도록 try-throw-catch를 이용하여 이 프로그램을 수정하라. 양수입력>> 55x1=5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45양수입.......

명품 C++ programming 13장 실습문제 6번 [내부링크]

문제 다음 원형과 조건을 가진 concat() 함수를 작성하라. int* concat(int a[], int sizea, int b[], int sizeb); concat() 함수는 배열 a와 배열 b를 연결한 새로운 배열을 생성하여 리턴한다. 그러나 만일 메모리가 부족하거나, 배열 a나 b가 NULL 이거나, sizea나 sizeb가 양수가 아닌 경우 int 타입의 예외를 발생시킨다. concat() 함수를 활용하는 코드와 실행 결과는 다음과 같다. int main() { int x[] = { 1,2,3,4,5 }; int y[] = { 10,20,30,40,50 }; try { int* p = concat(x, 5, y, 4); // 5 대신에 0을 입력하면 예외가 발생 for (int n = 0; n < 9; n++) cout << p[n] << ' '; cout << endl; delete[]p; } ca.......

명품 C++ programming 13장 실습문제 7번 [내부링크]

문제 예제 12-7의 파일 복사 프로그램을 예외 처리 코드를 삽입하여 수정하라. #include <iostream>#include <fstream>using namespace std;int main() { // 소스 파일과 목적 파일의 이름 const char* srcFile = "c:\\temp\\desert.jpg"; const char* destFile = "c:\\temp\\copydesert.jpg"; // 소스 파일 열기 ifstream fsrc(srcFile, ios::in | ios::binary); if(!fsrc) { // 열기 실패 검사 cout << srcFile << " 열기 오류" << endl; return 0; } // 목적 파일 열기 ofstream fdest(destFile, ios::out | ios::binary); if(!fdest) { // 열기 실패 검사 cout << destFile << " 열기 오류"<&l.......

명품 C++ programming 13장 실습문제 8번 [내부링크]

문제 try-catch 블록을 사용하면, 프로그램 내 오류 검사 if 문으로 인해 반복되고 길어지는 코드를 간소화할 수 있다. 다음 함수 copy()는 int [] 배열을 복사하여 복사본 배열의 포인터를 리턴한다. 복사가 여의치 않는 경우 참조 매개 변수인 failCode에 적절한 오류 코드를 삽입하고 NULL을 리턴한다. copy() 함수의 원형을 int* copy(int* src, int size);로 고치고 copy()와 main() 모두 try-catch 블록을 이용하여 수정하라. 코드가 튼튼하고 단순해진다. #include<iostream>using namespace std;int* copy(int* src, int size, int& failCode) { int* p = NULL; if (size < 0) { failCode = -1; // too small return NULL; .......

명품 C++ programming 13장 실습문제 9번 [내부링크]

문제 다음은 C 코드로서 get.c 파일에 저장되어 있다. #include<stdio.h>int get() { int c; printf("숫자를 입력하세요>>"); scanf_s("%d", &c); return c;}get() 함수를 호출하여 두 정수를 키보드로부터 입력받아 아래 실행 화면과 같이 곱을 출력하는 프로그램을 mul.cpp 파일로 저장하고, get.c와 mul.cpp 파일로 구성되는 프로젝트를 작성하라. 실행결과 숫자를 입력하세요>>5 숫자를 입력하세요>>60 곱은 300입니다. 내가 짠 코드 #include<iostream>extern "C" {#include"get.h" }// 다른 방법// extern "C" int get();int main() { int a = 0, b = 0; a = get(); b = get(); std::cout << "곱.......

명품 C++ programming 13장 실습문제 10번 [내부링크]

문제 다음 printline(int count) 함수는 한 줄에 count 개의 '*'를 출력하는 함수이다. #include<stdio.h> void printline(int count) { int n; for (n = 0; n < count; n++) printf("*"); printf("\n"); } 이 함수를 print.c 파일에 저장하라. 그리고 printline()을 호출하여 다음과 같이 화면에 출력하는 프로그램을 pr.cpp 파일로 작성하고, print.c와 pr.cpp 파일로 구성되는 프로젝트를 생성하여 실행하라. 실행결과 * ** *** 내가 짠 코드 #include<iostream>using namespace std;extern "C" void printline(int count);int main() { printline(1); printline(2); printline(3);}

명품 C++ programming 12장 실습문제 8번(수정) [내부링크]

문제 c:\windows\system.ini 파일을 읽어 아래와 같이 Edit plus처럼 16진수와 문자로 출력하는 프로그램을 작성하라. <실행 결과> c:\windows\system.ini 출력3b 20 66 6f 72 20 31 36 2d 62 69 74 20 61 70 70 ; f o r 1 6 - b i t a p p20 73 75 70 70 6f 72 74 0d 0a 5b 33 38 36 45 6e s u p p o r t . . [ 3 8 6 E n68 5d 0d 0a 77 6f 61 66 6f 6e 74 3d 64 6f 73 61 h ] . . w o a f o n t = d o s a70 70 2e 66 6f 6e 0d 0a 45 47 41 38 30 57 4f 41 p p . f o n . . E G A 8 0 W O A2e 46 4f 4e 3d 45 47 41 38 30 57 4f 41 2e 46 4f . F O N = E G A 8 0 W O A . F O4e 0d 0a 45 47 41 34 30 57 4f 41 2e 46 4f 4e 3d N . . E G .......

명품 C++ programming 12장 실습문제 9번 [내부링크]

문제 텍스트 파일을 모두 읽어 다음과 같이 라인을 출력하는 프로그램을 작성하라. 아래는 c:\windows\system.ini를 사용한 사례이다. C:\windows\system.ini 파일 읽기 완료라인 번호를 입력하세요. 1보다 작은 값을 입력하면 종료 : 1; for 16-bit app support //라인 1 출력 : 6CGA80WOA.FON=CGA80WOA.FON : 10wave=mmdrv.dll : 30 //라인 30없음 : 13[mci] : -1종료 합니다. 내가 짠 코드 #include<iostream>#include<vector>#include<fstream>#include<string>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini"); int input = 1; string temp; vector<string> v; if (!fin) { cout &.......

명품 C++ programming 12장 실습문제 10번 [내부링크]

문제 두 파일이 같은 지 비교하는 FileCompare 프로그램을 만들어라. 바이너리 I/O를 이용하여야 한다. 두 개의 이미지 파일을 준비하고 테스트 하라. 내가 짠 코드 #include<iostream>#include<vector>#include<fstream>#include<string>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini"); int input = 1; string temp; vector<string> v; if (!fin) { cout << "c:\\windows\\system.ini 열기 오류" << endl; } while (getline(fin, temp)) { v.push_back(temp); } cout << "C:\\windows\\system.ini 파일 읽기 완료" << endl; cout << "라인 번호를 입.......

명품 C++ programming 12장 OpenChallenge(최적화 필요) [내부링크]

문제 간단한 행맨 게임을 만들어보자. 프로그램은 사용자 모르게 영어 단어 하나를 선택하고 몇 개의 글자를 숨긴 다음 화면에 출력하여, 사용자에게 이 단어를 맞추게 하는 게임이다. 숨긴 글자의 개수가 많을수록 난이도가 높다. 이 도전 주제에서는 2개의 글자만 숨기도록 하라. 한 단어에서 5번 틀리면 프로그램을 종료하라. 행맨 프로그램에 사용되는 단어 파일은 독자들에게 배포된 words.txt 파일을 이용하라. 이 파일에는 한 줄에 하나의 영어 단어만 적혀있다. --------------------------------------지금부터 행맨 게임을 시작합니다.----------------------------------------nom>>vv-nom>>evenomNext(y/n)?yata-i-tic&g.......

명품 C++ programming 12장 실습문제 12번 [내부링크]

문제 단어가 들어 있는 words.txt 파일을 읽어 단어 별로 vector<string>에 저장하고, 단어를 입력받아 오직 한 글자만 다른 단어를 모두 출력하라. 틀린 단어가 입력되면 '단어 없음'을 출력하라. "exit"을 입력하면 프로그램을 종료하라. ... words.txt 파일 로딩 완료검색을 시작합니다. 단어를 입력해주세요.단어>> blueblurclueflueglue단어>> skysayshyskislysoyspy단어>> exit 내가 짠 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include<iostream>#include<fstream>#include<vector>#include<string>using namespace std; void co.......

명품 C++ programming 12장 실습문제 13번 [내부링크]

문제 단어가 들어 있는 words.txt 파일을 읽어 단어 별로 vector<string>에 저장하고 사용자가 입력한 문자열로 시작되는 모든 단어를 출력하는 프로그램을 작성하라. "exit"을 입력하면 프로그램을 종료하라. ... words.txt 파일 로딩 완료검색을 시작합니다. 단어를 입력해주세요.단어>> lovelovelovebirdlovelorn단어>> fatfatfatalfatefatefulfatherfathomfatiguefattenfattyfatuous단어>> fathor발견할 수 없음단어>> exit 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243#include<iostream>#include<fstream>#include<vector>#include<s.......

명품 C++ programming 12장 실습문제 14번 [내부링크]

문제 read() 함수를 이용하여 c:\windows\system.ini 파일의 크기를 화면에 출력하는 프로그램을 작성하라. 이때 get() 함수나 seekg(), tellg() 함수를 사용하면 안된다. 내가 짠 코드 #include<iostream>#include<fstream>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini", ios::in | ios::binary); if (!fin) { cout << "c:\\windows\\system.ini 열기 오류" << endl; } char ch[32] = { 0 }; int cnt = 0; while (!fin.eof()) { fin.read(ch, 32); int n = fin.gcount(); cnt += n; } cout << "파일의 크기는 " << cnt << " 입니다." << endl;}

명품 C++ programming 13장 실습문제 1번 [내부링크]

문제 sum() 함수의 원형은 다음과 같다. int sum(int a, int b); sum() 함수는 매개 변수로 주어진 a에서 b까지 양의 정수 합을 구하여 리턴하는 함수이다. 만일 a가 b보다 크면 "잘못된 입력"을, 두 수 중 하나라도 음수이면 "음수 처리 안 됨"의 예외를 throw 한다. sum() 함수를 호출하는 main()의 사례는 다음과 같다. sum() 함수를 구현하라. int main() { try { cout << sum(2, 5) << endl; cout << sum(-1, 5) << endl; } catch (char* s) { cout << s << endl; }} 내가 짠 코드 #include<iostream>using namespace std;int sum(int a, int b) { char str[] = "음수 처리 안 됨"; if (a < 0.......

명품 C++ programming 11장 실습문제 12번 [내부링크]

문제 커피 자판기 시뮬레이터를 C++로 작성해보자. 실행 사례는 다음과 같다. 자판기는 보통 커피, 설탕 커피, 블랙 커피의 3종류만 판매한다. 단순화를 위해 실행 사례에는 총 3인분의 재료만 가지도록 하였다. 커피 메뉴에 따라 필요한 재료들이 하나씩 없어진다. 객체 지향 구조에 따라 필요한 클래스를 작성하여 프로그램을 완성하라. 실행 결과 : 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#include<iostream>using namespace std; class Vending_Machine { int coffee; int sugar; int cream; int water; int.......

명품 C++ programming 11장 Open Challenge [내부링크]

문제 사람과 컴퓨터가 가위바위보 게임을 하는 프로그램을 작성하라. 선수 이름은 프로그램 실행 초기에 키 입력받는다. 컴퓨터가 무엇을 낼지는 독자가 마음대로 프로그래밍하면 된다. 저자는 컴퓨터가 랜덤하게 내도록 코딩하였다. 사람이 키보드로부터 입력받고 <Enter> 키를 치면 곧바로 결과가 나온다. 가위, 바위, 보가 아닌 다른 문자를 입력하면 다시 입력받는다. 추상 클래스 AbstractPlayer 클래스를 작성하고 사람(Human 클래스)과 컴퓨터(Computer 클래스)가 상속받아 각자 turn() 함수를 구현하면 멋있는 코드가 된다. class AbstractPlayer { string name;protected: static string gbb[3]; //"가위", "바위", "보"로 생성자.......

명품 C++ programming 12장 실습문제 1번 [내부링크]

문제 메모장을 이용하여 c:\temp\test.txt 파일을 다음과 같이 편집한 후, 이 파일을 읽어 출력하는 프로그램을 작성하라. <메모장> 0123456789 Integer 내가 짠 코드 #include<iostream>#include<fstream>#include<string>using namespace std;int main() { ofstream fout("c:\\temp\\test.txt"); if (!fout) { cout << "출력 스트림 연결 실패!" << endl; } ifstream fin("c:\\temp\\test.txt"); if (!fin) { cout << "입력 스트림 연결 실패!" << endl; } fout << "0123456789" << endl << "Integer" << endl; string line; while (getline(fin, line)) { cout <.......

명품 C++ programming 12장 실습문제 2번 [내부링크]

문제 c:\windows\system.ini 파일을 읽고 라인 번호를 다음과 같이 붙여 화면에 출력하는 프로그램을 작성하라. <system.ini> 1 : ; for 16-bit app support 2 : [386Enh] 3 : woafont=dosapp.fon 4 : EGA80WOA.FON=EGA80WOA.FON 5 : EGA40WOA.FON=EGA40WOA.FON 6 : CGA80WOA.FON=CGA80WOA.FON 7 : CGA40WOA.FON=CGA40WOA.FON 8 : 9 : [drivers] 10 : wave=mmdrv.dll 11 : timer=timer.drv 12 : 13 : [mci] 힌트: ifstream fin("c:\\windows\\system.ini"); string line; getline(fin, line);을 이용하여 루프를 돌면서 한 라인씩 읽으면 간편하다. 내가 짠 코드 #include<iostream>#include<fstream>#include<string>us.......

명품 C++ programming 12장 실습문제 3번 [내부링크]

문제 영문 텍스트 파일을 읽고 영문 글자를 모두 대문자로 출력하라. c:\windows\system.ini로 테스트 하라 내가 짠 코드 #include<iostream>#include<fstream>#include<string>#include<cctype>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini"); if (!fin) { cout << "c:\\windows\\system.ini 열기 실패!" << endl; } string line; while (getline(fin, line)) { for (int i = 0; i < line.length(); i++) { cout << (char)toupper(line[i]); } cout << endl; } fin.close();}

명품 C++ programming 12장 실습문제 4번 [내부링크]

문제 영문 텍스트 파일을 읽고 영문 글자를 모두 대문자로 변환하여 저장하라. c:\windows\sstem.ini를 읽고 대문자로 변환한 파일을 c:\temp\system.txt 파일로 테스트 하라. 내가 짠 코드 #include<iostream>#include<fstream>#include<string>#include<cctype>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini"); if (!fin) { cout << "c:\\windows\\system.ini 열기 실패!" << endl; } ofstream fout("c:\\temp\\system.txt"); if (!fout) { cout << "c:\\temp\\system.txt 열기 실패!" << endl; } string line; while (getline(fin, line)) { for (int i = 0; i &.......

명품 C++ programming 12장 실습문제 5번(못풀었음) [내부링크]

문제 C++ 소스 파일에서 //로 구성된 주석문을 빼고 출력하는 프로그램을 작성하라. "//"와 같이 문자열 속에 //가 있는 경우는 없는 것으로 가정한다. .cpp 파일을 하나 준비하여 소스 폴더에 놓고 테스트하라. 저자는 정답 소스 파일로 하였다. 정답 코드 #include <iostream>#include <fstream>using namespace std;int main() { ifstream fin("ShowNoComment.cpp"); if(!fin) { cout <<"ShowNoComment.cpp 열기 오류"; return 0; } int ch; bool found=false; while((ch=fin.get()) != EOF) { if(ch == '/') { if(found == false) found = true; // 슬래시 한개 발견. 주석 시작 설정 else { // 연속된 두 개의 // 발견 fi.......

명품 C++ programming 12장 실습문제 6번 [내부링크]

문제 c:\windows\system.ini를 c:\temp\system.txt로 복사하는 동안 10%를 진행할 때마다 '.'과 바이트 크기를 다음과 같이 출력하는 프로그램을 작성하라. 복사 시작... .21B 10% .21B 20% .21B 30% .21B 40% .21B 50% .21B 60% .21B 70% .21B 80% .21B 90% .21B 100% 219B 복사 완료 내가 짠 코드 #include<iostream>#include<fstream>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini", ios::in | ios::binary); if (!fin) { cout << "c:\\windows\\system.ini 열기 오류" << endl; } ofstream fout("c:\\temp\\system.txt", ios::out | ios::binary); if (!fout) { cout << "c:\\temp.......

명품 C++ programming 12장 실습문제 7번 [내부링크]

문제 텍스트 파일이든 바이너리 파일이든 원본 파일을 바이트 단위로(문자 단위가 아님에 유의) 거꾸로 사본에 저장하는 프로그램을 작성하라. c:\windows\system.ini 파일을 원본으로 하고 c:\temp\system.txt 파일로 저장하여 테스트하라. 힌트: '\r'과 '\n' 때문에 ios::binary 모드를 사용해야 한다. 거꾸로 저장된 파일을 다시 거꾸로 저장하여 프로그램에 오류가 없는지 확인하라. 내가 짠 코드 #include<iostream> #include<fstream>using namespace std;int main() { ifstream fin("c:\\windows\\system.ini", ios::in | ios::binary); if (!fin) { cout << "c:\\windows\\system.ini 열기 실패" << endl; } ofs.......

명품 C++ programming 11장 실습문제 3번(모르겠음) [내부링크]

문제 한 줄에 '영어문장;한글문자' 형식으로 키 입력될 때, cin.ignore()를 이용하여 ';' 이후에 입력된 문자열을 화면에 출력하는 프로그램을 작성하라. 아래에서 ^Z(ctrl-z) 키는 입력 종료는 나타내는 키이며, cin.get()은 EOF를 리턴한다. 실행 결과 : 내가 짠 코드 #include<iostream>using namespace std;int main() { int ch; cin.ignore(100, ';'); // 영어 문장이 최대 99개의 문자로 입력된다고 가정한다. while ((ch = cin.get()) != EOF) { cout.put(ch); if (ch == '\n') cin.ignore(100, ';'); // 영어 문장이 최대 99개의 문자로 입력된다고 가정한다. }} 왜 cin.ignore()가 두 번 들어가는 지 모르겠음

명품 C++ programming 11장 실습문제 4번 [내부링크]

문제 한 줄에 '영어문장;한글문자' 형식으로 키 입력될 때, cin.ignore()를 이용하여 ';'이전에 입력된 문자열만 출력하는 프로그램을 작성하라. 아래에서 ^Z(ctrl-z) 키는 입력 종료를 나타내는 키이며, cin.get()은 EOF를 리턴한다. 실행 결과 : 내가 짠 코드 #include<iostream>using namespace std;int main() { int ch; while ((ch = cin.get()) != EOF) { if (ch == ';') { cin.ignore(100, '\n'); ch = '\n'; } cout.put(ch); }}

명품 C++ programming 11장 실습문제 5번 [내부링크]

문제 다음 프로그램은 예제 11-3의 코드이다. 아래 코드에서 char [] 대신 string을 이용하여 문자열을 다루도록 프로그램을 재작성하라. 123456789101112131415161718#include <iostream>#include <cstring>using namespace std; int main() { char cmd[80]; cout << "cin.get(char*, int)로 문자열을 읽습니다." << endl; while(true) { cout << "종료하려면 exit를 입력하세요 >> "; cin.get(cmd, 80); // 79개까지의 문자 읽음 if(strcmp(cmd, "exit") == 0 ) { cout << "프로그램을 종료합니다...."; return 0; } else cin.ignore(1); // 버퍼에 남아 있는 <Enter> 키 ('\n') 제거 }} 실행.......

명품 C++ programming 11장 실습문제 6번 [내부링크]

문제 다음과 같이 정수, 제곱, 제곱근의 값을 형식에 맞추어 출력하는 프로그램을 작성하라. 필드의 간격은 총 15칸이고 제곱근의 유효 숫자는 총 3자리로 한다. 빈칸은 모두 underline(_) 문자로 삽입한다. 실행 결과 : 제곱근을 구하기 위해 sqrt(double x) 함수를 호출하고 <cmath> 헤더 파일을 include하라. 내가 짠 코드 #include<iostream>#include<iomanip>#include<cmath>using namespace std;int main() { cout << left << setw(15) << "Number" << left << setw(15) << "Square" << left << setw(15) << "Square Root" << endl; for (int i = 0;.......

명품 C++ programming 11장 실습문제 7번 [내부링크]

문제 0에서 127까지 ASCII 코드와 해당 문자를 다음과 같이 출력하는 프로그램을 작성하라. 화면에 출력가능하지 않는 ASCII 코드는 '.'으로 출력하라. 실행 결과 : 내가 짠 코드 #include<iostream>#include<iomanip>#include<cctype>using namespace std;int main() { int cnt = 0; for (int i = 0; i < 4; i++) { cout << left << setw(8) << "dec"; cout << left << setw(8) << "hexa"; cout << left << setw(8) << "char"; } cout << endl; for (int i = 0; i < 64; i++) { cout << left << setw(8) << dec << i; cout <&.......

명품 C++ programming 11장 실습문제 8번 [내부링크]

문제 Circle 클래스는 다음과 같다. 12345678class Circle { string name; int radius;public: Circle(int radius=1, string name="") { this->radius = radius; this->name = name; }}; Circle 클래스의 객체를 입출력하는 다음 코드와 실행 결과를 참조하여 <<, >> 연산자를 작성하고 Circle 클래스를 수정하는 등 프로그램을 완성하라. 123Circle d, w;cin >> d >> w; // 키보드 입력을 받아 객체 d와 w를 완성cout << d << w << endl; // 객체 d, w 출력 실행 결과 : 내가 짠 코드 #include<iostream>using namespace std;class Circle { string name; int radius;public: Circle(int.......

명품 C++ programming 11장 실습문제 9번 [내부링크]

문제 다음은 Phone 클래스이다. 1234567891011class Phone { // 전화 번호를 표현하는 클래스 string name; string telnum; string address;public: Phone(string name="", string telnum="", string address="") { this->name = name; this->telnum = telnum; this->address = address; }}; Phone 클래스의 객체를 입출력하는 아래 코드와 실행 결과를 참조하여 <<, >> 연산자를 작성하고 Phone 클래스를 수정하는 등 프로그램을 완성하라. 123 Phone girl, boy; cin >> girl >> boy; cout << girl << endl << boy << endl; 실행 결과 : 내가 짠 코드 123456789101112131415161718192.......

명품 C++ programming 11장 실습문제 10번 [내부링크]

문제 다음은 프로그램과 실행 결과를 보여준다. prompt 조작자를 작성하여 프로그램을 완성하라. 12345678910111213141516#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 fail. try again!!" << endl; }} 실행 결과 : 내가 짠 코드 #include <iostream>#include <string>using namespace std;istream& prompt(istream& in) { cout << "암호?"; return in;}int main() { string passw.......

명품 C++ programming 11장 실습문제 11번 [내부링크]

문제 다음은 프로그램과 실행 결과를 보여준다. pos 조작자를 작성하라. 123456789#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& in) { cout << "위치는? "; return in;}int main() { int x, y; cin >> pos >> x; cin >> pos >> y; cout << x << ',' << y << endl;}

명품 C++ programming 10장 실습문제 14번 [내부링크]

문제 문제 : 암호 관리 응용프로그램을 map을 이용하여 작성하라. 실행 과정은 다음과 같다. 실행 결과 : 내가 짠 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include<iostream>#include<map>using namespace std; int main() { int input = 0; string name, code; map<string, string> m; cout << "***** 암호 관리 프로그램 WHO를 시작합니다 *****" << endl; while (true) { cout << "삽임:1, 검사:2, 종료:3>> "; cin >> input; switch (input) { case 1: cout << "이름 암호>> "; cin >> name; cin >> code; m.......

명품 C++ programming 10장 실습문제 15번 [내부링크]

문제 vector를 이용하여 아래 Circle 클래스의 객체를 삽입하고 삭제하는 프로그램을 작성하라. 삭제 시에는 이름이 같은 모든 원을 삭제한다. 12345678910class 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; }}; 실행 결과 : 내가 짠 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051#include<iostream>#include<vector>using namespace std; class Circle { string name; // 이름.......

명품 C++ programming 10장 실습문제 16번 [내부링크]

문제 vector<Shape*> v;를 이용하여 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. 생성된 도형 객체를 v에 삽입하고 관리하라. 9장 실습 문제 10번의 힌트를 참고하라. 그래픽 편집기의 기능은 "삽입", "삭제", "모두보기", "종료"의 4가지이고, 실행 과정은 다음과 같다. 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include<iostream>#include<vector>using namespace std;class Shape {protected: virtual void draw() = 0;public: void paint() { draw(); }}; class Circle :public Shape {protected: voi.......

명품 C++ programming 11장 실습문제 1번(다시) [내부링크]

문제 int cin.get() 함수를 이용하여 키보드로부터 한 라인을 읽고 'a'가 몇 개인지 출력하는 프로그램을 작성하라. 실행 결과 : 내가 짠 코드 #include<iostream>using namespace std;int main() { char str[50]; int ch=0, cnt=0; cin.get(str, 50, '\n'); for (int i = 0; i < sizeof(str); i++) { if (str[i] == 'a') cnt++; } cout << cnt << endl;}

명품 C++ programming 11장 실습문제 2번(다시) [내부링크]

문제 문제 : istream& get(char& ch) 함수를 이용하여 한 라인을 읽고 빈칸(' ')이 몇 개인지 출력하는 프로그램을 작성하라. 내가 짠 코드 #include<iostream>using namespace std;int main() { char ch; int cnt = 0; while (true) { cin.get(ch); if (ch == '\n') break; if (ch == ' ') cnt++; } cout << cnt << endl;}

2019-12-26 무작정 c언어 테트리스 만들기 1일차 학습 [내부링크]

https://m.blog.naver.com/azure0777/220295388741 오늘 배운 내용들 #include<stdio.h> //standardi...

2020-02-02 c언어 기초강의 배우기 [내부링크]

https://skyvvv624.blog.me/221133062439 그동안 배웠던 것들 전처리기: 컴파일러가 컴파일 하기 전에 먼...

완벽한 공부법 부분 내용 정리-단기 기억 [내부링크]

오늘 읽은 내용은 기억에 관한 내용이다. 단기 기억(작업 기억)과 장기 기억으로 나뉘는데, 단기 기억(작업...

완벽한 공부법 부분 내용 정리-장기 기억 [내부링크]

장기 기억 역시 단기 기억(작업 기억)처럼 정보를 분류해서 저장을 한다. 많은 사람들이 장기 기억을 하기 ...

자료형 복습 [내부링크]

자료형이란? 변수를 저장하는 형태를 말한다. 여러가지가 있는데 CPU가 가장 좋아하는 자료형은 int 이...

printf 서식 문자 복습 [내부링크]

printf 함수에서 변수를 출력할 때에는 서식 문자를 사용해야 한다. 예시) #include int main(void) {  int ...

완벽한 공부법 부분 내용 정리-기억 전략:장기 기억을 위한 최상의 방법 [내부링크]

지난번에 쓴 내용 정리에는 장기 기억을 위해서는 시험과 내용 정리, 토론 등의 활동이 효과적이라고 했다....

[No.513] Language Coder-입력-자가진단5 [내부링크]

문제 1야드(yd)는 91.44cm이고 1인치(in)는 2.54cm이다. 2.1야드와 10.5인치를 각각 cm로 변환하여 다음 형...

완벽한 공부법 내용 정리-목표 [내부링크]

목표는 정말 중요한 역할을 한다. 같은 일을 하더라도 목표가 있는 사람과 목표가 없는 사람의 차이는 크게...

완벽한 공부법 부분 내용 정리-동기 [내부링크]

동기는 행동을 실현시키고 지속시키는 역할을 한다. 그래서 이 동기는 공부에 있어 아주 중요하다고 할 수 ...

완벽한 공부법 부분 내용 정리-노력 [내부링크]

미국 뉴욕 타임즈에서 이런 기사가 나온 적 있다. 어떤 분야에서 대가가 되는 것은 노력보다 재능이 더 크...

[No.516] Language Coder-입력-자가진단8 [내부링크]

문제 실수 2개와 한 개의 문자를 입력 받아 출력하되 실수는 반올림하여 소수 둘째자리까지 출력하는 프로...

완벽한 공부법 부분 내용 정리-감정 [내부링크]

'이성은 감정의 노예다'라는 말이 있듯이 사람의 감정은 의사결정을 하는 데 있어 매우 중요한 ...

완벽한 공부법 부분 내용 정리-사회성 [내부링크]

인간이 사회적 동물이라는 것에 이견은 없을 것이다. 지구를 인간이 정복할 수 있었던 것은 이 사회성 때문...

완벽한 공부법 부분 내용 정리-몸 [내부링크]

'잠을 줄이고 공부해!', '공부할 시간도 부족한데 운동할 시간이 어딨어?' 우리는 흔...

[No.517] Language Coder-입력-자가진단9 [내부링크]

문제 세 개의 실수를 입력 받아 반올림하여 소수 셋째 자리까지 출력하는 프로그램을 작성하시오. 내가 짠 ...

[No.106] Language Coder - 입력 - 형성평가1 [내부링크]

문제 세 개의 정수형 변수를 선언하고 각 변수에 10 20 30을 대입한 후 그 변수를 이용하여 출력 예와 같이...

[No.108] Language Coder - 입력 - 형성평가3 [내부링크]

문제 정수형 변수 한 개를 선언하여 50을 대입하고 실수형 변수 한 개를 선언하여 100.12를 대입한 후 다음...

[No.109] Language Coder - 입력 - 형성평가4 [내부링크]

문제 세 개의 정수를 입력받아 합과 평균을 출력하는 프로그램을 작성하시오.(단 평균은 소수 이하를 버림...

완벽한 공부법 부분 내용 정리 - 환경 [내부링크]

습관은 자신이 생각하기도 전에 행동하는 것을 말한다. 그래서 습관은 장점이 될 수도, 단점이 될 수도 있...

[No.521] Language Coder - 연산자 - 자가진단4 [내부링크]

틀린 횟수: 3번 (1번은 ;실수로 인한 컴파일 오류) 문제 두 개의 정수를 입력받아 각각 후치 증가 연산자와...

[No.522] Language Coder - 연산자 - 자가진단5 [내부링크]

(몰라서 못풀었다는 표시임) 문제 두 개의 정수를 입력받아서, 첫 번째 줄에는 두 정수의 값이 같으면 1 ...

완벽한 공부법 부분 내용 정리 - 창의성 [내부링크]

사람들은 보통 창의성을 대단하다고 생각하지만 사실은 그렇지 않다. 왜냐하면 창의성은 배울 수 있기 때문...

인간관계론 부분 내용 정리 - 꿀을 얻으려면 벌집을 건드리지 말라 [내부링크]

에이브러햄 링컨은 사람을 아주 잘 부리는 대통령으로 불린다. 그의 비결은 뭘까? 바로 사람을 대할 때 절...

인간관계론 부분 내용 정리 - 상대방의 관점에서 사물을 보지 못하면 외로운 길을 가리라 [내부링크]

살아가다 보면 누군가를 설득 시켜야 할 상황이 오게 된다. 부모가 아이의 잘못된 점을 고쳐주고 싶어 한다...

인간관계론 부분 내용 정리 - 어디서나 환영받는 사람이 되는 비결 [내부링크]

사실 우리는 주변에 둘러보면 사람들에게 인기가 많은 사람을 볼 수 있을 것이다. 그 사람의 비결은 무엇일...

C언어 연산자 복습 [내부링크]

https://blog.naver.com/skyvvv624/221057312098 C언어의 연산자는 산술 연산자, 비교/관계 연산자, 논리 ...

[No.526] Language Coder - 디버깅 - 자가진단1 [내부링크]

(몰라서 못풀었다는 표시임) 문제 2개의 실수(double)를 입력 받아서 두 수의 곱을 정수로 변환한 결과값...

[No.116] Language Coder - 디버깅 - 형성평가1 [내부링크]

문제 정수로 된 3과목의 점수를 입력받아 평균을 구한 후 반올림하여 소수 첫째자리까지 출력하는 프로그램...

[No.117] Language Coder - 디버깅 - 형성평가2 [내부링크]

문제 실수로 된 3과목의 점수를 입력받아 총점은 정수부분의 합계를 출력하고 평균은 실수의 평균을 구한 ...

[No.533] Language Coder - 선택제어문 - 자가진단6 [내부링크]

문제 남자는 'M' 여자는 'F'로 나타내기로 하고 18세 이상을 성인이라고 하자. 성별...

[No.539] Language Coder - 반복제어문 - 자가진단4 [내부링크]

문제 정수를 계속 입력받다가 100 이상의 수가 입력이 되면 마지막 입력된 수를 포함하여 합계와 평균을 출...

[No.126] Language Coder - 반복제어문 - 형성평가2 [내부링크]

문제 0 이상의 정수들이 공백으로 구분되어 반복적으로 주어진다. 0이 입력되면 반복문을 멈추고 그 전까지...

[No.127] Language Coder - 반복제어문 - 형성평가3 [내부링크]

문제 0 부터 100 까지의 점수를 계속 입력받다가 범위를 벗어나는 수가 입력되면 그 이전까지 입력된 자료...

[No.127] Language Coder - 반복제어문3 - 자가진단5(Accepted 20) [내부링크]

문제 자연수 n을 입력받아서 다음과 같이 출력하는 프로그램을 작성하시오. 내가 짠 코드 #include<stdi...

[No.572] Language Coder - 함수1 - 자가진단2 [내부링크]

문제 반지름의 길이를 전달받아 넓이를 출력하는 함수를 작성하고 반지름의 길이를 입력받아 함수를 호출하...

[No.143] Language Coder - 반복제어문3 - 형성평가4 [내부링크]

문제 자연수 n을 입력받아 "출력 예"와 같이 출력되는 프로그램을 작성하시오. 주의! '*&#x...

[No.139] Language Coder - 반복제어문2 - 형성평가A(Accepted 90) [내부링크]

문제 2부터 9까지의 수 중 2개를 입력받아 입력받은 수 사이의 구구단을 출력하는 프로그램을 작성하시오. ...

[No.140] Language Coder - 반복제어문3 - 형성평가1(Accepted 10) [내부링크]

문제 정수 20 개를 입력받아서 그 합과 평균을 출력하되 0 이 입력되면 20개 입력이 끝나지 않았더라도 그 ...

[No.145] Language Coder - 반복제어문3 - 형성평가6(Accepted 10) [내부링크]

문제 자연수 n을 입력받아 "출력 예"와 같이 공백으로 구분하여 출력하는 프로그램을 작성하시오...

[No.146] Language Coder - 반복제어문3 - 형성평가7(Accepted 70) [내부링크]

문제 자연수 n(n≤6)을 입력받아 "출력 예"와 같이 공백으로 구분하여 출력되는 프로그램을 작성...

[No.561 Language Coder - 배열1 - 자가진단7(Accepted 60) [내부링크]

문제 10개의 정수를 입력받아 100 미만의 수 중 가장 큰 수와 100 이상의 수 중 가장 작은 수를 출력하는 ...

[No.563] Language Coder - 배열1 - 자가진단9(Accepted 80) [내부링크]

문제 10개의 정수를 입력받아 배열에 저장한 후 내림차순으로 정렬하여 출력하시오. 내가 짠 코드 #include...

[No.153] Language Coder - 배열1 - 형성평가4(Accepted 80) [내부링크]

문제 100개의 정수를 입력받을 수 있는 배열을 선언한 후 정수를 차례로 입력 받다가 -1이 입력되면 입력을...

[No.157] Language Coder - 배열1 - 형성평가8(wrong answer 0) [내부링크]

문제 100 개 이하의 정수를 입력받다가 0 이 입력되면 그 때까지 입력된 정수 중 5의 배수의 개수와 합계 ...

[No.161] Language Coder - 배열2 - 형성평가2(Accepted 10) [내부링크]

문제 학생들의 점수를 입력을 받다가 0이 입력되면 그 때까지 입력받은 점수를 10점 단위로 구분하여 점수...

[No.167] Language Coder - 배열2 - 형성평가8 [내부링크]

문제 4행 2열의 배열을 입력받아 가로평균과 세로평균 그리고 전체평균을 출력하는 프로그램을 작성하시오....

[No.574] Language Coder - 함수1 - 자가진단4 [내부링크]

문제 세 개의 정수를 전달받아 최대값을 구하여 리턴하는 함수를 작성하고, 세 정수를 입력받아 최대값을 ...

[No.576] Language Coder - 함수1 - 자가진단6 [내부링크]

문제 정수의 연산식을 입력받아 연산을 위한 함수를 호출하여 4칙연산(+ - * /)의 연산결과를 출력하는 프...

[No.578] Language Coder - 함수1 - 자가진단8(Accepted 60) [내부링크]

문제 10 이하의 두 개의 양의 정수를 입력받아서 작은 수부터 큰 수까지의 구구단을 차례대로 출력하는 프...

[No.592] Language Coder - 함수3 - 자가진단6(중요할 것 같은 문제) [내부링크]

문제 9자리 이하의 자연수를 입력받아 재귀함수를 이용하여 각 자리 숫자의 제곱의 합을 출력하는 프로그램...

[No.590] Language Coder - 함수3 - 자가진단5(역대급 어려운 문제) [내부링크]

문제 10 이하의 자연수 N을 입력받아 주사위를 N번 던져서 나올 수 있는 모든 경우를 출력하되 중복되는 ...

[No.591] Language Coder - 함수3 - 자가진단6 [내부링크]

문제 첫 번째 수는 1이고 N번째 수는 (N/2)번째 수(파이썬인경우 N//2번째)와 (N-1)번째 수의 합으로 ...

[No.233] Language Coder - 함수3 - 형성평가3(Time Limit Exceed 90) [내부링크]

문제 자연수 N과 M을 입력받아서 주사위를 N번 던져서 나온 눈의 합이 M이 나올 수 있는 모든 경우를 ...

[No.236] Language Coder - 함수3 - 형성평가6 [내부링크]

문제 3자리로 이루어진 자연수 3개를 입력받아 그 수들의 곱을 구한 후 그 결과값의 각 자리 숫자들중 0을 ...

[No.596] Language Coder - 문자열1 - 자가진단4 [내부링크]

문제 문자열을 입력받고 정수를 입력 받아서 문자열의 맨 뒤부터 정수만큼 출력하는 프로그램을 작성하시오...

[No.599] Language Coder - 문자열1 - 자가진단7(Accepted 60) [내부링크]

문제 문자열을 입력받아 알파벳 문자만 모두 대문자로 출력하는 프로그램을 작성하시오. 문자열의 길이는 1...

[No.601] Language Coder - 문자열1 - 자가진단9(Wrong Answer ) [내부링크]

문제 문자열을 입력 받아서 문자수만큼 오른쪽으로 한 바퀴 회전하여 출력하는 프로그램을 작성하시오. 문...

[No.187] Language Coder - 문자열1 - 형성평가6 [내부링크]

문제 문자열(100자 이하)을 입력받은 후 정수를 입력받아 해당위치의 문자를 제거하고 출력하는 작업을 반...

[No.188] Language Coder - 문자열1 - 형성평가7(Wrong Answer) [내부링크]

문제 공백을 포함한 문자열을 입력받아 다음과 같이 분리하여 번호와 함께 출력하는 프로그램을 작성하시오...

[No.604] Language Coder - 문자열2 - 자가진단3(Success) [내부링크]

문제 20개 이하의 문자로 이루어진 10개의 단어와 한 개의 문자를 입력받아서 마지막으로 입력받은 문자로 ...

[No.608] Language Coder - 문자열2 - 자가진단7(Wrong Answer) [내부링크]

문제 100개 이하의 문자로 구성된 한 개의 문자열을 입력받아서 그 문자열에 문자 'c'와 문자열 ...

[No.609] Language Coder - 문자열2 - 자가진단8(너무 어렵다) [내부링크]

문제 세 개의 단어를 입력받아 아스키코드(사전) 순으로 가장 먼저 나오는 단어를 출력하는 프로그램을 작...

[No.612] Language Coder - 문자열2 - 자가진단B(Success) [내부링크]

문제 5개의 정수를 입력받아 모두 붙여서 문자열로 저장한 후 세 자씩 나누어서 출력하는 프로그램을 작성...

[No.193] Language Coder - 문자열2 - 형성평가5 [내부링크]

문제 5개의 단어(각 단어는 100자 이하)를 입력받은 후 문자와 문자열(100자 이하)을 한 개씩 입력받아 나...

[No.216] Language Coder - 문자열2 - 자가진단8(Wrong Answer) [내부링크]

문제 한 개의 단어를 입력받아서 거꾸로 뒤집어 출력하는 작업을 반복하다가 "END"라고 입력...

[No.237] Language Coder - 문자열2 - 형성평가9(Accepted 50) [내부링크]

문제 정수, 실수, 문자열을 차례로 입력받아서 새로운 문자열에 출력한 후 전체의 길이를 2등분하여 출력하...

[No.617] Language Coder - 구조체 - 자가진단5 [내부링크]

문제 5명의 이름과 키를 입력받아 키가 가장 작은 사람의 이름과 키를 출력하는 프로그램을 작성하시오. 이...

[No.618] Language Coder - 구조체 - 자가진단6(Success) [내부링크]

문제 5명의 이름과 키, 몸무게를 입력받아 이름순으로 정렬하여 출력하고, 몸무게가 무거운 순으로 정렬하...

[No.623] Language Coder - 포인터 - 자가진단5 [내부링크]

문제 실수 5개를 원소로 하는 배열을 선언하고 포인터 변수를 이용하여 입력과 출력을 실행하는 프로그램을...

[No.624] Language Coder - 포인터 - 자가진단6 [내부링크]

문제 배열의 크기를 입력받아 입력받은 크기만큼 실수 배열을 생성하고 배열의 원소를 입력받은 후 입력받...

[No.626] Language Coder - 파일입출력 - 자가진단1 [내부링크]

문제 두 개의 정수를 입력받아 작은 수부터 큰 수까지 모든 정수의 합을 구하여 출력하는 프로그램을 작성...

[No.628] Language Coder - 파일입출력 - 자가진단3(Accepted 20) [내부링크]

문제 10명의 학생 이름과 점수를 입력받아 이름과 점수, 등수를 입력받은 순서대로 출력하는 프로그램을 작...

[No.629] Language Coder - 파일입출력 - 자가진단4(Wrong Answer) [내부링크]

문제 공백을 포함한 문자열을 두 번 입력받아 길이가 작은 문자열과 긴 문자열의 순으로 출력하는 프로그램...

[No.630] Language Coder - 파일입출력 - 자가진5(Wrong Answer) [내부링크]

문제 100이하의 정수 N을 입력받은 후 공백이 포함된 N행의 문장을 입력받아서 역순으로 출력하는 프로그...

명품 C++ programming 실습 문제 4장 1번 [내부링크]

문제 다음은 색의 3요소인 red, green, blue로 색을 추상화한 Color 클래스를 선언하고 활용하는 코드이다...

명품 C++ programming 실습 문제 4장 2번 [내부링크]

문제 정수 공간 5개를 배열로 동적 할당받고, 정수를 5개 입력받아 평균을 구하고 출력한 뒤 배열을 소멸시...

명품 C++ programming 실습 문제 4장 3번 [내부링크]

문제 string 클래스를 이용하여 빈칸을 포함하는 문자열을 입력받고 문자열에서 'a'가 몇개 있는지 출력하...

명품 C++ programming 실습 문제 4장 4번 [내부링크]

문제 : 다음과 같은 Sample 클래스가 있다. 123456789101112class Sample{  int *p; int size;public: Sa...

명품 C++ programming 실습 문제 4장 5번 [내부링크]

문제 : string 클래스를 이용하여 사용자가 입력한 영문 한 줄을 입력받고 글자 하나만 랜덤하게 수정하여 ...

명품 C++ programming 실습 문제 4장 6번 [내부링크]

문제 string 클래스를 이용하여 사용자가 입력한 영문 한 줄을 문자열로 입력받고 거꾸로 출력하는 프로그...

명품 C++ programming 실습 문제 4장 7번 [내부링크]

문제 : 다음과 같이 원을 추상화한 Circle 클래스가 있다. Circle 클래스와 main() 함수를 작성하고 3개...

명품 C++ programming 실습 문제 4장 8번 [내부링크]

문제 실습 문제 7의 문제를 수정해보자. 사용자로부터 다음과 같이 원의 개수를 입력받고, 원의 개수만큼 ...

명품 C++ programming 실습 문제 4장 9번(보류) [내부링크]

문제 다음과 같은 Person 클래스가 있다. Person 클래스와 main() 함수를 작성하여, 3개의 Person 객체...

명품 C++ programming 실습 문제 4장 9번 [내부링크]

문제 문제 : 다음에서 Person은 사람을, Family는 가족을 추상화한 클래스로서 완성되지 않은 클래스이다...

명품 C++ programming 실습 문제 4장 10번 [내부링크]

문제 다음은 커피자판기로 작동하는 프로그램을 만들기 위해 필요한 두 클래스이다. 123456789101112131415...

명품 C++ programming 실습 문제 4장 12번 [내부링크]

문제 다음은 이름과 반지름을 속성으로 가진 Circle 클래스와 이들을 배열로 관리하는 CircleManager 클...

명품 C++ programming 실습 문제 4장 12번 헤멘 부분 (1시간동안) [내부링크]

헤멘 부분(거의 1시간동안) 원의 개수 >> 4 원 1의 이름과 반지름 >> 빈대떡 10 원 2의 이름과...

명품 C++ programming 실습 문제 4장 13번(다시 복습할것!) [내부링크]

문제 문제 : 영문자로 구성된 텍스트에 대해 각 알파벳에 해당하는 문자가 몇 개인지 출력하는 히스토그램 ...

명품 C++ programming 실습 문제 4장 14번 [내부링크]

문제 문제 : 겜블링 게임을 만들어보자. 두 사람이 게임을 진행하며, 선수의 이름을 초기에 입력 받는다. ...

명품 C++ programming 실습 문제 4장 Open Challenge [내부링크]

문제 n명이 하는 한글 끝말잇기 게임을 작성해보자. 아래의 결과와 같이 선수의 수를 입력받고, 선수 각 사...

명품 C++ programming 실습 문제 5장 1번 [내부링크]

문제 두 개의 Circle 객체를 교환하는 swap() 함수를 '참조에 의한 호출'이 되도록 작성하고 호출하는 프...

명품 C++ programming 실습 문제 5장 2번 [내부링크]

문제 다음 main() 함수와 실행 결과를 참고하여 half() 함수를 작성하라. 12345int main() {  double n = 20...

명품 C++ programming 실습 문제 5장 3번 [내부링크]

문제 다음과 같이 작동하도록 combine() 함수를 작성하라. 123456int main() {  string text1("I love you"...

명품 C++ programming 실습 문제 5장 4번 [내부링크]

문제 아래와 같이 원형이 주어진 bigger()를 작성하고 사용자로부터 2개의 정수를 입력받아 큰 값을 출력하...

명품 C++ programming 실습 문제 5장 5번 [내부링크]

문제 다음 Circle 클래스가 있다. 12345678class Circle{  int radius;public: Circle(int r) { radius =r...

명품 C++ programming 실습 문제 5장 6번 [내부링크]

문제 find() 함수의 원형은 다음과 같다. 문자열 a에서 문자 c를 찾아, 문자 c가 있는 공간에 대한 참조를 ...

명품 C++ programming 실습 문제 5장 7번 [내부링크]

문제 다음과 같이 선언된 정수를 저장하는 스택 클래스 MyIntStack을 구현하라. MyIntStack 스택에 ...

명품 C++ programming 실습 문제 5장 8번 [내부링크]

문제 문제 : 문제 7번의 MyIntStack을 수정하여 다음과 같이 선언하였다. 스택에 저장할 수 있는 정수의...

명품 C++ programming 실습 문제 5장 9번 [내부링크]

문제 클래스 Accumulator는 add() 함수를 통해 계속 값을 누적하는 클래스로서, 다음과 같이 선언된다. A...

명품 C++ programming 실습 문제 5장 10번 [내부링크]

문제 참조를 리턴하는 코드를 작성해보자. 다음 코드와 실행 결과를 참고하여 append() 함수를 작성하고 전...

명품 C++ programming 실습 문제 5장 11번 [내부링크]

문제 책의 이름과 가격을 저장하는 다음 Book 클래스에 대해 물음에 답하여라. 123456789class Book {  ch...

명품 C++ programming 실습 문제 5장 12번 [내부링크]

문제 다음은 학과를 나타내는 Dept 클래스와 이를 활용하는 main()을 보여 준다. 1234567891011121314clas...

명품 C++ programming 5장 Open Challenge(절반밖에 구현 못했음) [내부링크]

문제 영문 텍스트와 모스(Morse) 부호 변환기 아래 <표 5-1>을 참고하여 영문 텍스트, 숫자, 몇 개...

명품 C++ programming 실습 문제 6장 1번 [내부링크]

문제 add() 함수를 호출하는 main() 함수는 다음과 같다. 12345678int main() {  int a[] = { 1,2,3,4,5} ; in...

명품 C++ programming 실습 문제 6장 2번 [내부링크]

문제 Person 클래스의 객체를 생성하는 main() 함수는 다음과 같다. 1234567891011121314class Person {  ...

명품 C++ programming 실습 문제 6장 3번 [내부링크]

문제 함수 big()을 호출하는 경우는 다음과 같다. 123456int main() {  int x = big(3, 5); // 3과 5중 큰 ...

명품 C++ programming 실습 문제 6장 4번 [내부링크]

문제 다음 클래스에 중복된 생성자를 디폴트 매개 변수를 가진 하나의 생성자로 작성하고 테스트 프로그램...

명품 C++ programming 실습 문제 6장 5번 [내부링크]

문제 문제 : 동일한 크기로 배열을 변환하는 다음 2개의 static 멤버 함수를 가진 ArrayUtility 클래스를...

명품 C++ programming 실습 문제 6장 6번(코드가 좀 난잡한듯) [내부링크]

문제 동일한 크기의 배열을 변환하는 다음 2개의 static 멤버 함수를 가진 ArrayUtiliry2 클래스를 만들...

명품 C++ programming 실습 문제 6장 7번 [내부링크]

문제 다음과 같은 static 멤버를 가진 Random 클래스를 완성하라(Open Challenge 힌트 참고). 그리고 R...

명품 C++ programming 실습 문제 6장 9번 [내부링크]

문제 게시판 프로그램을 작성해보자. 멀티태스킹의 경우 여러 사용자들이 게시판에 글을 올리기 때문에 게...

명품 C++ programming 실습 문제 6장 Open Challenge [내부링크]

문제 Up & Down 게임 프로그램을 작성해보자. 게임에 참석하는 사람은 2명이며, 번갈아 가며 다음과 ...

명품 C++ programming 실습 문제 7장 1번 [내부링크]

문제 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1234567891011121314class Book{  strin...

명품 C++ programming 실습 문제 7장 2번 [내부링크]

문제 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1234567891011121314class Book{  strin...

명품 C++ programming 실습 문제 7장 3번 [내부링크]

문제 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1234567891011121314class Book{  strin...

명품 C++ programming 실습 문제 7장 4번 [내부링크]

문제 1번 ~ 4번 문제까지 사용될 Book 클래스는 다음과 같습니다. 1234567891011121314class Book{  strin...

명품 C++ programming 실습 문제 7장 5번 [내부링크]

문제 다음 main()에서 Color 클래스는 3요소(빨강, 초록, 파랑)로 하나의 색을 나타내는 클래스이다(4장 ...

명품 C++ programming 실습 문제 7장 6번 [내부링크]

문제 2차원 행렬을 추상화한 Matrix 클래스를 작성하고, show() 멤버 함수와 다음 연산이 가능하도록 연산...

명품 C++ programming 실습 문제 7장 7번 [내부링크]

문제 2차원 행렬을 추상화한 Matrix 클래스를 활용하는 다음 코드가 있다. 12345678 Matrix a(4,3,2,1), ...

명품 C++ programming 실습 문제 7장 8번 [내부링크]

문제 원을 추상화한 Circle 클래스는 간단히 아래와 같다. 123456class Circle{  int radius;public: Cir...

명품 C++ programming 실습 문제 7장 9번 [내부링크]

문제 문제 8번의 Circle 객체에 대해 다음 연산이 가능하도록 연산자를 구현하라. 1234 Circle a(5), b(4...

명품 C++ programming 실습 문제 7장 10번 [내부링크]

문제 통계를 내는 Statistics 클래스를 만들려고 한다. 데이터는 Statistics 클래스 내부에 int 배열을 ...

명품 C++ programming 실습 문제 7장 11번 [내부링크]

문제 스택 클래스 Stack을 만들고 푸시(push)용으로 << 연산자를, 팝(pop)을 위해 >> 연산자...

명품 C++ programming 실습 문제 7장 12번(틀림)(나중에 한 번 더 풀어보자) [내부링크]

문제 정수 배열을 항상 증가 순으로 유지하는 SortedArray 클래스를 작성하려고 한다. 아래의 main() 함...

명품 C++ programming 7장 OpenChallenge [내부링크]

문제 히스토그램을 표현하는 Histogram 클래스를 만들고 <<, ! 연산자를 작성해보자. Histogram 클...

명품 C++ programming 8장 실습문제 1번 [내부링크]

문제 문제 1~2에 적용되는 원을 추상화한 Circle 클래스가 있다. 12345678class Circle{  int radius;publ...

명품 C++ programming 8장 실습문제 2번 [내부링크]

문제 문제 1~2에 적용되는 원을 추상화한 Circle 클래스가 있다. 12345678class Circle{  int radius;publ...

명품 C++ programming 8장 실습문제 3번 [내부링크]

문제 문제 3~4에 적용되는 2차원 상의 한 점을 표현하는 Point 클래스가 있다. 123456789class Point {  i...

명품 C++ programming 8장 실습문제 4번 [내부링크]

문제 문제 3~4에 적용되는 2차원 상의 한 점을 표현하는 Point 클래스가 있다. 123456789class Point {  i...

명품 C++ programming 8장 실습문제 5번 [내부링크]

문제 문제 5~6에 적용되는 BaseArray 클래스는 다음과 같다. 123456789101112class BaseArray {  int ca...

명품 C++ programming 8장 실습문제 6번 [내부링크]

문제 문제 5~6에 적용되는 BaseArray 클래스는 다음과 같다. 123456789101112class BaseArray {  int ca...

명품 C++ programming 8장 실습문제 7번(다시 풀어보자) [내부링크]

문제 아래와 같은 BaseMemory 클래스를 상속받는 ROM(Read Only Memory), RAM 클래스를 작성하...

명품 C++ programming 8장 실습문제 8번(빼먹은게 많아서 다시 풀어봐야할듯) [내부링크]

문제 다음 그림과 같은 상속 구조를 갖는 클래스를 설계한다. 모든 프린터는 모델명(model), 제조사(manufa...

명품 C++ programming 8장 실습문제 9번(보류) [내부링크]

문제 비행기 예약 프로그램을 작성하라. 이 문제는 여러 개의 클래스와 객체들을 다루는 연습을 위한 것이...

명품 C++ programming 8장 Open Challenge(보류) [내부링크]

문제 다음과 같은 상속 관계를 가진 Product, Book, CompactDisk, ConversationBook 클래스를 작성하...

명품 C++ programming 9장 실습문제 1번 [내부링크]

문제 다음은 단위를 변환하는 추상 클래스 Converter이다. 12345678910111213141516171819#include<ios...

명품 C++ programming 9장 실습문제 2번 [내부링크]

문제 다음은 단위를 변환하는 추상 클래스 Converter이다. 12345678910111213141516class Converter { pro...

명품 C++ programming 9장 실습문제 3번 [내부링크]

문제 다음 추상 클래스 LoopAdder가 있다. 12345678910111213141516171819202122232425262728293031class...

명품 C++ programming 9장 실습문제 4번 [내부링크]

문제 다음 추상 클래스 LoopAdder가 있다. 12345678910111213141516171819202122232425262728293031class...

명품 C++ programming 9장 실습문제 5번 [내부링크]

문제 디지털 회로에서 기본적인 게이트로 OR 게이트, AND 게이트, XOR 게이트 등이 있다. 이들은 ...

명품 C++ programming 10장 실습문제 9번 [내부링크]

문제 STL의 vector 클래스를 이용하는 간단한 프로그램을 작성해보자. vector 객체를 생성하고, 키보드로부터 정수를 입력받을 때마다 정수를 벡터에 삽입하고 지금까지 입력된 수와 평균을 출력한느 프로그램을 작성하라. 0을 입력하면 프로그램이 종료된다. 실행 결과 : 정수만 다루는 벡터이므로 vector<int> v;를 이용하면 된다. iterator를 사용할 필요는 없다. 내가 짠 코드 #include<iostream>#include<vector>using namespace std;int main() { vector<int> v; int input=0; while (true) { int sum = 0; cout << "정수를 입력하세요(0을 입력하면 종료)>>"; cin >> input; if (input == 0) b.......

명품 C++ programming 10장 실습문제 10번 [내부링크]

문제 나라의 수도 맞추기 게임에 vector를 활용해보자. 나라 이름(nation)과 수도(capital) 문자열로 구성된 Nation 클래스를 만들고, vector<Nation> v;로 생성한 벡터를 이용하여 나라 이름과 수도 이름을 삽입할 수도 있고 랜덤하게 퀴즈를 볼 수도 있다. 프로그램 내에서 벡터에 Nation 객체를 여러 개 미리 삽입하여 퀴즈를 보도록 하라. 실행 화면은 다음과 같으며, 저자는 9개 나라의 이름과 수도를 미리 프로그램에서 삽입하였다. 문자열은 string 클래스를 이용하라. 실행 결과 : 내가 짠 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676.......

명품 C++ programming 10장 실습문제 11번 [내부링크]

문제 책의 년도, 책이름, 저자 이름을 담은 Book 클래스를 만들고, vector<Book> v;로 생성한 벡터를 이용하여 책을 입고하고, 저자와 년도로 검색하는 프로그램을 작성하라. 실행 결과 : 내가 짠 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include<iostream>#include<string>#include<vector>using namespace std; class Book { int year; string name; string author;public: Book(){} Book(int year, string name, string author){ this->year = year; this->name = name; this->author = author; } int getYear() { return .......

명품 C++ programming 10장 Open Challenge(최적화 필요) [내부링크]

문제 영어 어휘 테스트 프로그램 작성 영어 단어의 뜻 맞추기 게임을 만들어 보자. 영어 단어와 한글 단어로 구성되는 Word 클래스를 작성하고, vector<Word> v;로 벡터를 생성하고, 프로그램 내에서 여러 개의 Word 객체를 벡터에 삽입해 둔다. 그리고 다음 화면과 같이 랜덤하게 사용자에게 문제를 던지며, 4개의 한글 보기를 출력한다. 4개의 보기 중 정답을 제외한 3개는 벡터에 있는 단어 중에서 랜덤하게 선택한다. 이문제에서 iterator는 사용할 필요 없다. 실행 결과 영어 어휘 테스트를 시작합니다. 1~4 외 다른 입력시 종료합니다. human? (1) 아기 (2) 인간 (3) 사회 (4) 사진 :>2 Excellent !! society? (1) 아기 (2) 그림.......

명품 C++ programming 10장 실습문제 12번(뭔가 이상해서 다시 풀어봐야 할 듯) [내부링크]

문제 Open Challenge를 수정하여 사용자가 어휘를 삽입할 수 있도록 기능을 추가하라. 실행 결과는 다음과 같다. 실행 결과 : 내가 짠 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131#include<iostream>#include<string>#include<vector>#include<ctime>#include<cstdlib>using namespace std; class Word { string hanguel; string english;public:.......

명품 C++ programming 10장 실습문제 13번 [내부링크]

문제 map 컨테이너를 이용하여 (이름, 성적)을 저장하고 이름으로 성적을 조회하는 점수 관리 프로그램을 만들어라. 이름은 빈칸 없이 입력하는 것을 원칙으로 한다. 실행 결과 : 힌트:이름과 점수를 쌍으로 저장할 맵 컨테이너로 map<string, int>를 이용하면 된다. 예제 10-12를 참고하라. 내가 짠 코드 #include<iostream>#include<map>using namespace std;int main() { map<string, int> m; int input = 0; string name; int score = 0; cout << "***** 점수관리 프로그램 HIGH SCORE을 시작합니다 *****" << endl; while (true) { cout << "입력:1, 조회:2, 종료:3 >> "; cin >> in.......

명품 C++ programming 10장 실습문제 5번 [내부링크]

문제 다음 함수는 매개 변수로 주어진 두 개의 int 배열을 연결한 새로운 int 배열을 동적 할당받아 리턴한다. 1int * concat(int a[], int sizea, int b[], int sizeb); concat가 int 배열뿐 아니라 다른 타입의 배열도 처리할 수 있도록 일반화하라. 내가 짠 코드 #include<iostream>using namespace std;template<class T>T* concat(T a[], int sizea, T b[], int sizeb) { T* connect = new T[sizea + sizeb]; for (int i = 0; i < sizea; i++) { connect[i] = a[i]; } for(int i = sizea; i < sizea+sizeb; i++) { connect[i] = b[i - sizea]; } return connect;}int main() { double arr[5] = { 1.1, 2.2, 3.3, 4.4, 5.5.......

명품 C++ programming 10장 실습문제 6번 [내부링크]

문제 다음 함수는 매개 변수로 주어진 int 배열 src에서 배열 minus에 들어있는 같은 정수를 모두 삭제한 새로운 int 배열을 동적으로 할당받아 리턴한다. retSize는 remove() 함수의 실행 결과를 리턴하는 배열의 크기를 전달받는다. 1int * remove(int src[], int sizeSrc, int minus[], int sizeMinus, int& resSize); 템플릿을 이용하여 remove를 일반화하라. 내가 짠 코드 #include<iostream>using namespace std;template<class T>T* remove(T src[], int sizeSrc, T minus[], int sizeMinus, int& retSize) { int cnt = 0; for (int i = 0; i < sizeMinus; i++) { for (int j = 0; j < sizeSrc; j++) { if (src.......

명품 C++ programming 10장 실습문제 7번 [내부링크]

문제 다음 프로그램은 컴파일 오류가 발생한다. 소스의 어디에서 왜 컴파일 오류가 발생하는가? 123456789101112131415161718192021222324#include <iostream>using namespace std; class Circle { int radius;public: Circle(int radius = 1) { this->radius = radius; } int getRadius() { return radius; }}; template <class T>T bigger(T a, T b) { // 두 개의 매개 변수를 비교하여 큰 값을 리턴 if (a > b) return a; else return b;} int main() { int a = 20, b = 50, c; c = bigger(a, b); cout << "20과 50중 큰 값은 " << c << endl; Circle waffle(10), pizza(20), y; y = bigger(waffle, pizz.......

명품 C++ programming 10장 실습문제 8번 [내부링크]

문제 문제 : 문제 7을 푸는 다른 방법을 소개한다. bigger() 함수의 다음 라인에서 > 연산자 때문에 1if(a > b) return a; T에 Circle과 같은 클래스 타입이 대입되면, 구체화가 실패하여 컴파일 오류가 발생한다. 이 문제를 해결하기 위해 다음과 같은 추상 클래스 Comparable을 제안한다. 123456class Comparable {public: virtual bool operator > (Comparable& op2) = 0; // 순수 가상 함수 virtual bool operator < (Comparable& op2) = 0; // 순수 가상 함수 virtual bool operator == (Comparable& op2) = 0; // 순수 가상 함수}; Circle 클래스가 Comparable을 상속받아 순수 가상 함수를 모두 구현하면, 앞의 b.......

명품 C++ programming 9장 실습문제 9번 [내부링크]

문제 다음 그림과 같은 상속 구조를 갖는 클래스를 설계한다. 모든 프린터는 모델명(model), 제조사(manufacturer), 인쇄 매수(printedCount), 인쇄 종이 잔량(availableCount)을 나타내는 정보를 가진다. print(int pages) 함수와 show() 함수는 가상 함수로 구현하라. print(int pages)는 pages 만큼 프린트하는 함수이고, show() 함수는 현재 프린트의 모델, 제조사, 인쇄 매수, 인쇄 종이 잔량 등을 출력하는 함수이다. 잉크젯 프린터는 잉크 잔량(availableInk) 정보를 추가적으로 가지며, 레이저 프린터는 토너 잔량(availableToner) 정보를 추가적으로 가진다. 이들의 print(int pages) 멤버 함수는 프린터 타입에 맞게 구현하라. 각 클래.......

명품 C++ programming 9장 실습문제 10번(어렵다) [내부링크]

문제 간단한 그래픽 편집기를 콘솔 바탕으로 만들어보자. 그래픽 편집기의 기능은 "삽입", "삭제", "모두보기", "종료" 의 4가지이고, 실행 과정은 다음과 같다. 목적 및 힌트 : 추상 클래스, 상속 종합 응용 Shape과 이를 상속받은 Circle, Line,Rect 클래스는 [그림9-13]을 이용하고 필요한 클래스와 main() 함수를 작성하라. 전체 프로그램은 대략 아래와 같이 구성된다. 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511.......

명품 C++ programming 9장 Open Challenge [내부링크]

문제 게임에는 Human, Monster, Food의 세 객체가 등장하며, 이들은 10x20 격자판에서 각각 정해진 규칙에 의해 움직인다. Human 객체는 사용자의 키에 의해 왼쪽(a 키), 아래(s 키), 위(d 키), 오른쪽(f 키)으로 한 칸씩 움직이고, Monster는 한 번에 2칸씩, 왼쪽, 아래, 위, 오른쪽 방향으로 랜덤하게 움직인다. Food는 5번 중에 3번은 제자리에 있고, 나머지 2번은 4가지 방향 중 랜덤하게 한 칸씩 움직인다. 게임은 Human이 Monster를 피해 Food를 먹으면(Food의 위치로 이동) 성공으로 끝나고, Monster가 Food를 먹거나 Human이 Monster에게 잡히면 실패로 끝난다. 다음은 각 객체의 이동을 정의하는 move()와 각 객체의 모양을 정의하는 ge.......

명품 C++ programming 10장 실습문제 1번 [내부링크]

문제 배열을 받아 가장 큰 값을 리턴하는 제네릭 함수 biggest()를 작성하라. 또한 main() 함수를 작성하여 biggest()를 호출하는 몇 가지 사례를 보여라. biggest()를 호출하는 코드 사례는 다음과 같다. 12int x[] = {1, 10, 100, 5, 4};cout << biggest(x, 5) << endl; // 5는 배열 x의 크기. 100이 출력된다. 내가 짠 코드 #include<iostream>using namespace std;template<class T>T biggest(T *a, int b) { T max = 0; for (int i = 0; i < b; i++) { if (max < a[i]) max = a[i]; } return max;}int main() { int x[] = { 1, 10, 100, 5, 4 }; cout << biggest(x, 5) << endl; // 5는 배열 x의.......

명품 C++ programming 10장 실습문제 2번 [내부링크]

문제 두 개의 배열을 비교하여 같으면 true를, 아니면 false를 리턴하는 제네릭 함수 equalArrays()를 작성하라. 또한 main() 함수를 작성하여 equalArrays()를 호출하는 몇 가지 사례를 보여라. equalArrays()를 호출하는 코드 사례는 다음과 같다. 123456 int x[] = {1, 10, 100, 5, 4}; int y[] = {1, 10, 100, 5, 4}; if(equalArray(x, y, 5)) cout << "같다"; // 배열 x, y가 같으므로 "같다" 출력 else cout << "다르다"; 내가 짠 코드 #include<iostream>using namespace std;template<class T1, class T2>bool equalArray(T1 x[], T2 y[], int a){ for (int i = 0; i < a; i++) { if (x[i] != y[i]) return f.......

명품 C++ programming 10장 실습문제 3번 [내부링크]

문제 배열의 원소를 반대 순서로 뒤집는 reverseArray() 함수를 템플릿으로 작성하라. reverseArray()의 첫 번째 매개 변수는 배열에 대한 포인터이며 두 번째 매개 변수는 배열의 개수이다. reverseArray()의 호출 사례는 다음과 같다. 1234 int x[] = { 1, 10, 100, 5, 4}; reverseArray(x, 5); for(int i=0; i<5; i++) cout << x[i] << ' '; // 4 5 100 10 1이 출력된다. 내가 짠 코드 #include<iostream>using namespace std;template<class T>void reverseArray(T a[], int b) { T* temp = new T[b]; for (int i = 0; i < b; i++) { temp[i] = a[b-1-i]; } for (int i = 0; i < b; i++) { a[i] = temp[i];.......

명품 C++ programming 10장 실습문제 4번 [내부링크]

문제 배열에서 원소를 검색하는 search() 함수를 템플릿으로 작성하라. search()의 첫 번째 매개 변수는 검색하고자 하는 원소 값이고, 두 번째 매개 변수는 배열이며, 세 번째 매개 변수는 배열의 개수이다. search() 함수가 검색에 성공하면 true를, 아니면 false를 리턴한다. search()의 호출 사례는 다음과 같다. 123 int x[] = {1, 10, 100, 5, 4}; if(search(100, x, 5)) cout << "100이 배열 x에 포함되어 있다"; // 이 cout 실행 else cout << "100이 배열 x에 포함되어 있지 않다"; 내가 짠 코드 #include<iostream>using namespace std;template<class T>bool search(int value, T arr[], int size) { for (in.......

명품 C++ programming 9장 실습문제 6번 [내부링크]

문제 다음 AbstractStack은 정수 스택 클래스로서 추상 클래스이다. 1234567class AbstrackStack {public: virtual bool push(int n) = 0; // 스택에 n을 푸시한다. 스택이 full이면 false 리턴 virtual bool pop(int& n) = 0; // 스택에서 팝한 정수를 n에 저장하고 스택이 empty이면 false 리턴 virtual int size() = 0; // 현재 스택에 저장된 정수의 개수 리턴};Colored by Color Scripter 이를 상속받아 정수를 푸시, 팝하는 IntStack 클래스를 만들고 사용 사례를 보여라. 내가 짠 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<iostream>using namespace std.......

명품 C++ programming 9장 실습문제 7번 [내부링크]

문제 사각형에 내접하는 도형을 표한하기 위한 Shape 클래스가 있다. 123456789class Shape {protected: string name; // 도형의 이름 int width, height; // 도형이 내접하는 사각형의 너비와 높이 public: Shape(string n="", int w=0, int h=0) { name = n; width = w; height = h; } virtual double getArea() { return 0; } // dummy 값 리턴 string getName() { return name; } // 이름 리턴 };Colored by Color Scripter Shape 클래스를 상속받아 타원을 표현하는 Oval, 사각형을 표현하는 Rect, 삼각형을 표현하는 Triangular 클래스를 작성하라. main()을 작성하고 실행하면 다음과 같다. 12345678910int main() { Shape *p[3]; p[0] = .......

명품 C++ programming 9장 실습문제 8번 [내부링크]

문제 사각형에 내접하는 도형을 표현하기 위한 Shape 클래스가 있다. 123456789class Shape {protected: string name; // 도형의 이름 int width, height; // 도형이 내접하는 사각형의 너비와 높이 public: Shape(string n="", int w=0, int h=0) { name = n; width = w; height = h; } virtual double getArea() { return 0; } // dummy 값 리턴 string getName() { return name; } // 이름 리턴 };Colored by Color Scripter 문제 7에 주어진 Shape 클래스를 추상 클래스로 만들고 문제 7을 다시 작성하라. 내가 짠 코드 #include<iostream>using namespace std;class Shape {protected: string name; // 도형의 이름 int width, height.......