제3장 게임기본모듈 Page 153 ~ 182.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
5.2 애니메이션 Page 283 ~ 295.
Chapter 7. 조건문.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
2007 1학기 10 함수 활용.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
개정판 누구나 즐기는 C언어 콘서트 제8장 함수 출처: pixabay.
제5장 제어명령
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
포인터 활용 포인터 활용.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
임베디드 실습 # LED, 7’Segment 제어
제8장 배열 1부 8.1 배열 8.2 배열의 초기화 8.3 배열의 응용 8.4 정렬과 탐색 8.5 다차원 배열.
2007 1학기 11 프로젝트 기초 실습.
14장. 포인터와 함수에 대한 이해.
2019년 1월 16일 오후 6시 15분 제 6 장 함수
11장. 1차원 배열.
13. 연산자 오버로딩.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
어서와 C언어는 처음이지 제14장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
제어문 & 반복문 C스터디 2주차.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
Chapter 08. 함수.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
계산기.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Flow Diagram IV While.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
어서와 C언어는 처음이지 제23장.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
수업 내용 수업 목표 강의 내용 강의 계획서 교과서 및 참고도서 평가 방법 수강생의 학습 방법 제안 강의자료 사이트
실 습 2.
어서와 C언어는 처음이지 제22장.
Presentation transcript:

제3장 게임기본모듈 Page 153 ~ 182

3.6 메뉴의 선택과 진행 1 2

3.6 메뉴의 선택과 진행 메뉴 선택에 의해 처리할 부분을 함수로 만들고, 번호를 선택하면 해당 함수를 호출하는 것 프로그램 실행 -> 화면에 메뉴 출력 -> 메뉴 번호 입력(반복문 while문) -> 해당 번호 함수 호출하여 출력(선택문 switch case문) -> 처리 종료 후 메뉴로 복귀 프로그램이 3개의 메뉴로 구성(3번은 종료) 메뉴 표시 함수 menu_display(메뉴 출력, 번호 입력, 입력된 번호 반환) 1번 메뉴 함수 hamburger(1번 메뉴 처리부분) 2번 메뉴 함수 spaghetti(2번 메뉴 처리부분) switch case문에서 default는 숫자 1, 2이외의 숫자, 문자 입력 시 벗어나 while문에 의해 메뉴 출력 선택된 메뉴 함수 호출시 이전에 표시된 메뉴 부분을 지움 호출한 함수를 처리하고 main으로 돌아가기 전에 프로그램 실행을 멈추기 위한 함수 press_any_key

[예제 361]메뉴 프로그램 메뉴로 진행하는 프로그램

[예제 361]메뉴 프로그램 #include <stdio.h> #include <conio.h> //getch함수 #include <windows.h> //system(“cls”) int menu_display(void); void hamburger(void); void spaghetti(void); int main(void) { int c; while((c=menu_display()) != 3) //c가 3이면 실행 종료 switch(c) case 1 : hamburger(); break; case 2 : spaghetti(); break; default : break; //기타 숫자 입력, 메뉴 출력 } return 0;

