04-학습2-C 프로고래밍기초

Download Report

Transcript 04-학습2-C 프로고래밍기초

학습2 : C++프로그래밍기초
1/41
C++
C
앱개발
학과홈페이지 열린강의실에 가서
“4주차실습프로그램.zip”파일을 다운받아
압축을 풀어 수업 준비 바람…
학습2 : C++프로그래밍기초
지난 3 주차에
공부했던 내용은?
- C++ 프로그램의 기본 구조에 대해서
- cin, cout 명령을 이용한 데이터 입출력에 대해서
- cin, cout 이 printf(), scanf() 와 프로그램 상의 차이점에 대해서
2/41
학습2 : C++프로그래밍기초
1-1. C++의 개요
학습1 :
C++ 개요 및
개발환경구축
1-2. C++ 개발환경 구축하기
2-1. C++ 프로그램의 이해
2-2. 데이터 입출력
학습모듈
A
학습2 :
C++ 프로그래
밍 기초
2-3. 데이터 유형과 연산자
2-4. 선택문과 반복문
2-5. 배열과 포인터
2-6. 함수
2-7. 참조형 변수의 사용
2-8. 1차 프로젝트 - 가위바위보 게임 만들기
C++
학습모듈
학습3 :
구조체와 공용
체, 열거형
3-1. 구조체 - struct
3-2. 공용체 - union
3-3. 열거형 - enum .
B
학습4 :
C++에서 파일
다루기
4-1. 클래스에 의한 파일 입출력
4-2. 입출력 멤버함수
4-3. 사용자정의 입출력 조작자
5-1. 클래스와 객체
학습5 :
객체지향 프
로그래밍
5-2. 클래스의 사용과 연산자 오버로딩
5-3. 예외처리와 템플릿
5-4. 2차 프로젝트 - 전화번호검색 프로그램
개발하기
3/41
학습2 : C++프로그래밍기초
4/41
지난 3 주차에 작성해봤던 프로그램들은?
◀작성해보자 2-1▶ 파일명 : 자기학번-2-1.cpp
“따라하기 2-4.CPP”프로그램에
다음에 보인 <주석 예>의 주석을 프로그램 앞머리에 넣어 보라.
여기서는 // 기호를 이용하여 주석을 기입해 프로그램을 완성시켜 보라.
◀작성해보자 2-2▶ 파일명 : 자기학번-2-2.cpp
이번에는 “따라하기 2-4.CPP” 프로그램에 <주석 예>의 주석을 프로그램 앞머리에 넣을 때,
/* 와 */ 기호를 이용하여 프로그램을 완성시켜 보라.
◀작성해보자 2-3▶ 파일명 : 자기학번-2-3.cpp
다음 실행결과 예처럼 작성자의 생년월일을 입력받아 나이와 함께 출력
하는 프로그램을 cin 과 cout 를 이용하여 작성해 보라.
◀작성해보자 2-4▶ 파일명 : 자기학번-2-4.cpp
이번에는 앞의 문제와 동일하게 수행하는 프로그램을 scanf() 와 printf() 를
이용하여 작성해 보라.
학습2 : C++프로그래밍기초
지난 3 주차에서
“능력향상과제(2)의 낙서코너”를
통해 받았던 내용은?
5/41
학습2 : C++프로그래밍기초
A반
감사합니다
수업 감사합니다
좋은 강의 감사합니다
C와C++의 차이점은 헷갈렸지만 잘 설명해 주셔서 좋았습니다
1
교수님 감사합니다
교수님 사랑합니다
수행준거 3번 7
교수님의 수업은 완벽하셨으나 제가 이해를 못한 것 같습니다
앞으로도 좋은 강의 부탁 드립니다
8. 사랑합니다
24
9. 오늘수업전반적으로 좋았습니다
10. 사랑합니다 교수님
11. 오늘 강의 이해 잘 되었습니다
1
수행준거 4번
12. 항상 열심히 해주셔서 감사합니다
13. 오늘 강의 이해하기 편했습니다
12
14. 좋은 수업 감사합니다. 수업 잘 들었습니다. 앞으로도 좋은 수업 부탁 드립니다
19
15. 이기희교수님 감사합니다
16. 수업속도가 적당해요
17. 항상 좋은 수업 감사 드립니다
18. 수업시작하고 20분 정도 복습시간 좋습니다
19. 수업 전 질문 대답해 주시는 거 좋은 것 같아요
수행준거 5번
3
20. 교수님 컴퓨터 모니터 좀 고쳐주세요ㅠ_ ㅠ 강의 모니터요!!
10
21. 사랑합니다
20
22. 강의 강의하시는 컴퓨터가 망가졌는지 화면이 안보입니다. 고쳐주세요.
수업이 눈에 안 들어 옵니다. 제자리는 문 쪽의 끝 줄에 앉아 있습니다
23. 수업 재미있게 해주셔서 고맙습니다
24. 하하하하하
25. 초반에 컴퓨터가 고장나서 불편했음
26. 조금 천천히 진행해 주세요
27. 교수님 사랑해요
28. int 랑 char 를 묶을 수 있나요. Ex) 오름차순결과에서
1등 : 홍길동
85점
2등 : 누구누구 70점
6/41
1.
2.
3.
4.
5.
6.
7.
상
중
하
학습2 : C++프로그래밍기초
7/41
B반
1. 천천히 설명해 주셔서 이해하기 쉽다
0
수행준거 3번
15
18
0
수행준거 4번
15
17
0
수행준거 5번
상
13
18
중
하
학습2 : C++프로그래밍기초
8/41
C반
1. C 언어로 하다가 C++로 바꿔도 가능 한가요?
2. 오늘 강의 만족스럽습니다
3. C++가 더 편해요
4. 쉬웠어요
5. 집중되게 열정적으로 강의해 주셔서 감사합니다.
수행준거
6. C언어보다C++가 더 간단해서 좋은 거 같습니다
7. 다 이해되는데 <<, >> 의 뜻이라고 해야 할까 C++에서 의미 부여한 게 궁금합니다
8. 집중 잘 되었어요
9. 만족합니다. 교수님~
10. 질문 없습니다
11. 마지막 힘듬을 느꼈지만 친구에게 도움을 받아 했습니다
1
3번
10
16
수행준거 4번
2
10
수행준거 5번
15
상
2
7
중
17
하
학습2 : C++프로그래밍기초
9/41
J반
1. Link : fatal error LNK1158 : ‘rc.exe‘을(를) 실행할 수 없습니다.
2. 점점 어려워지는 거 같다
3.수고하셨습니다
4. 오늘 수업 수고하셨습니다
5. 다음부터 공부해 오겠습니다
6. 오늘 수업은 교수님도 학생도 시간상의 큰 만족감이 드는 강의였습니다.
감사합니다
7. 열심히 하겠습니다
8. 복습을 열심히 해야겠고, 오늘 수업은 집중이 잘되어 귀에 쏙쏙 잘 들어왔다
하지만 설명은 힘들 거 같다
9. 교수님 감사합니다
10. 수업에 흥미를 가질 수 있도록 더 집중할 께요이번 수업은 저번수업보다
더 집중한 것 같습니다
11. C++아직 수업은 따라갈 수 있습니다
12. 약간 어려운 느낌이 들었다. 복습 좀 해야 겠다
13. 수업시간이 빨리 갔어요
14. 이번 수업은 듣기 전 학기보다 이해력이 높은 것 같습니다.
15. 수고하셨습니다
16. 교수님 수고하셨습니다
17. 교수님 좋습니다
18. 교수님 C++이 쉬어서 기분이 좋습니다
19. 수고하셨습니다
수행준거 3번
3
1
14
수행준거 4번
0
3
16
수행준거 5번
0
상
3
중
16
하
학습2 : C++프로그래밍기초
오늘 4 주차에
학습할 내용은?
- C++에서 제공하는 데이터 형에는 어떤 게 있고, 사용하고 있는지?
- C++ 에서 변수는 어떻게 선언되고, 사용되는지?
- C++에서는 제공하는 명령(선택,반복,분기)들은 어떻게 사용되는지?
10/41
학습2 : C++프로그래밍기초
1-1. C++의 개요
학습1 :
C++ 개요 및
개발환경구축
11/41
1-2. C++ 개발환경 구축하기
2-1. C++ 프로그램의 이해
2-2. 데이터 입출력
학습모듈
A
학습2 :
C++ 프로그래
밍 기초
2-3. 데이터 유형과 연산자
2-4. 선택문과 반복문
2-5. 배열과 포인터
2-6. 함수
2-7. 참조형 변수의 사용
2-8. 1차 프로젝트 - 가위바위보 게임 만들기
C++
학습모듈
학습3 :
구조체와 공용
체, 열거형
3-1. 구조체 - struct
3-2. 공용체 - union
3-3. 열거형 - enum .
B
학습4 :
C++에서 파일
다루기
4-1. 클래스에 의한 파일 입출력
4-2. 입출력 멤버함수
4-3. 사용자정의 입출력 조작자
5-1. 클래스와 객체
학습5 :
객체지향 프
로그래밍
5-2. 클래스의 사용과 연산자 오버로딩
5-3. 예외처리와 템플릿
5-4. 2차 프로젝트 - 전화번호검색 프로그램
개발하기
학습2 : C++프로그래밍기초
12/41
학습2 : C++ 프로그래밍 기초
지난 시간에 이어서 계속~
학습2 : C++프로그래밍기초
13/41
2-2. 데이터 입출력
27쪽
1. cin 과 cout
<표 2-1> C++에서의 표준 스트림 입출력 명령
입출력스트림
기능
사용연산자
장치
cin
지정양식에 따라 입력
>>
키보드
cout
지정양식에 따라 출력
<<
모니터
관련해더파일
iostream.h
학습2 : C++프로그래밍기초
2. 스트림 입출력 조작자
4주차 학습은 여기서 부터
31쪽~
14/41
<표 2-2>. iomanip.h 해더파일에 정의된 스트림 입출력 조작자
조작자
의미
dec
10진수로 변환하여 출력해 준다.
hex
16진수로 변환하여 출력해 준다.
oct
8진수로 변환하여 출력해 준다.
endl
개행문자(‘\n’)를 출력하고, 스트림 내용 삭제해 준다.
ends
문자(‘\0’)를 출력해 준다.
flush
스트림의 내용 삭제해 준다.
setfill( int c )
c로 채워 출력해 준다.
setprecision( int n )
부동소수점의 유효 자릿수를 n개로 하여 출력해 준다.
setw( int n )
필드 폭을 n개로 하여 출력해 준다.
setiosflags( 형식플래그 )
<표3>의 형식플래그에 의해 지정된 형식을 설정해 준다.
resetiosflags( 형식플래그 ) <표3>의 형식플래그에 의해 지정된 형식을 삭제해 준다.
학습2 : C++프로그래밍기초
15/41
<표 2-3> setiosflags()와 resetiosflags()를 위한 형식플래그 값
형식플래그명
의미
ios::left
setw()폭 안에 좌측으로 정돈시켜 출력해준다.
ios::right
setw()폭 안에 우측으로 정돈시켜 출력해준다.
ios::scientific
지수형태(1.2345E2)로 출력해준다.
ios::fixed
소수점 수(123.45)로 출력해준다.
ios::dec
10진수로 변환해 출력해준다.
ios::hex
16진수로 변환해 출력해준다.
ios::oct
8진수로 변환해 출력해준다.
ios::uppercase
16진수와 지수형태로 출력할 때, 문자를 대문자로 출력해준다.
ios::showbase
8진, 16진수를 출력할 때, 접두문자를 붙여 출력해준다.
ios::showpos
양수를 출력할 때, + 부호를 붙여 출력해준다.
ios::showpoint
소수점 표기에서 정확도를 위해 필요하면 지정된 자리 수만큼
0 을 채워 출력해준다.
학습2 : C++프로그래밍기초
16/41
따라하기 2-09.cpp
따라하기 2-10.cpp
따라하기 2-11.cpp
따라하기 2-12.cpp
1A반은 여기까지 배웠지만
다시 반복 학습함.
학습2 : C++프로그래밍기초
17/41
◀작성해보자 2-5▶ 파일명 : 자기학번-2-5.cpp
다음 <실행결과 예>처럼 작성자의 생년월일을 입력 받아 나이와 함께
출력하는 프로그램을 작성해 보자.
<실행결과 예>
생년월일을 입력해 주세요.
년도는? 1995 <Enter>
월은? 9 <Enter>
일은? 15 <Enter>
생일은 □□□ 9월 □□□15일이고 ← 여기서 □는 빈 공백을 표시한 것이다.
당신은 ******1995년생 20살이군요. ← 여기서 * 는 왼쪽 빈 여백을 채우는 문자이다.
학습2 : C++프로그래밍기초
18/41
◀작성해보자 2-6▶ 파일명 : 자기학번-2-6.cpp
다음<실행결과 예>처럼 작성자의 희망하는 학점을 소수점 수로 입력 받아
지정한 포맷(형식)으로 출력하는 프로그램을 작성해보자.
<실행결과 예>
이번 학기에 희망하는 학점은? 4.3 <Enter>
아~우~~~
4.30000 점을 희망하는군요. ← 여기서 학점은 소수점 이하 5 자리까지 출력되게 하라.
파이팅입니다!
학습2 : C++프로그래밍기초
 질문?
