파이썬으로 회원가입 프로그램을 만들어보자.

print('==============================')
print('회원가입')
print('==============================')

register = False

while not register:
    print('회원가입을 진행하시겠습니까?\n y:진행     N:취소')
    register_input = input('>> ')
    register_input = register_input.lower()

    if register_input == 'y':
        register = True
        print('==============================')
        print('회원가입이 진행됩니다.')
        print('==============================')
    elif register_input == 'n':
        print('==============================')
        print('회원가입이 취소됩니다.')
        print('==============================')
        exit()
    else:
        print('입력 값을 확인해주세요.')

users = [] # 회원정보 저장

while True:

    user = {} # 회원 하나하나의 정보

    username = input('ID: ')
    while True:
        password = input('PW: ')
        password_confirm = input('PW 확인: ')
        if password == password_confirm:
            break
        else:
            print('비밀번호가 일치하지 않습니다.')
    name = input('이름: ')
    while True:
        birth_date = input('생년월일(6자리): ')
        if len(birth_date) == 6:
            break
        else:
            print('생년월일 입력값이 올바르지 않습니다.')
    email = input('이메일: ')

    # user 딕셔너리에 추가
    user['username'] = username
    user['password'] = password
    user['name'] = name
    user['birth_date'] = birth_date
    user['email'] = email
    
    users.append(user) # users 리스트에 추가
    print(users)

    print("------------------------------")
    print(f"{user['name']} 님 가입을 환영합니다!")
    print("------------------------------")

    print('회원가입을 추가로 진행하시겠습니까?\n y:진행     N:취소')
    register_another_input = input('>> ')
    register_another_input = register_another_input.lower()

    if register_another_input == 'y':
        pass
    elif register_another_input == 'n':
        exit()

위에 입력한 회원가입 정보는 실제로 저장되지 않는다.

실제로 회원가입이 저장되기를 원한다면 데이터베이스와 연동하여 프로그램을 짜야한다.

'Back-End > Python' 카테고리의 다른 글

예외 처리와 파일 다루기  (0) 2023.08.10
객체지향  (0) 2023.08.09
함수  (0) 2023.08.07
자료구조 - 리스트 / 튜플 / 딕셔너리  (0) 2023.07.27
조건문과 반복문  (0) 2023.07.20

지금까지 공부한 내용을 바탕으로 회원가입 프로그램을 만들어보자.

import java.util.Scanner;

public class UserRegister {

