IT/Programming / / 2023. 4. 20. 13:32

[JAVA] class를 사용한 회원가입 프로그램 예제

반응형
package dayday13;
/*
 * 회원가입 프로그램
 * 
 * 1. 아이디 
 *	1) 4글자 이상 8글자 이하
 * 	
 * 2. 비밀번호
 *  1) 4글자 이상 12글자 이하
 *  2) 아이디랑 같으면 안됨
 *  3) 입력 후 비밀번호 재입력 - 일치하지 않으면 다시 등록
 *  
 * 3. 이메일
 *  1) @가 있어야.
 *  2) .com, .net, .org, .edu, .co.kr로 끝나야 함
 *  3) @바로 옆에 단어가 있어야함.
 *    ex) aa@.com X, @naver.com X 
 *    
 * 위의 형식을 지키지 않을 시 해당 항목을 다시 입력 받도록
 * 모든항목 정상 -> Thanks 회원가입 완료
 * 
 */

import javax.swing.JOptionPane;

class Apply {
	private String id;
	private String pass;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPass() {
		return pass;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	private String email;

	@Override
	public String toString() {
		return "회원가입 내용입니다.\n@@@@@@@@@@@@@@@\n id=" + id + "\npass=" + pass + "\nemail=" + email + "\n@@@@@@@@@@@@@@@";
	}
}

public class Quiz01 {
	public static void main(String[] args) {
		Apply ap = new Apply();
		JOptionPane.showMessageDialog(null, "회원가입 프로그램입니다.");
		while (true) {
			String tmp = JOptionPane.showInputDialog("아이디를 입력해주세요");
			String tmpID = tmp; // 아이디 복사 - 비밀번호에 사용
			if (tmp.length() >= 4 && tmp.length() <= 8) { // 1) 4글자 이상 8글자 이하
				ap.setId(tmp);
				/*
				 * 1) 4글자 이상 12글자 이하 2) 아이디랑 같으면 안됨 3) 입력 후 비밀번호 재입력 - 일치하지 않으면
				 * 다시 등록
				 */
				while (true) {
					tmp = JOptionPane.showInputDialog("비밀번호를 입력해주세요");
					String tmpPass = tmp; // 비밀번호 복사 - 재확인시 사용
					if (tmp.length() >= 4 && tmp.length() <= 12) { // 비밀번호 길이가
																	// 4이상
																	// 12이하여야 실행
						if (!tmp.equals(tmpID)) {// 아이디와 달라야 실행
							tmp = JOptionPane.showInputDialog("재확인을 위해 다시한번 비밀번호를 입력해주세요");
							if (tmp.equals(tmpPass)) { // 비밀번호가 같아야 실행
								/*
								 * * 3. 이메일 1) @가 있어야. 2) .com, .net, .org,
								 * .edu, .co.kr로 끝나야 함 3) @바로 옆에 단어가 있어야함. ex)
								 * aa@.com X, @naver.com X
								 */
								ap.setPass(tmp);
								while (true) {
									tmp = JOptionPane.showInputDialog("e-mail을 입력해주세요");
									if (tmp.contains("@") && (tmp.endsWith(".com") || tmp.endsWith(".net")
											|| tmp.endsWith(".org") || tmp.endsWith(".edu"))) {
										/*
										 * String[] check = {".com"///};
										 * if(tmp.contains(check[0]) || tmp.contains(check[0]) || tmp.contains(check[0])...){
										 * 		continue;
										 * } else .. "형식을 지켜주세요"
										 */
										if (tmp.startsWith("@") || tmp.contains("@.") || tmp.contains(".@")) {
											JOptionPane.showMessageDialog(null, "형식이 올바르지 않습니다. 다시 입력하세요");
											continue;
										}
										ap.setEmail(tmp);
										JOptionPane.showMessageDialog(null, "회원가입이 완료되었습니다.");
										JOptionPane.showMessageDialog(null, ap.toString());
										return;
									} else {
										JOptionPane.showMessageDialog(null, "형식이 올바르지 않습니다. 다시 입력하세요");
										continue;
									}
								}

							} else {
								JOptionPane.showMessageDialog(null, "비밀번호가 일치하지 않습니다. 다시 입력하세요");
								continue;
							}
						} else {
							JOptionPane.showMessageDialog(null, "아이디와 같게 할 수없습니다. 다시 입력하세요");
							continue;
						}
					} else {
						JOptionPane.showMessageDialog(null, "비밀번호가 너무 짧거나 깁니다. 다시 입력하세요");
						continue;
					}
				}

			} else {
				JOptionPane.showMessageDialog(null, "아이디가 너무 짧거나 깁니다. 다시 입력하세요.");
				continue;
			}
		}
	}
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유