19/41
학습2 : C++프로그래밍기초
Q/A
35쪽
Q1. “난 시뿔뿔을 배운다.”를
// 와 /*~*/ 기호를 이용해 주석으로 표현한다면?
A1.
20/41
// 난 시뿔뿔을 배운다.
/* 난 시뿔뿔을 배운다. */
학습2 : C++프로그래밍기초
Q/A
21/41
35쪽
Q2. 주석은 왜 필요한가?
A2. 주석은 프로그램 작성 후에 그 프로그램의 이해를 도와주는 메모 글이다.
따라서 프로그램에 적절히 사용할 필요가 있다. 그러나 주석을 너무 많이
넣으면 오히려 프로그램을 복잡하게 만들어 이해하는데 도움이 되지
않을 수 있기 때문에 필요한 곳에 적절히 기입해 넣어 프로그래밍해야 한다.
학습2 : C++프로그래밍기초
22/41
Q/A
35쪽
Q3. C 에서부터 사용되고 있는 표준 입출력 함수 6 가지의 용도는?
A3. 표준 입출력 함수의 용도는 다음과 같다.
표준입출력함수
용도
getchar()
키보드에서 한 개 영문자씩 입력 받을 때 사용한다.
putchar()
화면으로 한 개 영문자씩 출력시킬 때 사용한다.
gets()
키보드에서 한 개의 문자열(문장)을 입력 받을 때 사용한다.
puts()
화면으로 한 개의 문자열(문장)을 출력시킬 때 사용한다.
scanf()
키보드에서 지정한 포맷으로 값을 입력 받을 때 사용한다.
printf()
화면에 지정한 포맷으로 값을 출력시킬 때 사용한다.
학습2 : C++프로그래밍기초
Q/A
23/41
35쪽
Q4. C 언어의 표준입출력함수를 사용할 때, 포함시켜야 하는 해더파일은?
A4. stdio.h
학습2 : C++프로그래밍기초
24/41
Q/A
35쪽
Q5. C 언어에서 사용하는 제어문자 들을 C++에서 그대로 사용 가능한가?
A5. 가능하다.
C 에서 사용하던 제어문자들은 다음과 같은 제어문자들이 사용되고 있다.
제어문자
기능
\n
커서를 줄을 바꾸어 출력되게 한다.
\a
벨 소리를 출력되게 한다.
\b
커서를 한 칸 후진시켜 출력되게 한다.
\r
커서를 그 줄의 첫 칸으로 이동시켜 출력되게 한다.
\t
커서를 탭 간격만큼 건너뛰어 출력되게 한다.
학습2 : C++프로그래밍기초
Q/A
25/41
35쪽
Q6. cin과 cout 땜에 프로그램에 포함시켜 주어야 하는 해더파일은?
A6. iostream.h
Q7. setw() 나 setfill() 과 같은 입출력 조작자 땜에 포함시켜야 하는
해더파일은?
A7. iomanip.h
학습2 : C++프로그래밍기초
 질문?
