맞는데 왜 틀릴까..?

C++ 26

C++ 실습 문제 25 (예외 처리와 C언어 링크 지정)

1. 다음은 정수를 입력받아 구구단을 출력하는 프로그램이다. 그런데 이 프로그램은 1~9가 아닌 정수가 입력되는 것을 걸러내지 못하고, 특히 문자가 입력되면 무한 루프에 빠진다 아래 예시와 같이 실행되도록 try-throw-catch를 이용해 이 프로그램을 수정하라. 정수 값이 아닌 값을 입력한다면 char* 타입의 값 s를 예외로 catch(char *s) 에게 던짐 1~9 이외의 수를 입력한다면 int 타입의 값 n을 예외로 catch(int n) 에게 던짐 2. 다음은 C 코드로서 get.c 파일에 저장되어 있다. get() 함수를 호출해 두 정수를 키보드로부터 입력받아 곱을 출력하는 프로그램을 main.cpp 파일로 저장하고, get.c 와 main.cpp 파일로 구성되는 프로그램을 작성하라. C..

C++ 2022.06.12

C++ 실습 문제 24 (파일 입출력)

1. 영문 텍스트 파일을 읽고 영문 글자를 모두 대문자로 변환하여 저장하라. /etc/passwd 파일을 읽고 복사본 파일로 저장하여라 2. 단어가 들어있는 words.txt 파일을 읽어 단어별로 vector에 저장하고 단어를 입력받아 오직 한 글자만 다른 단어를 모두 출력하라 . words에 없는 단어를 입력할 경우 '단어없음'을 출력하고 exit를 입력할 경우 프로그램을 종료하라. windows에서 생성된 text 파일을 unix용으로 변환하기 sed -i.bak 's/\r$//' words.txt

C++ 2022.06.08

C++ 실습 문제 23 (파일 입출력)

1. 정보를 입력받아 텍스트 파일에 저장하기 파일 입출력 라이브러리 정수 sid가 문자열로 변환되어 저장됨 2. ifstream과 >> 연산자로 텍스트 파일 읽어 화면에 출력하라 3. get()을 이용하여 텍스트 파일 /etc/passwd를 읽어 화면에 출력하라 get()을 이용한 텍스트 파일 읽기에서 \r, \n을 한 개로 읽어와 줄 바꿈 문자의 수만큼 바이트 수가 줄어든다 (윈도우에서만) 4. fstream을 이용하여 student.txt 파일에 student2.txt를 덧붙이는 프로그램을 작성하라. string firstFile = "student.txt" const char* firstFile = "student.txt" 같이 쓸 수 있다. 5. getline(ifstream&, string&)으..

C++ 2022.05.30

C++ 실습 문제 22 (입출력 멤버 함수)

1. 0부터 127까지 ASCll 코드와 해당 문자를 다음과 같이 출력하는 프로그램을 작성하라. 화면에 출력가능하지 않는 ASCll 코드는 '.' 으로 출력하라. 결과) setw() 함수는 iomanip 라이브러리에, isprint() 함수는 cctype 라이브러리에 있다. 2. Phone 클래스의 객체를 입출력하는 아래 코드와 실행결과를 참조하여 연산자를 작성하고 Phone 클래스를 수정하는 등 프로그램을 완성하시오. 다음은 Phone 클래스이다. 결과) 연산자 오버로딩으로 파일의 입출력을 하는 >>,

C++ 2022.05.29

C++ 실습 문제 21 (입출력 멤버 함수)

1. ostream의 put(), write() 멤버 함수를 이용하여 문자를 화면에 출력하라 ostream의 멤버 함수 put(), write() 2. get()과 get(char&)을 이용하여 한 줄의 문자열 입력 istream 멤버 함수 get() 3. get(char*, int)을 이용한 문자열 입력 두 개의 문자열을 비교해주는 strcmp 함수는 에 내장되어 있다. 4. getline()으로 한 줄 단위로 문장 읽기 getline()은 줄 바꿈 문자 \n을 읽지 않고 스트림 버퍼에서 제거함

C++ 2022.05.29

C++ 실습 문제 20 (C++ 표준 템플릿 라이브러리- STL)

