Java/Java icia 8일차

로그인시스템 배운것들 추가해서 프로그램만들기

swkn 2023. 3. 3. 17:25
package day8;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class User2Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		List<User2> list = new ArrayList<>();
		Util2 util2 = new Util2();
		boolean login = false;

Scanner  를 import 해서 불러오고 ArrayList를 만들고 , 전에 만들었던 Util2 을 이용하겠다.

		while (true) {
			if(login == true) {
				System.out.println("1.비밀번호 수정 2.로그아웃 3.리스트 4.회원탈퇴 0.종료");
			}else {
				System.out.println("1.회원가입 2.로그인 3.리스트 0.종료");
		}
				System.out.print("메뉴선택>");
			    int menu = util2.numCheck();

			if (menu == 1) {
				if (login == true) {
					System.out.println("수정할 비밀번호를 입력해주세요");
					

				} else {
				User2 user = new User2();
				System.out.print("이름 입력>");
				user.setName(sc.next());
				System.out.print("아이디 입력>");
				user.setId(util2.duCheck(list));
				System.out.print("비밀번호 입력>");
				user.setPw(sc.next());
				list.add(user);
				System.out.println("반갑습니다 " + user.getName() + "님 회원가입 완료!");
				}
			} else if (menu == 2) {
				if(login == true) {
					login = false;
					break;
					
				}else
				System.out.print("로그인할 아이디>");
				String loginid = sc.next();
				System.out.print("로그인할 패스워드>");
				String loginpw = sc.next();
				boolean find = false;
				for (User2 u : list) {
					if (loginid.equals(u.getId()) && loginpw.equals(u.getId())) {
						System.out.println("로그인 성공!");
						find = true;
						login = true;
						break;
					}
				}
				if (!find) {
					System.out.println("로그인 실패");
				}
			} else if (menu == 3) {
				System.out.println("이름\t아이디\t비밀번호\t가입일");
				System.out.println("---------------------------------------------");
				for (User2 u : list) {
					u.print();
				}
			} else if(menu == 4) {
				System.out.println("삭제할 계정의 비밀번호 입력");
				String deletepw = sc.next();
				boolean pwCheck = false;
				for(User2 u : list) {
					if(deletepw.equals(u.getPw())) {
						System.out.println(u.getName()+"님의 계정이 삭제되었습니다");
						list.remove(u);
						pwCheck = true;
						login = false;
					}
				}
				
			} else if (menu == 0) {
				break;
			} else
				System.out.println("다시입력");
		}
		System.out.println("프로그램 종료");

	}

}

로그인을 함으로써 boolean login을 바꿈으로 메뉴가 다르게 출력되도록 한다.

 

로그인할때 아이디에 같은아이디 중복체크 , 메뉴에서 숫자만 출력하도록 하게 만들고 , 숫자제한을 걸수도 있다

 ( Util2에 있음)

 

package day8;

import java.util.List;
import java.util.Scanner;

public class Util2 {
	Scanner sc = new Scanner(System.in);
	
	//숫자체크
	public int numCheck() {
		int result;
		while(true) {
			if(sc.hasNextInt()) {
				result = sc.nextInt();
				break;
			}else {
				System.out.print("숫자만 입력> ");
				sc.nextLine();
			}
		}
		return result;
	}
	
	// 아이디 길이체크 메소드
	public String lengCheck(int max) {
		String result;
		while(true) {
			result = sc.next();
			if(result.length() > max) {
				System.out.print("길이는 최대 "+max+"까지> ");
			}else {
				break;
			}
		}
		return result;
	}
	// 아이디 중복체크 메소드
	public String duCheck(List<User2> list) {
		String result;
		while(true) {
			result = sc.next();
			boolean find = false;
			for(User2 u : list) {
				if(u.getId().equals(result)) {
					System.out.print("중복된 아이디입니다 다시입력> ");
					find = true;
					break;
				}
			}
			if(!find) {
				break;
			}
		}
		return result;
	}
	
	
	
	
	
	
	
	
	
	
}