AI 시대를 향유하는 AI 노마더

자바&Springboot플랫폼 과정/MariaDB

주사위눈 합/자판기 프로그램 만들기

AI노마더 2023. 12. 8. 18:31

 

 

주사위 눈의 총 횟수 구하기

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main() {
	int dice[6] = {0,0,0,0,0,0};
	int rdnum;
	int i;
	
	srand(time(0));
	
	for (i = 0; i < 100; i++){
		rdnum = rand ()%6 + 1;
		
		dice[rdnum - 1]++;
	}
	
	for (i= 0; i < 6; i++) {
		printf("%d] %d\n", i + 1, dice[i]);
	}
	
	return 0;
}

 

정규화

 

 

Entity Relation Diagram

ERD(엔티티-관계 다이어그램, Entity-Relationship Diagram)는 데이터베이스의 구조를 시각적으로 표현하는 데 사용되는 도구입니다. ERD는 데이터베이스 내의 여러 '엔티티'들(즉, 데이터 객체)과 그들 사이의 '관계'를 나타내는 다이어그램입니다.

ERD의 주요 구성 요소는 다음과 같습니다:

● 엔티티(Entity):

엔티티는 데이터베이스에서 데이터를 저장하거나 나타내는 항목입니다. 예를 들어, 학교 데이터베이스에서는 '학생', '교사', '과목' 등이 엔티티가 될 수 있습니다. 보통 직사각형으로 표현됩니다.

● 속성(Attribute): 

속성은 엔티티의 특성이나 성질을 나타냅니다. 데이터베이스의 열(column)에 해당합니다. 예를 들어, '학생' 엔티티의 속성으로는 '학번', '이름', '생년월일' 등이 있을 수 있습니다. 보통 타원이나 원으로 표현되며, 엔티티에 연결되어 표현됩니다.

●  관계(Relationship):

관계는 엔티티들 사이의 연결을 나타냅니다. 이는 한 엔티티가 다른 엔티티와 어떻게 관련되어 있는지를 보여줍니다. 예를 들어, '학생'과 '과목' 사이에는 '수강'이라는 관계가 있을 수 있습니다. 관계는 보통 선으로 표현되며, 관계의 이름이나 특성을 라벨로 추가하기도 합니다.

● 카디널리티(Cardinality) 및 옵셔널리티(Optionality):

 카디널리티는 관계의 수량적 특성을 나타내며, 한 엔티티가 다른 엔티티와 얼마나 많은 관계를 가질 수 있는지를 표시합니다 (예: 1:1, 1:M, M:N). 옵셔널리티는 관계의 필수 여부를 나타냅니다.

ERD는 데이터베이스를 설계하고, 데이터 구조를 이해하며, 시스템의 요구 사항을 분석하는 데 매우 유용합니다. 복잡한 데이터 관계를 시각적으로 표현하여, 데이터베이스의 구조를 더 쉽게 이해하고 효과적으로 관리할 수 있도록 도와줍니다.


SWITCH CASE 구문

  • SWITCH CASE구문은 C언어에서 여러 조건을 효율적으로 처리하기 위해 사용되는 제어구문입니다. 이련의 값이나 조건에 따라 다른 코드 블록을 실행할 수 있게해줍니다.
switch (expression) {
    case value1:
        // value1 일 때 실행될 코드
        break;
    case value2:
        // value2 일 때 실행될 코드
        break;
    // 추가적인 case들...
    default:
        // 어떤 case도 일치하지 않을 때 실행될 코드
}
  •  SWITCH (expression)
    • 이 구문은 평가될 표현식을 가집니다. 이표현식의 결과값은 case레이블과 비교됩니다.
  • CASE VALUE
    • 각 case키워드는 하나의 가능한 값(Value)를 나타냅니다. 표현식의 결과가 이값과 일치할 경우, 해당 case 블록의 코드가 실행됩니다.
  • BREAK
    • 각 case 블록의 끝에는 보통 break문이 있습니다. 이는switch 구문을 빠져나오게 하는 역할을 합니다. break가 없으면 프로그램은 연속적으로 다음 case를 실행합니다. (이를 fall-through라고 합니다.)
  • DEFAULT
    • 이는 선택적인 부분이며, 어떤 case도 일치하지 않을떄 실행될 코드 블록을 정의합니다. 이는 마지막에 위치하는 것이 일반적입니다. 

 

 

자판기 프로그램 만들기!

#include <stdio.h>
#include <stdbool.h>

int main () {
	bool poweron = true;
	int choice;
	int balance = 0;
	int change;
	
	while (poweron){
		int pdSprite = 700;
		int pdCoke = 700;
		int pdLatte = 1200;
		int pdCoffee = 1200;
		
		printf ("\n금액을 입력하여주세요!>>\n");
		scanf("%d", &balance);
		
		if (700 < balance && balance < 1200){
			printf ("상품을 선택하여 주세요.\n");
			printf ("1번] 스프라이트 |700원\n");
			printf ("2번] 코카콜라   |700원\n"); 
			printf ("현재 잔액 = %d원.\n", balance);
			scanf ("%d", &choice);
			
			switch (choice) {
				case 1:
					printf ("스프라이트를 선택하셨습니다.\n");
					printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
					balance -= pdSprite ;
					printf ("현재 잔액: %d ", balance);
					break;
				case 2:
					printf ("코카콜라를 선택하셨습니다.\n");
					printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
					balance -= pdCoke ;
					printf ("현재 잔액: %d ", balance);
					break;
				case 3:
					printf ("잔액이 부족합니다.\n"); 
					balance -= pdLatte ;
					printf ("현재 잔액: %d ", balance);
					break;
				case 4: 
					printf ("잔액이 부족합니다.\n");
					balance -= pdCoffee ;
					printf ("현재 잔액: %d ", balance);	
					break;
				default:
					break;
			}
		} else if (balance > 1200){
			printf ("상품을 선택하여 주세요.\n");
			printf ("1번] 스프라이트 |700원\n");
			printf ("2번] 코카콜라   |700원\n"); 
			printf ("3번] 카페라떼   |1200원\n");
			printf ("4번] 아메리카노 |1200원\n"); 
			printf ("현재 잔액 = %d원.\n", balance);
			scanf ("%d", &choice);
			
			switch (choice) {
			case 1:
				printf ("스프라이트를 선택하셨습니다.\n");
				printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
				balance -= pdSprite ;
				printf ("현재 잔액: %d ", balance);
				break;
			case 2:
				printf ("코카콜라를 선택하셨습니다.\n");
				printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
				balance -= pdCoke ;
				printf ("현재 잔액: %d ", balance);
				break;
			case 3:
				printf ("카페라떼를 선택하셨습니다.\n");
				printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
				balance -= pdLatte ;
				printf ("현재 잔액: %d ", balance);
				break;
			case 4: 
				printf ("아메리카노를 선택하셨습니다.\n");
				printf ("상품 나오는 곳에서 제품을 수령해주세요!\n");
				balance -= pdCoffee ;
				printf ("현재 잔액: %d ", balance);	
				break;
			default :
				break;
			}
		} else {
			printf ("최소 주문금액은 700원 입니다.\n");
			balance += balance;
			printf ("현재 잔액 : %d원", balance); 
		}
	}
	return 0;
}