• 검색 결과가 없습니다.

클래스Day 15: IoT를위한문제중심C++ 프로그래밍

N/A
N/A
Protected

Academic year: 2022

Share "클래스Day 15: IoT를위한문제중심C++ 프로그래밍"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

IoT를 위한 문제 중심 C++ 프로그래밍

금오공과대학교

이해연 교수

클래스

Day 15:

(2)

목차

1.

클래스

A. 클래스 개념

B. 클래스 활용

2.

클래스 문제

(3)

사용자 정의 자료형 필요성

1.

주소록

A. 사람 : 주민등록번호, 이름, 주소, 전화번호 등 다수 항목

B. char, int, double, 배열로 문제 해결에 효율적이지 못함

C. 최대 100명까지 관리하는 주소록

D. char registrationNumber[100][32];

char name[100][32];

char address[100][64];

char phoneNumber[100][32];

E. 만일 Person 이라는 자료형이 존재하는 경우 Person person[100];

(4)

사용자 정의 자료형

1.

클래스

A. 대표적 사용자 정의 자료형으로 변수와 함수를 하나의 단위로 그룹

l 사용자 필요에 의해 정의

l 멤버 변수, 멤버 함수

class Person {

private:

char registrationNumber[32];

char name[32];

char address[64];

char phoneNumber[32];

public:

void print() {

cout << registrationNumber << “ “ << name << “ “ << endl;

} };

(5)

클래스

1. 개념

A.

프로그램 동작 주체인 객체를 생성하기 위한 추상적 개념체 (틀)

2. 형식

class클래스이름

{

private:// 멤버 접근 속성:private, protected, public 존재 멤버 변수;

public:

생성자(); // 클래스이름() 형태 소멸자(); // ~클래스이름() 형태 멤버 함수;

}; // 반드시 ; 포함

(6)

클래스

1.

생성자(Constructor)

A. 클래스이름과 동일하며 객체 생성시 자동 호출,

B. 반환값 없음, public 속성

C. 멤버 변수 등 초기화 역할

D. 생성자가 특별한 기능이 없는 경우 생략 가능

E. 생성자 중복 정의 가능 (매개변수가 다른 경우)

2.

소멸자(Destructor)

A. 클래스이름 앞에 ~가 있으며 객체 소멸시 자동 호출

B. 반환값 없음, public 속성

C. 메모리 등의 반납 역할

D. 소멸자가 특별한 기능이 없는 경우 생략 가능

(7)

클래스 활용

1.

멤버 접근 연산자

A. 일반 객체 경우 . (점) 예) Person p;

p.print();

p.address;

A. 포인터 객체 경우 -> (화살표)

2.

this: 객체 자신을 가리키는 포인터

A. “this->” 형태로 활용함 (차후 문제 구현시 설명)

B. 멤버 변수와 매개 변수의 이름이 같은 경우 자주 활용

void set(int x) {

this->x = x;

}

(8)

문제 9.0N 5개 점 좌표 연결 출력

1.

문제 설명

A. 점 (Point)에 대해서 클래스를 정의하고 사용자에게 5개의 점의 좌표를 입력 받은 후에 연속으로 출력하는 프로그램 구현

2.

구현 조건

A. 점은 2차원 (x, y)로 구성하며 정수형으로 처리

B. 클래스로 구현

3.

실행 예

(9)

문제 9.0N 5개 점 좌표 연결 출력

1.

구현 힌트

A. class Point {

}; // ; 주의

B. Point 배열 활용

(10)

프로그램을 직접 구현

- 인터넷, 도서 등 검색

- 스스로 생각하는 사고력 향상

(11)

문제 9.0N1 N개 점 좌표 연결 출력

1.

문제 설명

A. 사용자에게 여러 점의 좌표를 입력 받은 후에 연속 출력 프로그램 구현 2.

구현 조건

A. 점은 2차원 (x, y)로 구성하며 정수형으로 처리

B. 입력하는 점의

최대 개수는 10개로 가정

C. 사용자가

-1 -1을 입력하는 경우 입력 종료로

가정

D. 클래스로 구현

3.

실행 예

(12)

문제 9.0N1 N개 점 좌표 연결 출력

1.

구현 힌트

A. 배열 활용시 배열의 개수를 나타내는 count 변수 이용

B. 배열의 최대 개수는 10개 (제약 조건에 명시)

(13)

프로그램을 직접 구현

- 인터넷, 도서 등 검색

- 스스로 생각하는 사고력 향상

(14)

문제 9.1 도형 크기 계산

1.

문제 설명

A. 사각형, 삼각형, 원 클래스를 정의하고, 사용자에게 정보를 입력 받아 크기를 계산하는 프로그램 구현

2.

구현 조건

A. 사용자는 “R: 사각형, T: 삼각형, C: 원” 중에 R, T, C를 통해 도형 선택

B. 사각형과 삼각형은 너비와 높이 입력

C. 원은 반지름 입력

D. 클래스 멤버 변수와 함수로 다음과 같은 내용 포함

l 멤버 변수: double size;

l 멤버 함수: set() 함수, getSize() 함수

(15)

문제 9.1 도형 크기 계산

1.

실행 예

2.

구현 힌트

A. 사용자와 입출력은 클래스에서 수행하지 않음

B. 사각형, 삼각형, 원 클래스는 데이터 저장과 계산만 수행

(16)

프로그램을 직접 구현

- 인터넷, 도서 등 검색

- 스스로 생각하는 사고력 향상

(17)

문제 9.4N 메뉴 기반 주소록

1.

문제 설명

A. 사용자에게 메뉴 기반으로 이름, 주소, 전화번호를 입력받은 후에 출력하 는 프로그램 구현

2.

구현 조건

A. 메뉴는 “1. 사람입력, 2. 출력, 3. 종료"로 구성함

B. 클래스 Person 구현하여 활용

C. 최대 입력 사람의 수는 10명 가정하며 10명 이상 입력하지 않음 (오류 체크 등은 하지 않음)

(18)

문제 9.4N 메뉴 기반 주소록

1.

실행 예

2.

구현 힌트

A. 사람에 대한 배열과 배열에 입력된 개수를 나타내는 변수 활용

B. 이름, 주소, 전화번호는 string 클래스 사용하면 편리함

#include <string>

(19)

문제 9.4N 메뉴 기반 주소록

1.

구현 확장

A. 파일 읽기 기능

B. 파일 저장 기능

C. 검색 기능

(20)

프로그램을 직접 구현

- 인터넷, 도서 등 검색

- 스스로 생각하는 사고력 향상

참조

관련 문서