09-학습2-C 구조체공용체열거형

Download Report

Transcript 09-학습2-C 구조체공용체열거형

학습2 : C++프로그래밍기초
1/32
C++
C
앱개발
학과홈페이지 열린강의실에 가서
“8주차실습프로그램.zip”파일을 다운받아
압축을 풀어 수업 준비하기 바람…
학습2 : C++프로그래밍기초
지난 7 주차에 공부했던 내용은?
- C++ 에서 함수의 오버로딩, 함수의 디폴트 인자 값에 대해서
- 참조 형 변수의 선언과 사용법에 대해서
- 1차 프로젝트 : 가위바위보 게임 개발
2/32
학습2 : C++프로그래밍기초
지난 7 주차에 작성해봤던 프로그램들은?
◀작성해보자 2-22▶ 파일명 : 자기학번-2-22.cpp
“따라하기 2-38.CPP”프로그램을 수정하여 2개의 수를 입력받아 +, -, *, / 연산이
모두 가능하도록 프로그램을 업그레이드시켜 보라.
3/32
학습2 : C++프로그래밍기초
지난 강의시간의
“능력향상과제(6)의 낙서코너”의 내용은?
4/32
학습2 : C++프로그래밍기초
A반
5/32
학습2 : C++프로그래밍기초
B반
6/32
1. 수고하셨습니다!
2. 수고하셨습니다
3. 오늘도 수업 수고하셨습니다
4. 약간 어렵지만 공부해 오겠습니다
5. 수고하셨습니다 열심히 공부해서 중간시험은 잘 보겠습니다^^
6. 포인터 햇갈립니다
7. 오늘도 정말 감사드립니다
8. 감사합니다
9. 감사합니다
10. 점점 햇갈려요 ㅠㅠ 수고하셨습니다! ㅎㅎ
11. 수고하셨습니다
12. 수고하셨습니다
13. 많은 내용 급하게 수업하시느라 고생하셨습니다
14. 교수님 최고!
15. 수고하셨습니다
16. 좋습니다
17. 시험 잘보기 위해 공부해 오겠습니다
18. 수고하셨습니다 열공!!
19. 교수님 수고하셨습니다!!
20. 이해가 잘 안가요... 그래도 수고하셨습니다~~
21. 감사합니다
22. 왜 18 숫자를 좋아하세요? ㅋㅋ 수고하셨습니다
23. 난수가 이해하기 좀 어려웠지만 설명을 잘 해 주셨음
24. 수고하셨습니다 프린트 문제 일일이 설명해 주셔서 좋았습니다
25. cout<<“수고하셨습니다”<<endl;
26. 가위바위보 재미있어요
학습2 : C++프로그래밍기초
C반
7/32
1. 마지막 설명을 너무 빨리 해 주셔서
2. 좋은 강의 듣고 갑니다
3. 교수님 사랑합니다♡♡♡♡♡
4. 교수님 사랑합니다
5. C 언어 엄청 재미 있구 신나구 넘 졓아용♡
6. 일찍 오겠습니다
7. ♥...
8. 항상 웃어주세요~
9. 포인터 다시 설명해 주세요
10. 90문제 내주셔서 감사하고 언젠 열정적인 강의 감사합니다
11. 시험 제발 쉬운 것만 내주세요
12. 수업 열심히 듣겠습니다
13. 열심히 해서 오겠습니다
14. 오늘도 잘 들었습니다
15. 감사합니다~
16. ♥♥♥
17. ☆
학습2 : C++프로그래밍기초
J반
8/32
1. 좋은 수업이었습니다
2. 감사했어요 수고했어요
3. 수고했어요
4. 수고하셨습니다
5. 수고하셨습니다
6. 고생하셨습니다
7. 아직도 부족하지만 이전 학기보다 훨 이해하기 편합니다
8. 교수님 감사합니다^^
9. 수고하셨습니다
10. 요즘 들어 C언어가 싫지 않아지고 있습니다
시험 결과 때도 이 변화가 드러나길 바랍니다 :) 감사합니다
11. 감사합니다
12. 수고하셨습니다
13. 효과적으로 복습하는 방법이 뭘까요?
14. 교수님 수고하셨습니다
15. ☆ 고생하셨습니다
16. 감사합니다
자기 나름대로
17. 감사합니다 이해했습니다
수준에 맞는 하나의
아이템(주제,목적)을 정해 놓고
직접 프로그램 짜보면서 공부해라
학습2 : C++프로그래밍기초
9/32
오늘 8주차에 학습할 내용은?
이번 주부터는 학습3 부분이 시작됨~~~
학습2 : C++프로그래밍기초
1-1. C++의 개요
학습1 :
C++ 개요 및
개발환경구축
10/32
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++프로그래밍기초
( 학습3 )
구조체와 공용체, 열거형
11/32
학습2 : C++프로그래밍기초
3-1. 구조체 - struct
12/32
76쪽
1. 구조체의 정의 (76쪽)
구조체는 프로그래밍할 때 여러 데이터형이 복합되어 있는 것을
하나의 데이터형으로 사용하고 싶을 때 사용하는 기술이다.
학습2 : C++프로그래밍기초
2. 구조체의 표현 방법(76쪽)
13/32
학습2 : C++프로그래밍기초
3. 구조체변수의 선언 및 초기화(77쪽)
(1) 구조체 변수의 선언
14/32
학습2 : C++프로그래밍기초
(2) 구조체 변수의 초기화
15/32
학습2 : C++프로그래밍기초
(3) 구조체 포인터의 선언 및 초기화
16/32
학습2 : C++프로그래밍기초
17/32
4. 구조체 멤버 이용 방법(79쪽)
구조체로 선언된 변수에서 각 멤버의 데이터를 참조하여 이용하려면
다음과 같은 구조체 멤버 참조 연산자를 사용해야 한다.
따라하기 3-01.cpp
따라하기 3-02.cpp
학습2 : C++프로그래밍기초
수시(중간) 평가 실시
18/32
학습2 : C++프로그래밍기초
19/32
5. 구조체 배열의 선언 및 초기화(80쪽)
- 구조체 배열은 배열의 각 요소가 구조체로 되어 있다.
- 따라서 선언과 초기화 방법은 일반 배열의 데이터 초기화 방법과 유사하다.
학습2 : C++프로그래밍기초
20/32
따라하기 3-03.cpp
따라하기 3-04.cpp
학습2 : C++프로그래밍기초
21/32
6. 구조체를 함수의 인수로 사용(83쪽)
- 함수의 인수로 구조체를 이용할 때는 구조체의 주소를 전달하게 된다.
- 따라서 구조체의 주소를 전달하기 위해서는 함수의 인수명 앞에 & 연산자
를 붙여 지정해야만 한다.
- 그러나 구조체배열에서는 배열명이 그 배열의 시작주소를 표시하므로
구조체배열명만 지정하면 된다.
따라하기 3-05.cpp
학습2 : C++프로그래밍기초
질문?
22/32
학습2 : C++프로그래밍기초
23/32
◀작성해보자 3-1▶ 파일명 : 자기학번-3-1.cpp
우리 학과의 학생성적처리 프로그램을 작성하려고 한다.
다음에 제시한 <처리조건>을 지켜 프로그램을 작성해 보여라.
처리조건 예시는 교제 84 쪽 참조
학습2 : C++프로그래밍기초
24/32
◀작성해보자 3-2▶ 파일명 : 자기학번-3-2.cpp
앞의 <작성해보자-3-1.cpp>에서 작성한 프로그램을
<실행결과 예>에서 보인 것처럼“평균”점수를 기준으로“석차”를 구하여
출력하는 프로그램으로 버전업 시켜 보라.
결과 예시는 교제 84 쪽 참조
학습2 : C++프로그래밍기초
25/32
3-2. 공용체 - union
1. 공용체의 표현방법
따라하기 3-06.cpp
85쪽
학습2 : C++프로그래밍기초
2. 공용체의 초기화 및 참조
따라하기 3-07.cpp
따라하기 3-08.cpp
26/32
학습2 : C++프로그래밍기초
27/32
3-2. 열거형 - enum
따라하기 3-09.cpp
따라하기 3-10.cpp
85쪽
학습2 : C++프로그래밍기초
Q/A
28/32
90쪽
Q1. 구조체, 공용체, 열거형을 지정하는 키워드(명령어)는?
A1. 구조체는 struct, 공용체는 union, 열거형은 enum 이다.
Q2. 구조체와 공용체의 차이점은?
A2. 두 키워드의 사용상 차이점은 사용하는 메모리 공간에 있다.
구조체는 각 멤버들이 필요한 메모리 공간을 연속적으로 할당 받아 이용하게
된다. 그러나 공용체는 멤버 중에서 가장 크게 필요로 하는 멤버의 메모리공
간
만을 할당받아 다른 멤버와 공용으로 이용한다는 점에서 차이가 있다.
Q3. 열거형은 언제 사용하면 좋은가?
A3. 정수형 상수들을 변수 리스트로 만들어 프로그램할 때 사용하면 편리하다.
Q4. 구조체 태그명을 card 라고 하고, 정수형 멤버 a, b, c 로 갖는 구조체변수를
student를 선언하는 코딩은 어떻게 하면 되는가?
A4. struct card {
int a, b, c;
} student;
학습2 : C++프로그래밍기초
29/32
Q5. 공용체태그명을 card 로 하고, 정수형 멤버를 a, b, c로 갖는
공용체변수를 comjung를 선언하는 코딩은 어떻게 하면 되는가?
A5. union card {
int a, b, c;
} comjung;
Q6. 상수 10, 20, 30 을 변수 리스트 A, B, C 로 정의하여 이용하고 싶다면
열거형으로 어떻게 코딩하는가?
A6. enum { A=10, B=20, C=30 };
Q7. 앞의 Q6과 동일한 결과를 보이는 상수 10, 20, 30을 심볼 A, B, C로 정의하여
이용하고 싶다면 #define 으로 어떻게 코딩하면 되는가?
A7. #define A 10
#define B 20
#define C 30
A8. enum 과 #define 의 차이점은?
Q8. enum은 정수형 상수에 대해서만 변수 리스트로 정의해 사용할 수 있지만
#define은 정수, 실수, 문자, 문자열상수 모두에 사용할 수 있는 명령어이다
학습2 : C++프로그래밍기초
30/32
능력향상실습문제
중간시험 준비로 제시되었던 문제였음…
91쪽
학습2 : C++프로그래밍기초
질문?
31/32
학습2 : C++프로그래밍기초
32/32
능력향상과제(7)
작성하여 제출하자
오늘도 수고했다