1. STL의 vector 클래스를 이용하는 간단한 프로그램을 작성해 보자. vector 객체를 생성하고, 키보드로부터 정수를 입력받을 때마다 정수를 벡터에 삽입하고 지금까지 입력된 수와 평균을 출력하는 프로그램을 작성하라. 0을 입력하면 프로그램을 종료한다. 2. 책의 년도, 책이름, 저자 이름을 담은 Book 클래스를 만들고, vector v;로 생성한 벡터를 이용하여 책을 입고하고, 저자와 년도로 검색하는 프로그램을 작성하시오. 메인 함수에서는 BookManager 객체에 있는 함수 run()을 실행시키기만 함. 생성자를 간단하게 선언하는 방법. this포인터를 사용하지 않고 매개변수를 멤버 변수에 저장할 수 있다. BookManager 클래스의 run() 함수에서 0이 입력으로 들어왔을 때 프로그..

C++ 2022.05.24

C++ 실습 문제 19 (C++ 표준 템플릿 라이브러리- STL)

1. vector 컨테이너를 사용하여 정수만 삽입 가능한 벡터를 생성하라. 2. string 타입의 vector를 이용하여 문자열을 저장하는 벡터를 만들고, 5개의 이름을 입력받아 사전에서 가장 뒤에 나오는 이름을 출력하라. 3. iterator를 사용하여 vector의 모든 원소에 2를 곱하라. 4. map 컨테이너를 이용하여 (영어, 한글) 단어를 쌍으로 저장하고, 영어로 한글을 검색하는 사전을 작성하라. 5. 정수 벡터에 5개의 정수를 입력받아 저장하고, sort()를 이용하여 정렬하는 프로그램을 작성하라. sort()는 알고리즘 함수에 있으므로 #include 를 해야 한다. 6. auto를 사용하여 변수를 선언하라. 7. 매개변수 x, y의 합을 출력하는 람다식 만들기 x에 2, y에 3을 대입..

C++ 2022.05.20

C++ 실습 문제 18 (generic programming)

1. 제네릭 myswap() 함수를 만드시오 2. 제네릭 스택 클래스를 만드시오 stack.cpp에 template class stack을 구현하면 cpp파일에서는 제네릭 클래스의 타입형을 알 수 없으므로 오류가 생긴다. 오류의 해결방법에는 두 가지가 있는데, 1. template class Stack; template class Stack; 위처럼 하나하나 지정해서 사용하는 방법이다. 하지만 타입형이 많으면 많을수록 귀찮아지는 단점이 있다. 2. 헤더 파일에서 구현까지 모두 하는 방법이다. 굳이 cpp파일을 만들지 않고 h파일에 구현까지 모두 시켜 놓으면 오류가 생기지 않는다.

C++ 2022.05.20

C++ 실습 문제 17 (virtual function, function overriding)

사각형에 내접하는 도형을 표현하기 위한 Shape클래스가 다음과 같이 주어진다. 1. 위의 Shape 클래스를 상속받아 타원을 표현하는 Oval, 사각형을 표현하는 Rect, 삼각형을 표현하는 Triangular 클래스를 작성하라. main()을 작성하고 실행하면 다음과 같다. 상속받은 클래스에서 매개변수를 가진 생성자를 선언할 때 아래와 같이 명시적으로 기본 클래스의 생성자를 선택해야 한다. Rect(string n, int w, int h) : Shape(n,w,h){}; 2. 1번 문제에 주어진 Shape 클래스를 추상 클래스로 만들고 다시 작성하라. 추상 클래스 : 최소한 하나의 순수 가상 함수를 가진 클래스 추상 클래스는 온전한 클래스가 아니므로 객체를 생성할 수 없지만 포인터는 선언 가능하다...

C++ 2022.05.20

C++ 실습 문제 16 (virtual function, function overriding)

1. 가상 함수를 선언하여 오버라이딩을 통해 가상 함수를 호출하시오 가상 함수를 선언하여 파생 클래스인 d가 함수 f()를 호출할 때 기본 클래스의 f()함수는 존재감을 상실하여 파생 클래스의 f()가 실행된다. 업 캐스팅을 해서 동적 바인딩이 발생하면 기본 클래스에 대한 포인터가 객체 내에 오버라이딩한 파생 클래스의 함수를 찾아 실행함. 2. Shape 클래스를 기본 클래스로 하는 파생 클래스를 생성하고 가상 함수 draw()로 파생 클래스의 인터페이스를 보여주는 프로그램을 작성하시오. 이하 Rect, Line 클래스 위와 동일

C++ 2022.05.14