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

자바&Springboot플랫폼 과정/MariaDB

검색미션/라인그리기/가위바위보 게임 만들기

AI노마더 2023. 12. 1. 18:06

수업내용

 

세부검색 미션

1. 학년별 학생수를 조회하시오.

SELECT grade, COUNT(sno) FROM tbl_students GROUP BY grade;

 

2. 학년, 반별 학생수를 조회하시오.

SELECT grade, class, COUNT(*) FROM tbl_students GROUP BY grade, class;

 

3. 학년, 반별 국어점수의 합계를 조회하시오.

SELECT grade, class, SUM(kor_score) FROM tbl_students GROUP BY grade, class;

 

4. 학년, 반별 국어점수, 영어점수, sql점수를 합한 총점을 내림차순으로 조회하시오.

SELECT grade, class, SUM(kor_score + eng_score + sql_score) AS 총점
FROM tbl_students GROUP BY grade, class ORDER BY 총점 DESC;

 

5. sql 점수가 최저점인 학생의 이름과 학년, 반을 조회하시오.

SELECT sname, grade, class FROM tbl_students 
WHERE sql_score = (SELECT MIN(sql_score) FROM tbl_students);

 

6. 국어, 영어, sql 점수의 합이 1000점 이상인 학년과 반을 조회하시오. 

SELECT grade, class, SUM(kor_score + eng_score + sql_score) AS 총점
FROM tbl_students GROUP BY grade, class HAVING 총점 > 1000;

 

 

줄(라인)을 그려주는 함수 만들기 

  • 함수를 만든다. 줄(라인)을 그려주는 함수.
  • 함수이름 : linePrint
  • 함수의 입력부(매개변수)의 개수 : 2개
    • 기호(문자) 자료를 받을 수 있어야 한다. 
      • -> 해당기호를 화면에 출력하기 위함.
    • 숫자 자료를 받을 수 있어야 한다. 
      • -> 해당기호를 몇 번 화면에 출력할 것인지 정하기 위함.

코드구현

#include <stdio.h>

void linePrint(char c, int n){
    int i;
    
    for(i = 0; i < n; i++) {  
    printf("%c", c);
    }
    return;
}

int main() {
    char c = 'A';
    int n = 25;
    
    printf("함수에 넣을 기호를 입력하세요>>");
    scanf("%c", &c);
    printf("반복하고 싶은 횟수를 입력하세요>>");
    scanf("%d", &n);
    
    linePrint(c, n);
    
    return 0;
}

 

 

 

가위바위보 게임 만들기

  • 컴퓨터가 가위/바위/보 중 하나를 낸다.
    • [랜덤 수를 발생시켜 가위/바위/보 중 하나를 낸 것으로 한다.]
      • 랜덤수의 범위는 1~3으로 한다.
      • 1: 가위, 2: 바위, 3: 보 로 한다.
    • 랜덤수를 발생시켜 com이라는 변수에 저장해 둔다. 
      • com의 자료형은 int
  • 나도 가위/바위/보 중 하나를 낸다.
    • 키보드로 숫자를 입력받는다.
      • 입력받는 숫자의 범위는 1~3으로 한다. 
      • 1: 가위, 2: 바위, 3: 보 로 한다. 
    • 키보드로 입력받은 수를 user라는 변수에 저장해 둔다. 
      • user 자료형은 int
  • 누가 이겼는지 판별 한다.
    • 컴퓨터가 이긴 경우...
      • 컴퓨터가 1(가위)을 내었을 때
        • 사용자가 3(보)을 내었다.
      • 컴퓨터가 2(바위)를 내었을때
        • 사용자가 1(가위)를 내었다.
      • 컴퓨터가 3(보)를 내었을때
        • 사용자가 2(바위)를 내었다. 
    • 내가 이긴 경우
      • 내가 1(가위)을 내었을 때
        • 컴퓨터가 3(보)을 내었다.
      • 내가 2(바위)를 내었을때
        • 컴퓨터가 1(가위)를 내었다.
      • 내가 3(보)를 내었을때
        • 컴퓨터가 2(바위)를 내었다. 
  • 안내메시지를 제공한다.
  • 계속할 건지 물어본다. 

 


코드구현

#include <stdio.h> 

int makeRandomNumber(){
	srand(time(0));
	int a = rand() % 3 + 1;
	
	return a;
}

int main(){
	int com = makeRandomNumber();
	int user;
	int coin;

	do{
		printf("\n");
		printf("가위바위보를 시작하겠습니다.\n");
		printf("가위는1번, 바위는2번,보는 3번입니다.\n");
		printf("자 번호를 입력해주세요!!>>");
		scanf("%d", &user);
		
		if (user == 1 && com == 2){
			printf("\n");
			printf("전 바위입니다!");
			printf("YOU LOST, 으하하!!\n");
		}
		else if (user == 2 && com == 3){
			printf("\n");
			printf("전 보!!입니다!"); 
			printf("YOU LOST, 제가 이겨버렸네요.\n");
		}
		else if (user == 3 && com == 1){
			printf("\n");
			printf("전 가위!!입니다!!"); 
			printf("YOU LOST, ㅋㅋㅋㅋ\n");
		} 
		else if (user == com){
			printf("\n");
			printf("어이쿠! 비겼네요! 다시한번!\n");
		} 
		else {
			printf("\n");
			printf("당신이 이겼습니다. 축하드려요!!\n");
		} 
		
		printf("\n");
		printf("한 번더 게임을 하시겠어요??\n");
		printf("계속하시길 원하시면 1번을, 끝내시려면 2번을 입력해주세요!>>");
		scanf("%d", &user);
		
	} while (user == 1);
		
	printf("아쉽네요 ㅠㅠ 다음에 또 뵐게요!! ");
	return 0;
}