1 of 42

C++�Programming

한밭대학교 • INFO2118 • Aaron Snowberger

1주차: 수업 소개

2 of 42

3 of 42

Table of Contents

Book

Class

Visual Studio

Visual Studio Code

1:30 이론, 1:30 실습, …과제

상대평가 있죠~

25% 결석 = F~

  • 출석: 10%
  • 과제: 35%
  • 중간고사: 25%
  • 기말고사: 30%

Grading

4 of 42

상대평가

(30-40-30 보통)

30%

A+, A0

40%

B+, B0

30%

C+, C0, D+, D0, F

5 of 42

Book(s)

라이브러리 중심으로 배우는 C++ 핵심

Core C++ learning with a focus on libraries

C++는 기존 C에서 좀 더 발전한 프로그래밍 언어입니다. 하지만 C를 처음 배웠던 사람은 자칫 C++에서 제시하는 프로그래밍 방법이 아닌 C 프로그래밍을 하던 습관대로 프로그램을 만들려고 할지도 모릅니다.

이 책은 16개 장과 부록 2개를 통해 초중급 프로그래머가 C++를 C++답게 코딩하는 방법을 제대로 알려줍니다. C++ 표준 라이브러리를 이용해 함수, 데이터 구조, 클래스, 상속 등 객체지향 프로그래밍 개념으로 C++ 프로그래밍을 하는 방법을 순서대로 소개합니다.

6 of 42

주차

주제 책

1

CHAPTER 0 C++ 시작하기

  • Accelerated C++, 0장 pp. 26-34

2

CHAPTER 1 문자열 사용

CHAPTER 2 반복문과 카운팅

  • Accelerated C++, 1-2장 pp. 37-72

3

CHAPTER 3 데이터 일괄 처리

CHAPTER 4 프로그램 및 데이터 구조화

  • Accelerated C++, 3-4장 pp. 75-128

4

CHAPTER 5 순차 컨테이너와 문자열 분석

  • Accelerated C++, 5장 pp. 131-164

5

CHAPTER 6 라이브러리 알고리즘

  • Accelerated C++, 6장 pp. 170-198

6

CHAPTER 7 연관 컨테이너

  • Accelerated C++, 7장 pp. 202-222

7

CHAPTER 8 제네릭 함수

  • Accelerated C++, 8장 pp. 225-248

8

중간고사

주차

주제 책

9

CHAPTER 9 새로운 타입 정의

  • Accelerated C++, 9장 pp. 251-271

10

CHAPTER 10 메모리 관리 및 저수준 데이터 구조

  • Accelerated C++, 10장 pp. 274-299

11

CHAPTER 11 추상 데이터 타입

  • Accelerated C++, 11장 pp. 302-335

12

CHAPTER 12 값처럼 동작하는 클래스 객체

  • Accelerated C++, 12장 pp. 338-359

13

CHAPTER 13 상속과 동적 바인딩

  • Accelerated C++, 13장 pp. 362-398

14

CHAPTER 14 메모리 관리 자동화

  • Accelerated C++, 14장 pp. 402-424

CHAPTER 15 문자 그림 다시 살펴보기

CHAPTER 16 앞으로 나아갈 방향

APPENDIX A C++ 세부 사항

APPENDIX B 라이브러리 요약

  • Accelerated C++, 15-16장 pp. 426-461

15

기말고사

7 of 42

Aaron

한국 도착:

2006

한국어능력:

4급 / 6

학력:

2023, 한밭대학교, 정보통신공학과, 박사

2011, Full Sail University, 미국, 미디어 디자인, 석사

2006, University of Wyoming, 미국, 컴퓨터공학, 학사

(자격): 리액트, 컴퓨터비전, 머신러닝, 딥러닝, 자연어 처리,

온라인 강의:

고등학교 강의:

2021, 익산 마이스터 고등학교, 파이썬 기초

2013-2019, 국제영재아카데미, 웹프로그래밍, 컴퓨터공학 이론, 컴퓨터 발견, 컴퓨터 A+, 로보틱스, 자바 프로그래밍, 그래픽 디자인, 출판 디자인, 디지털 시민 교육, 중학교 컴퓨터, 수학

대학교 강의:

2023, 교통대학교 (충주), 웹프로그래밍응용

2019-2023, 전주대 / 전북대, 스마트 택: 구글 클래스룸과 메체 만든 기술

2010-2023, 전주대학교, 영어회화

8 of 42

C++ 프로그래밍의 첫 걸음 + 시작하기

01

9 of 42

C++의 이해

C++ 프로그램을 작성하는 과정은 크게 4단계인

  1. 편집 (edit),
  2. 컴파일 (compile),
  3. 링크(link),
  4. 실행 (execute) 단계로 이루어진다.

그런데 각 단계가 항상 순조롭게 진행되는 것은 아니다.

컵파일이나 링크 단계에서 오류가 발생하면 다음 단계로 진행하지 못 하므로 실행 가능한 파일을 얻으려면 오류를 수정해야 한다. 따라서 오류를 수정하려면 각 단계에서 어떤 작업이 일어나는지부터 자세히 살펴볼 필요가 있다.

  1. C++로 프로그래밍한다는 것의 의미

10 of 42

C++의 이해

  • C++로 프로그래밍한다는 것의 의미

Edit (편집)

Compile (컴파일)

어떤 편집기를 사용하는 C++ 소스 파일을 작성한 후 저장할 때는 C++ 소스 파일임을 의미하는 .cpp 확장자를 꼭 붙여야 한다.

