본문 바로가기
C/Example

[C] 로그인 프로그램 예제 (static 변수)

by 꾸압 2021. 3. 8.

<예제>

ID, Password 를 받아 3회 제한된 횟수의 로그인 프로그램을 제작하세요.

   1) 사용자로부터 ID 와 Password 를 입력 받는다.

   2) 로그인 시도 횟수가 일정 한도를 넘으면 프로그램을 종료시킨다.

   3) ID, Password 가 일치하면 로그인 성공 메세지를 출력

   4) ID, Password가 일치하지 않으면 한도 횟수까지 다시 시도한다.

 

 

<해설>

#include <stdio.h>
#include <stdlib.h>
#define SUCCESS 1	// SUCCESS 등을 변수로 설정하지 않고 #define 로 쓴건 
#define FAIL 2		// 굳이 변수를 추가하여 코드를 길게 하지 않고 단순화시키기 위함
#define LIMIT 3		// Java 의 final 같은 기능

int check(int id, int password);

int main(){
	
	int id, password, result;
	
	while(1){
		printf("Id : ");	scanf(" %d", &id);
		printf("Password : ");	scanf(" %d", &password);
		result = check(id, password);
		if( result == SUCCESS ) break;
	}
	printf("로그인 성공\n");
	
	return 0;
}

int check(int id, int password){
	
	static int super_id = 1234;			//static을 씀으로써 while에서 check 함수가 켜질 때 마다 
	static int super_password = 5678;	//아이디와 비밀번호를 생성하지 않고 프로그램이
	static int try_count = 0;			//마칠 때까지 값을 고정시키기 위함
	try_count++;
	
	if( id == super_id && password == super_password){
		return SUCCESS;
	}
	else{
		if( try_count == LIMIT){
			printf("횟수 초과\n");
			exit(1);
		}
		return FAIL;
	}
	
} 

 

 

'C > Example' 카테고리의 다른 글

[C] 배열 예제 (심화)  (0) 2021.03.08
[C] 배열 예제  (0) 2021.03.08
[C] 예제 (함수, 포인터, 구조체)  (0) 2021.03.05
[C] 예제 (매개변수 포인터)  (0) 2021.03.05

댓글