Chapter 12 구조체와 열거형 구조체 열거형.

Slides:



Advertisements
Similar presentations
회사소개 메디컬교육의 대표브랜드, 아라에듀 메디컬 교육의 대표 브랜드 아라에듀는 아라메디컬그룹의 자회사로서 병원 핵심역량 강화를 위한 다양한 초우량의 프로그램을 보유하고 있으며 대한민국 최고의 교육 컨텐 츠를 통해 조직과 개인의 성장을 리드해 가고 있습니다. Ⅰ. 회사.
Advertisements

UNIST 2014 Academic Calendar Notes [42] March '14April '14May '14 공휴일 SuMTuWThFSaSuMTuWThFSaSuMTuWThFSa 3/1 ( 토 ) 삼일절 /5 ( 월 ) 어린이날
11 주차 : Structures and Unions. 2 Introduction structure 는 다른 타입들의 변수를 모은 타입이며 그 타입들을 structure 의 멤버 라 한다. union 은 다른 타입의 여러 변수들을 하나 의 기억 장소에 보관함으로써 한.
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
UNIST 2015 Academic Calendar
요일과 월 Sun. Sunday 일요일 Mon. Monday 월요일 Tue. Tuesday 화요일
제6장 조건문.
1차 발표 학번 이름 정성화 김수현.
제 3 장 변수와 자료형.
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
C 언어 문자 집합과 토큰 C 프로그램의 구조 C 소스 코딩을 준비하는 방법
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
December 2011년 성주초 5학년2반 기념 달력 소비자의날 4 5 자원봉사자의날 6 7 대설
Sun Mon Tue Wed Thu Fri Sat
1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August
2013 January 2012년 도원초 4학년1반 기념 달력 1신정
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
Part 12 구조체와 공용체 ©우균, 창병모 ©우균, 창병모.
Chapter 8 – 형 정의, 구조형 및 공용형 Outline 8.1 형 정의 typedef 8.2 구조형 struct
구조체 활용 구조체 활용.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
8. 객체와 클래스 (기본).
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
구조체 struct 구조체와 함수 구조체의 배열, sizeof 연산자 열거형 enum 형 정의 typedef
6장. printf와 scanf 함수에 대한 고찰
13.5 GregorianCalendar 클래스 13.6 Vector 클래스와 Enumeration 인터페이스
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
3장. 포인터, 배열, 구조체 포인터, 배열, 구조체 학습목표 기본적 데이터 타입
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
제 3 장 상수와 변수
1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
Derived Types-- Enumerated, Structure and Union
1차 발표: 프로젝트 소개 학번: 이름: 이철환.
2003년도 학생용 달력 이 서식 파일을 인쇄해서 벽걸이 달력으로 사용할 수 있고 사용자의 프레젠테이션에 필요한 부분만 복사해서 사용할 수도 있습니다. 새 디자인 서식 파일을 적용하면 달력의 모양을 바꿀 수 있습니다.
Calendar 2012 Photopolio..
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
EBS English와 함께하는 영어 쿠킹 클래스
November 일 월 화 수 목 금 토
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 22. 구조체와 사용자 정의 자료형1.
문자열 처리하기 working with Strings
C 프로그래밍 기초.
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
자바 5.0 프로그래밍.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
컴퓨터 프로그래밍 기초 - 11th : 파일 입출력 및 구조체 -
2015 DESK CALENDER CHECK YOUR SCHEDULE FOR 365 DAYS.
어서와 C언어는 처음이지 제16장.

개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
POWER POINT TEMPLATE 2019 CALENDAR.
Presentation transcript:

Chapter 12 구조체와 열거형 구조체 열거형

구조체 구조체가 필요한 상황: 세 번의 과제 성적, 두 번의 중간고사 성적, 그리고 기말고사 성적을 이용하여 각 학생의 프로젝트 평균 점수, 중간고사 평균 점수, 학기 평균 점수, 그리고 학점을 구하는 응용 프로그램 구조체 선언: struct student_struct { int student_idno; char student_name[31]; int project1_score; int project2_score; int project3_score; int test1_score; int test2_score; int final_exam_score; char letter_grade; }; /* end student_struct */ 구조체의 메모리 구조:

구조체형 선언 구조체 : 관련된 데이터인 멤버(구성 요소)의 모임인 유도된 , 사용자 정의, 구조적 데이터형. 멤버는 상이한 데이터형도 가능. 구조체 선언 문법 struct StructureTypeName { StructureMemberDeclarationList }; /* end struct */ 예제 12.1 struct faculty_struct { int faculty_idno; char faculty_name[31]; int age; char gender; float salary; }; /* end faculty_struct */ 예제 12.2 struct class_enrollment_struct { int course_code; int acadmic_year; char semester; int enrollment; }; /* end class_enrollment_struct */