C++ 컴파일러가 문법적으로 소스 파일에서 오류가 없음을 확인하면 소스 파일을 기계어 상태로 변경해서 오브젝트 파일(.obj 확장자가 붙는다)을 만들어 준다.

라이브러리의 제공하는 정보(함수와 데이터 구조)를 맞게 올바르게 사용했는지를 링크 단계에서 검사하고 컴파일 단계에서 만들어진 오브젝트 파일을 실행 가능한 파일(.exe)로 만들어 준다.

Link (링크)

이 실행 파일을 콘솔창에서 입력하거나 비주얼 스튜디오에서 제공하는 툴을 이용해 실행시키는 단계가 바로 실행 단계다.

Execute (실행)

11 of 42

C++의 이해

C++는 객체지향 프로그래밍 언어라는 특징이 있다. 그러면 객체지향 프로그래밍절차적 프로그래밍을 비교해보자.

  1. 객체지향 언어인 C++

OOP (객체지향적)

  • 프로그램이 일정한 순서에 의해 진행되지 않는다.
  • 객체를 생성하기 위한 클래스를 설계한다.
  • 클래스를 설계한 후에 이를 다룰 함수(사용자 인터페이스)를 정의하여 함수로 객체를 다루도록 한다.

Procedural (절차적)

  • main 함수내에 기술된 내용이 순차적으로 수행된다.
  • 그래서 main함수는 대부분 다른 함수의 호출로 기술되어 있다.

C

C++, Java, C#

12 of 42

C++의 이해

  • 객체지향 언어인 C++�객체지향 프로그래밍의 주요 특징

Encapsulation + Data Hiding

캡슐화와 데이터 은닉

Polymorphism + Overloading

다형성과 함수의 오버로딩, 연산자 오버로딩

  • 캡슐화: 데이터를 안전하게 유지하기 위해 데이터에 대해 작동하는 메서드(get(), set() 등)가 번들로 제공됩니다.
  • 데이터 은닉: 데이터 보안을 유지하기 위해 내부 개체 세부 정보는 숨겨지고 클래스 멤버에게만 액세스 권한이 부여됩니다.
  • 다형성: 여러 가지 유형을 나타내기 위해 단일 기호 또는 메소드 이름을 사용합니다.
  • 오버로딩: 여러 메소드가 서로 다른 매개변수를 사용하여 동일한 이름을 가질 수 있습니다.
  • 상속성: 객체지향의 가장 대표적인 특징으로, 특정 객체의 성격을 다른 객체가 상속받아 사용할 수 있도록 하는 것이다. 클래스를 설계할 때 여러 개의 클래스에 공통적으로 필요한 성격을 가장 기본적인 클래스에 정의해 두는데, 이 기본적인 클래스를 부모 클래스라 한다.

Inheritance

상속성

13 of 42

C++의 이해

C++ 프로그램에서 반드시 존재해야 하는 요소로만 구성되었기 때문에 이중 하나라도 빠지면 컴파일 에러가 발생한다.

  • 세상에서 가장 간단한 C++ 프로그램
  • 컴파일러는 ()를 함수로 인식하도록 설계되어 있다.
  • main은 C++ 컴파일러가 프로그램의 진입점으로 인식하는 함수이다.
  • 단 한개만 존재해야 한다.
  • 모든 함수는 반드시 자료형을 지정해야 하는데, 자료형은 함수 앞에 붙인다.
  • 이 void는 함수가 값을 갖지 않을 경우붙이는자료형이다.
  • C++로 작성한 프로그램을 실행시키면 main 함수의 { } 사이에 기술한 내용이 차례대로 실행된다.

14 of 42

비주얼 스튜디오 2022 맛보기 (설치)

앞에서 살펴본 소스파일을 컴파일해서 실행 가능한 파일을 생성하려면 C++ 컴파일러가 필요하다. C++ 프로그램은 MS Visual Studio를 사용하여 제작한다.

15 of 42

비주얼 스튜디오 2022 맛보기 (설치)

16 of 42

비주얼 스튜디오 2022 맛보기 (설치)

17 of 42

비주얼 스튜디오 2022 맛보기 (설치)

18 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

19 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

20 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

21 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

22 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

23 of 42

비주얼 스튜디오 2022 맛보기 (프로그래밍)

24 of 42

GitHub Desktop와

과제 제출 방법

00

25 of 42

GitHub 계정 만들거나 로그인

26 of 42

GitHub Desktop 설치

27 of 42

GitHub Desktop에서 로그인

28 of 42

GitHub 계정 설정 확인

29 of 42

GitHub Classroom 링크 받기

30 of 42

과제 받기

31 of 42

과제 받기

32 of 42

과제 받기

33 of 42

GitHub 저장소에서 코드 받기

34 of 42

“Open with GitHub Desktop”하면…

35 of 42

“Open with GitHub Desktop”하면…

36 of 42

“Open with GitHub Desktop”하면…

37 of 42

IDE에서 열기

38 of 42

코딩하고 저장하기

39 of 42

다시 GitHub Desktop으로…

40 of 42

GitHub 으로 푸쉬

41 of 42

와!~~~ 업데이트와 제출을 했다!~~

42 of 42

Thanks

Please keep this slide for attribution

CREDITS: This presentation template was created by Slidesgo, and includes icons by Flaticon and infographics & images by Freepik