[예제 361]메뉴 프로그램 int menu_display(void) { int select; system("cls"); printf("간식 만들기\n\n"); printf("1. 햄버거 \n"); printf("2. 스파게티\n"); printf("3. 프로그램 종료\n\n"); printf("메뉴번호 입력>"); select=getch()-48; //문자 1, 2의 아스키 코드 49, 50 return select; }

[예제 361-1]하위 메뉴 프로그램 하위 메뉴 프로그램

[예제 361-1]하위 메뉴 프로그램 void hamburger(void) { system("cls"); printf("햄버거 만드는 방법\n"); printf("중략\n"); press_any_key(); } void spaghetti(void) printf("스파게티 만드는 방법\n"); void press_any_key(void) printf("\n\n"); //2번 새로운 행 printf("아무키나 누르면 메인 메뉴로..."); getch();

3.6.6 메인메뉴와 서브메뉴 1 2

3.6.6 메인메뉴와 서브메뉴 서브 메뉴란 메인 메뉴를 선택하면 나타나는 다른 메뉴 서브 메뉴를 사용하면 전 단계인 메인 메뉴로 돌아가는 부분이 필요 메인 메뉴: 1.햄버거, 2.스파게티, 3.프로그램 종료 서브메뉴 햄버거: 1.치킨버거, 2.치즈버거, 3.메인메뉴로 이동 서브메뉴 스파게티: 1.토마토스파게티, 2.크림스파게티, 3.메인메뉴로 이동

3.6.6 메인메뉴와 서브메뉴 main menu_display sub_main01 sub_menu_display1

[예제 362] 서브있는 메뉴프로그램 #include <stdio.h> #include <conio.h> #include <stdlib.h> int menu_display(void); int sub_menu_display01(void); //햄버거에 대한 서브 메뉴 출력과 번호 입력 int sub_menu_display02(void); //스파게티에 대한 서브 메뉴 출력과 번호 입력 void sub_main01(void); //햄버거에 대한 서브 메뉴 제어 void sub_main02(void); //스파게티에 대한 서브 메뉴 제어 void chicken_burger(void); void cheese_burger(void); void tomato_spaghetti(void); void cream_spaghetti(void); void press_any_key(void); //아무키나 누르면 이전 메뉴로 int main(void) { int c; while((c=menu_display())!=3) switch(c) case 1 : sub_main01(); break; case 2 : sub_main02(); break; default : break; } return 0;

[예제 362]서브있는 메뉴 프로그램 int menu_display(void) { int select; system("cls"); printf("간식 만들기\n\n"); printf("1. 햄버거 \n"); printf("2. 스파게티\n"); printf("3. 프로그램 종료\n\n"); printf("메뉴번호 입력>"); select=getch()-48; //문자 1, 2의 아스키 코드 49, 50 return select; }

[예제 362]서브있는 메뉴 프로그램 void sub_main01(void) { int c; while((c=sub_menu_display01())!= 3) switch(c) case 1 : chicken_burger(); break; case 2 : cheese_burger(); break; default : break; }

[예제 362]서브있는 메뉴 프로그램 int sub_menu_display01(void) { int select; system("cls"); printf("햄버거 만들기\n\n"); printf("1. 치킨버거\n"); printf("2. 치즈버거\n"); printf("3. 메인 메뉴로 이동\n\n"); printf("메뉴번호 입력>"); select=getch()-48; return select; }

[예제 362]서브있는 메뉴 프로그램 void chicken_burger(void) { system("cls"); printf("치킨버거 만드는 방법\n"); printf("중략\n"); press_any_key(); } void cheese_burger(void) printf("치즈버거 만드는 방법\n");

[예제 362]서브있는 메뉴 프로그램 void sub_main02(void) { int c; while((c=sub_menu_display02())!= 3) switch(c) case 1 : tomato_spaghetti();break; case 2 : cream_spaghetti(); break; default : break; }

[예제 362]서브있는 메뉴 프로그램 int sub_menu_display02(void) { int select; system("cls"); printf("스파게티 만들기\n\n"); printf("1. 토마토 스파게티 \n"); printf("2. 크림 스파게티 \n"); printf("3. 메인 메뉴로 이동\n\n"); printf(“메뉴번호 입력>"); select=getch()-48; return select; }

[예제 362]서브있는 메뉴 프로그램 void tomato_spaghetti(void) { system("cls"); printf("토마토 스파게티 만드는 방법\n"); printf("중략\n"); press_any_key(); } void cream_spaghetti(void) printf("크림 스파게티 만드는 방법\n");

[예제 362]서브있는 메뉴 프로그램 void press_any_key(void) { printf("\n\n"); printf("아무키나 누르면 이전 메뉴로..."); getch(); }

[Report 309] 다음과 같은 메뉴에 의해 실제 값을 입력받아 해당 연산을 처리하는 프로그램을 작성 메인 메뉴 서브 메뉴 사칙 연산 1. 덧셈(+)연산 2. 뺄셈(-)연산 3. 나눗셈(/)연산 4. 곱셈(*)연산 5. 나머지(%)연산 6. 메인 메뉴로 이동 2. 로그 연산 자연로그(log)연산 상용(log10)연산 메인 메뉴로 이동 3. 종료

3.7 난수 생성 난수(Random number) : 특정한 배열순서나 규칙을 가지지 않는 임의의 수 함수 rand()를 사용하며 헤더파일 <stdlib.h> 포함, 0≤rand()≤32767 사이의 정수 난수 1개 발생 함수와 관련된 라이브러리 함수(난수 초기화) void srand(unsigned int seed); 같은 난수 생성: 인수를 같은 상수 사용 다른 난수 생성: 인수를 현재시간 설정, 함수 time(NULL) 사용하며 헤더파일 <time.h> 포함

[예제 371] 난수 15개 출력 함수 srand의 초기값 10으로 설정하여 난수 15개 출력

[예제 371] 난수 15개 출력 #include <stdio.h> #include <stdlib.h> int main() { int i; srand(10); for(i=1;i<=15;i++) printf("%2d:%5d\n", i, rand()); return 0; }

[예제 372] 난수 15개 출력 함수 srand의 초기값 10으로 설정하여 난수 10개 출력하여 예제_371과 비교

[예제 373] 난수 15개 출력 3번 비교 함수 srand의 초기값을 시간으로 설정 함수 time 사용(헤더파일 <time.h> 포함), 매 실행마다 다른 값 출력 확인 ->함수 srand의 초기값을 시간으로 설정하여 난수 15개 출력, 3번 반복 실행 비교

[예제 373] 난수 15개 출력 3번 비교 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i; srand(time(NULL)); for(i=1;i<=15;i++) printf("%2d:%5d\n", i, rand()); return 0; }

3.7.2 주어진 범위 난수 생성 %연산자 사용 정수 난수 생성 범위 프로그램 연산식 값의 범위 연산식 1~6 1~45 0~99 10~30 rand()%6+1; rand()%45+1; rand()%100; rand()%21+10;

[예제 374] 주사위 프로그램 주사위 10번 시행 시 눈금의 출력

[예제 374] 주사위 프로그램 #include <stdio.h> #include <stdlib.h> #include <time.h> //함수 time 사용 헤더파일 int main() { int i; srand(time(NULL)); for(i=1;i<=10;i++) printf("%2d:%2d\n", i, rand()%6+1); return 0; }

[예제 375] 로또번호 생성 로또 당첨번호 6개 생성, rand()%45+1;

[예제 375] 로또번호 생성 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i, j, lotto; srand(time(NULL)); for(i=0;i<=5;i++) lotto=rand()%45+1; printf("%2d\n", lotto); } return 0;

[Report 310] 주사위 빈도수 함수 rand를 이용하여 1~6 사이의 주사위 눈금 1000개를 생성하고, 각 눈금의 빈도수에 대한 확률을 구하는 프로그램 작성