구조체 변수의 선언 예제 12.3 예제 12.4 : 구조체형과 구조체 변수를 함께 선언 예제 12.5 : 중첩된 구조체 선언 struct faculty_struct faculty_record; 예제 12.4 : 구조체형과 구조체 변수를 함께 선언 struct faculty_struct { int faculty_idno; char faculty_name[31]; char age; float salary; } faculty_record; 예제 12.5 : 중첩된 구조체 선언 struct name_struct { char last_name[16]; char first_name[16]; }; /* end name_struct */ struct name_struct faculty_name; int age; char gender; }; /* end faculty_struct */

구조체 멤버의 참조와 구조체 변수의 초기화 예제 12.7 : 구조체 멤버의 참조 예제 12.8 : 구조체 변수의 초기화 struct faculty_struct faculty_record; faculty_record.faculty_idno = 1200; // 구성요소 선택 연산자 혹은 구조체 멤버 연산자 ‘.’ strcpy(faculty_record .faculty_name .last_name,"Dixon"); strcpy(faculty_record .faculty_name .first_name,"Robert"); faculty_record .age = 35; faculty_record .gender = 'M'; faculty_record .salary = 32000.00; 예제 12.8 : 구조체 변수의 초기화 struct faculty_struct faculty_record = {1200, {"Dixon", "Robert“}, 35, 'M', 32000.00};

구조체 변수의 연산 예제 12.9 : 구조체 변수의 연산 : 복사 및 함수 전달 struct faculty_struct faculty_record_1, faculty_record_2; faculty_record_2 = faculty_record_1; //동일한 형의 구조체 변수에 복사 부적절한 연산: 입출력 함수, 산술 연산자, 비교 연산자, … struct faculty_struct f1, f2, f3; scanf("%d", &f1); printf("%d", f2); f1 = f2 + f3; if (f1 == f2) . . . . . ;

함수 매개변수로서의 구조체 임의의 다른 데이터형의 변수와 동일 그림 12.2 : 구조체 변수를 반환하는 함수 함수 선언 : int computed_project_average(struct student_struct s) 함수 호출 : proj_avg = computed_project_average(stu_record); 그림 12.2 : 구조체 변수를 반환하는 함수 struct student_struct student_data(void) { /* Local variables: */ struct student_struct s; char new_line; /* Function body: */ printf("***> Enter student idno : "); scanf("%d", &s.student_idno); scanf("%c", &new_line); printf("***> Enter student name : "); gets(s.student_name); … printf("***> Enter final exam score : "); scanf("%d", &s.final_exam_score); return s; } /* end function student_data */;

구조체형의 포인터 매개변수 함수의 매개변수로 포인터를 이용하여 구조체 변수를 전달 함수 호출 void input_student_data(struct student_struct *s) { /* Local variables: */ char new_line; /* Function body: */ printf("***> Enter student idno : "); scanf("%d", &s->student_idno); scanf("%c", &new_line); printf("***> Enter student name : "); gets(s->student_name); … printf("***> Enter final exam score : "); scanf("%d", &s->final_exam_score); }/* end function input_student_data */ 함수 호출 input_student_data(&stu_record); ‘->’ : 간접 멤버 선택 연산자(indirect member selection operator) s->student_idno와 (*s).student_idno는 동일

열거형 (enumerated type) 정의 : 식별자에 의해 표현되는 정수 상수값의 집합 열거형 선언 : 사용자 정의형이므로 형을 반드시 선언!! enum EnumerationTypeName EnumeratorList ; /* end enum */ 열거형 변수 선언 enum EnumerationTypeName EnumeratedVariableList; 예제 12.10 enum month_names_enum { // 열거형 선언 JANUARY, FEBRUARY, MATCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }; /* end enum montH_names_enum */ enum month_names_enum month; // 열거형 변수 선언

열거형 선언의 다른 예와 열거형 변수의 연산 예제 12.11 열거형 변수의 연산 enum department_name_enum { SALES = 1, MIS = SALES + 3, ACCOUNTING = 3, MARKETING }; /* end enum department_name_enum */ enumerator SALES를 1, MIS를 4, ACCOUNTING을 3, MARKETING을 4로 설정 enum month_names_enum { JANUARY = 1, FEBRUARY, MATCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER }; /* end enum montH_names_enum */ JANUARY를 1, FEBRUARY를 2, 그리고 마지막으로 DECEMBER를 12로 설정 열거형 변수의 연산 열거형 상수를 열거형 변수에 지정할 수 있다. 정수값 혹은 열거형 상수가 이용되는 정수식의 값을 열거형 변수에 지정할 수 있다. 열거형 변수에 값을 입력할 수 있다. 그러나, 입력한 값은 열거형 상수가 될 수 없다. 열거형 변수를 출력할 수 있다. 열거형 변수의 값을 정수, 열거형 상수, 혹은 동일한 형의 다른 열거형 변수와 비교할 수 있다. 다른 데이터형처럼, 함수들 간에 열거형 변수를 전달할 수 있다.

구조체의 배열과 배열의 구조체 구조체의 배열 배열의 구조체 struct student_struct { int idno; int year; char status; }; /* end student_struct */ struct student_struct student[ARRAY_SIZE]; 배열의 구조체 struct grades_struct { int list_size; char letter_grades[60]; }; /* end grades__struct */