26/41
학습2 : C++프로그래밍기초
27/41
2-3. 데이터 형과 연산자
36쪽
1. 데이터 형(data type)
구분
기본 데이터형
복합 데이터형
종류
char
int
short
long
float
double
bool
void
enum
string
배열
struct
union
class
설명
문자형
정수형
짧은 정수형
긴 정수형
단정도 실수형
배정도 실수형
부울형(C++전용, true/false)
비어있음
열거형(사용자정의 데이터 나열)
문자열형(문자의 모음)
같은 타입의 데이터 집합
구조체(사용자정의 데이터 집합)
공용체(메모리공간을 공유하면서 사용하는 변수 집합체)
클래스(사용자정의 변수와 함수의 집합)
학습2 : C++프로그래밍기초
28/41
2. 변수와 상수
① 변수(variable)
• 변수는 데이터를 저장하는데 사용되는 기억장소의 이름(주기억장치)이다.
• 변수는 사용 전에 반드시 선언해야 하며, 이때 변수의 데이터 형을
정확히 지정해 주어야 한다.
• 변수를 쉽게 구별하기 위해 변수 이름을 사용한다.
• 변수 이름 붙이는 규칙
- 영문자, 숫자, 밑줄( _ )만 사용한다. 한글도 사용 가능하다.
- 첫 글자는 숫자를 사용하면 안 된다.
- 영어 대소문자는 다른 글자로 구분된다.
- 공백문자와 특수문자는 사용할 수 없다.
- 예약어(키워드)는 변수로 사용할 수 없다.
- 이미 사용한 이름은 사용할 수 없다.
- C++에서 변수 이름의 길이는 무제한이다.
- 가급적 용도를 알 수 있는 의미 있는 변수 이름을 지어 사용하는 것이 매너다.
학습2 : C++프로그래밍기초
29/41
② 상수(constant)
• 처리 대상이나 결과 데이터 값 자체이다.
• 변수에 저장되는 대상이다.
• 프로그램 코딩에서 직접 표기한다.
• 상수의 형태
- 숫자형태의 상수
소수점 이하를 취급하지 않는 숫자(integer) : 10진수(decimal number),
8진수(octal number) ,
16 진 수 (hexadecimal
number)
소수점 이하를 취급하는 숫자(real number) : 소수점 수(floating point
number)
지수형 수(exponent)
- 문자형태의 상수
문자(character) : 작은 따옴표로 감싼 문자( 'a’ )
문자열(string) : 큰 따옴표로 감싼 문자( "hoho” )
학습2 : C++프로그래밍기초
③ 기호상수(symbol constant)
• 변수명 앞에 const 키워드를 붙여 상수를 표현하는 방법(C++에서만 사용 가능)
[사용 예]
const int NUM = 123;
[설명]
NUM 은 상수 123 대신에 사용하는 고정된 기호상수명이 된다. 이처럼 기호상수를
사용하면 프로그램을 읽기가 쉬어지는 장점이 있다. 이와 유사하게 수행하는 명령에
는 C언어에부터 사용해 오던 #define 이라는 선행처리 명령이 있다
• 변수명 앞에 #define 키워드를 붙여 상수를 표현하는 방법(C와 C++에서 사용가능)
[사용 예]
#define NUM 123
[설명]
결과는 const 로 지정된 것과 동일하게 NUM 은 상수 123 값 대신에 사용하는 고정된
기호상수명이 된다.
30/41
학습2 : C++프로그래밍기초
31/41
3. 연산자
기능별 종류
산술 연산자
부호 연산자
대입 연산자
관계 연산자
증감 연산자
포인터 연산자
구조체(Structure)
논리 연산자
비트 연산자
삼항 조건 연산자
쉼표 연산자
sizeof 연산자
cast 연산자
괄호 연산자
C++ 연산자
연산자
+ - * / %
+ = 복합대입연산자
== != <= < >= >
++ -* & []
. ->
|| && !
| & ~ >> << ^
?:
,
sizeof
(타입) 타입( )
()
new delete :: . * -> *
학습2 : C++프로그래밍기초
32/41
◀작성해보자 2-7▶ 파일명 : 자기학번-2-7.cpp
아래 보인 <실행결과>처럼 출력하는 프로그램이 되도록 다음의
미완성 프로그램을 완성시켜보라.
이때 ①에는 const 를 이용하여 기호상수 NUM1 에 정수100 으로 지정하고,
②에는 #define 를 이용하여 기호상수 NUM2 에 정수 200 으로 지정하여
완성시켜라.
<실행결과 예>
결과 : 300
#include <iostream>
using namespace std;
//①
//②
void main()
{
int sum;
sum = NUM1 + NUM2;
cout << "결과 : “ << sum << endl;
}
학습2 : C++프로그래밍기초
Q/A
33/41
39쪽
Q1. C++에서 변수명으로 한글을 사용할 수 있는가?
A1. Visual C++ 컴파일러에서는 한글 변수 가능하다. 그러나 글로벌 세계에
발맞추어 영어로 변수명을 만들어 사용하기를 권고하고 싶다.
학습2 : C++프로그래밍기초
34/41
Q/A
39쪽
Q2. 다음에 나열한 변수 들은 C++에서 적절한 것인지 적절하지 않는 것인지?
① const
② computer
⑥ 1_comjung
③ com jung
④ com_jung
⑤ bool
⑦ bool_1
A2. ① 예약어로 지정된 명령어를 사용했기 땜에 변수로 적절하지 않는 표현이다
.
② 적절하다.
③ 변수명에 공백을 사용했기 땜에 변수로 적절하지 않는 표현이다.
④ 적절하다.
다.
⑤ 예약어로 지정된 명령어를 사용했기 땜에 변수로 적절하지 않는 표현이
⑥ 숫자로 시작한 변수표현이기 땜에 변수로 적절하지 않는 표현이다.
⑦ 적절하다.
학습2 : C++프로그래밍기초
Q/A
35/41
39쪽
Q3. 다음에 나열한 상수 들은 C++에서 적절한 것인지 적절하지 않는 것인지?
① 789 ② 0789 ③ 0123 ④ 0x789 ⑤ 0x789ABC
⑥ "A" ⑦ 'ABC'
A3. ① 상수표현으로 맞다. 10진 상수 표현이다.
② 상수표현으로 틀린다. 0으로 시작하는 수는 8진수이다.
그런데 8진수에는 8, 9라는 수가 없기 때문이다.
③ 상수표현으로 맞다. 8진 상수표현이다.
④ 상수표현으로 맞다. 16진 상수표현이다.
⑤ 상수표현으로 맞다. 16진 상수표현이다. A, B, C 라는 16진수에 속하는 수이다.
⑥ 상수표현으로 맞다. 하나의 문자는 문자열로도 표현 가능하기 때문이다.
⑦ 상수표현으로 틀린다. 문자열은 큰 따옴표를 사용하여 "ABC"라고 해야 한다
학습2 : C++프로그래밍기초
36/41
Q/A
39쪽
Q4. 다음에 나열한 문장에서 계산결과 a 의 값은?
① int x=1, y=2, a=x/y;
② int x=1, y=2, a=x%y;
③ int x=1, y=2, a=x>y;
④ int x=1, y=2, a=x&&y;
⑤ int x=1, y=2, a=(x>y)?x*5:y*10;
A4. ① 0
②1
③0
④1
⑤ 20
학습2 : C++프로그래밍기초
 질문?
37/41
학습2 : C++프로그래밍기초
38/41
2-4. 선택문과 반복문
40쪽
1. 선택문 사용하기
따라하기
따라하기
따라하기
따라하기
따라하기
따라하기
2-13.cpp
2-14.cpp
2-15.cpp
2-16.cpp
2-17.cpp
2-18.cpp
학습2 : C++프로그래밍기초
◀작성해보자 2-9▶ 파일명 : 자기학번-2-9.cpp
주민번호 뒷자리를 입력 받아
첫 번째 숫자가 1 이면 “남자다.”라고 출력하고,
2 이면 “여자다.”라고 출력하는 프로그램을 if 문을 이용하여 작성하라.
◀작성해보자 2-10▶ 파일명 : 자기학번-2-10.cpp
주민번호 뒷자리를 입력 받아
첫 번째 숫자가 1 이면 “남자다.”라고 출력하고,
2 이면 “여자다.”라고 출력하는 프로그램을 if ~else 문을 이용하여 작성하라.
39/41
학습2 : C++프로그래밍기초
◀작성해보자 2-11▶ 파일명 : 자기학번-2-11.cpp
주민번호 뒷자리를 입력 받아
첫 번째 숫자가 1 이면 “남자다.”라고 출력하고,
2 이면 “여자다.”라고 출력하는 프로그램을 while 문을 이용하여 작성하라.
◀작성해보자 2-12▶ 파일명 : 자기학번-2-12.cpp
주민번호 뒷자리를 입력 받아
첫 번째 숫자가 1 이면 “남자다.”라고 출력하고,
2 이면 “여자다.”라고 출력하는 프로그램을 do~while 문을 이용하여 작성하라.
40/41
학습2 : C++프로그래밍기초
 능력향상과제(3) 제출
41/41