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;
}
}