    public static void main(String[] args) {

        System.out.println("======================");
        System.out.println("회원등록");
        System.out.println("======================");

        boolean register = false;
        Scanner sc = new Scanner(System.in);

        while (!register) {

            System.out.println("회원가입을 하시겠습니까?\ny: 진행    n:취소");
            System.out.print(">> ");
            String register_input = sc.nextLine();

            if (register_input.equalsIgnoreCase("y")) {
                register = true;
                System.out.println("======================");
                System.out.println("회원가입이 진행됩니다.");
                System.out.println("======================");
            } else if (register_input.equalsIgnoreCase("n")) {
                System.out.println("======================");
                System.out.println("회원가입이 종료됩니다.");
                System.out.println("======================");
                System.exit(0);
            } else {
                System.out.println("입력 값을 확인해주세요.");
            }
        }

다른 것과 혼동할 수 있기 때문에 구분할 수 있도록 꾸민다. 사용자에게 입력 받기 위해 Scanner를 자바 라이브러리에서 불러온다.(ctrl + space를 눌러 java.util 스캐너 객체를 불러온다.) in 인자를 통해 외부의 입력을 받도록 한다.

사용자로 하여금 올바르지 않은 값을 입력했거나 값을 다시 입력해야할 때, 프롬프트(입력창)를 띄우는 반복작업을 위해 반목문을 작성한다. println은 무조건 문자를 출력하고 개행한다. 개행하지 않고 사용자가 입력하는 커서가 되기 위해 print 함수를 쓴다. nextLine 함수는 문자열을 입력 받았을 때, 사용자의 입력을 대기하고 값을 입력한 뒤 엔터를 치면 변수에 값이 할당되며 다음 로직으로 이어진다.

if 문을 통해 문자를 입력 받았을 때, while 문의 불리언 값을 true로 만들어 반복문을 빠져나오도록 한다. y를 입력 받았을 때는 다음 로직이 실행되고, n을 입력 받았을 때는 프로그램이 종료되도록 한다. 만약 y와 n이 아닌 다른 문자를 입력 받았을 경우, 다시 처음으로 돌아가도록 한다.

 

ArrayList users = new ArrayList();

while (true) {

    HashMap user = new HashMap();

    // ID
    System.out.print("ID: ");
    String username = sc.nextLine();

	// PW
	String password = "";
	while (true) {
		System.out.print("PW: ");
		password = sc.nextLine();
		System.out.print("PW 확인: ");
		String password_confirm = sc.nextLine();

        if (password.equals(password_confirm)) {
            break;
		} else {
            System.out.println("======================");
            System.out.println("패스워드가 일치하지 않습니다.");
            System.out.println("패스워드를 다시 입력해주세요.");
	        System.out.println("======================");
        }
    }

	// 이름
	System.out.print("성명: ");
	String name = sc.nextLine();

	// 생년월일(6자리)
	String birth_date = "";
	while (true) {
		System.out.print("생년월일(6자리): ");
		birth_date = sc.nextLine();
		if (birth_date.length() == 6) {
			break;
		} else {
			System.out.println("======================");
			System.out.println("생년월일 자릿수가 올바르지 않습니다.");
	        System.out.println("생년월일을 다시 입력해주세요.");
         	System.out.println("======================");                    
		}
	}

	// 이메일
	System.out.print("이메일: ");
	String email = sc.nextLine();

가입된 회원정보를 저장하기 위해 ArrayList를 만들어준다. 회원가입을 진행할 것인지 묻기 위해 while 문을 작성해준다. while 문이 무조건 실행되도록 true를 입력한다. 각각의 유저 한 명씩을 담아 항목별로 관리할 수 있도록 HashMap으로 변수를 선언한다.

입력받는 값이 아이디라는 것을 알려주고 값을 입력 받은 뒤 엔터를 치면 다음으로 넘어가도록 한다.

변수를 선언한 뒤, while 문으로 입력받은 비밀번호와 확인칸의 비밀번호 값을 비교한다. if 문을 통해 값이 같다면 while 문을 break를 통해 빠져나오고, 값이 다르면 다시 입력받도록 돌아간다.

이름과 생년월일, 이메일을 입력받는다. 생년월일은 6자리로 제한한다. 6자리가 아닌 경우, 처음부터 다시 입력받도록 while 문을 쓴다. 변수는 밖에서 참조해야하는 데이터이기 때문에 외부에서 변수를 선언한다. length 함수로 6자리인지 확인한다.

 

user.put("username", username);
user.put("password", password);
user.put("name", name);
user.put("birth_date", birth_date);
user.put("email", email);

users.add(user);

System.out.println("------------------------");
System.out.println(user.get("name") + " 님, 가입을 환영합니다.");
System.out.println("ID는 " + user.get("username") + " 입니다.");
System.out.println("------------------------");

System.out.println("회원가입을 이어서 진행하시겠습니까?\ny: 진행    N:취소");
System.out.print(">> ");
String register_again = sc.nextLine();

if (register_again.equalsIgnoreCase("y")) {
	;
} else if (register_again.equalsIgnoreCase("n")) {
    System.exit(0);
}

put을 통해 HashMap에 각각 키-값 쌍으로 데이터를 구성하여 추가한다.

모든 회원이 저장되는 ArrayList에 우리가 지금까지 만든 user라는 HashMap 객체를 추가하여 전체 회원장부에 가입한 회원정보를 등록한다.

 

 

'Back-End > Java' 카테고리의 다른 글

예외 - 예외 처리  (0) 2023.05.19
객체지향 - 객체지향 프로그래밍  (0) 2023.05.18
함수  (0) 2023.05.15
자료구조 - 배열, 리스트, 맵  (0) 2023.05.12
제어문 - 조건문과 반복문  (0) 2023.05.11

+ Recent posts