-----------------------------------
ArrayList 클래스를 이용한 회원 관리

실행예)
--- 회원 관리(컬렉션 자료구조 사용) ---
1. 회원 가입 (ID, PW, NAME, TEL, EMAIL)
2. 회원 명단 출력 (ID, NAME, TEL, EMAIL)
3. 회원 검색 (ID, NAME, TEL)
4. 관리자 모드 (admin 로그인 필요)
선택(1~4, 0 종료)?1


-------------------------
요구 분석

1. 회원 정보 저장소 -> ArrayList 컬렉션 사용 (크기 자동 관리, null 데이터 제외, size() 메소드)
2. 입력, 출력, 검색, 삭제 기능. 로그인 과정 필요. 예외 처리.
3. 검색은 서브 메뉴 운영. ID, NAME, TEL 기준 제시.
4. 관리자 모드는 로그인 과정을 통해서 회원 삭제 기능 운영.

-------------------------

//Member.java -> 자료형 정의 클래스. ID, PW, NAME, TEL, EMAIL 멤버로 구성.
//MemberDAO.java -> 자료 저장용 객체로서 ArrayList<Member> 클래스 사용. 자료 입출력 액션 메소드. 로그인 메소드.
//MenuAction.java -> 서브 메뉴, 메뉴 액션 클래스.
//Main.java -> 메인 메뉴 구성용 클래스.

-------------------------

//Member.java
package com.test;

//자료형 클래스
public class Member {
 
 //멤버변수, getter, setter
 
 //멤버변수
 //-> 입력, 출력에 관련된 모든 데이터 항목
 //-> ID, PW, NAME, TEL, EMAIL
 private String id, pw, name, tel, email;

 //getter, setter
 public String getId() {
  return id;
 }

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

 public String getPw() {
  return pw;
 }

 public void setPw(String pw) {
  this.pw = pw;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getTel() {
  return tel;
 }

 public void setTel(String tel) {
  this.tel = tel;
 }

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }
 
 
 //문제)
 //toString() 메소드 오버라이딩 처리
 //ID, NAME, TEL, EMAIL 출력 전용 -> String.format()
 //반환자료형 String
 


}

 

 

 

//MemberDAO.java
package com.test;

import java.util.*;

public class MemberDAO {
 
 //회원 저장용 저장소 준비
 //-> ArrayList 컬렉션 클래스
 //-> Generic 표현 사용
 private ArrayList<Member> members;
 
 //생성자 준비
 //-> 컬렉션 객체 생성 및 초기화
 public MemberDAO() {
  this.members = new ArrayList<Member>();
  this.init();
 }
 
 private void init() {
  //문제)
  //관리자(admin) 정보 사전 등록->필수
  //샘플 사용자 정보 사전 등록->선택
  
 }
 
 
 //회원 정보 입력용 메소드 추가
 //->외부에서 전달된 회원 정보(Member 자료형)를 가지고 저장소에 저장하는 액션
 public int add(Member member) {
  int result = 0;

  //문제)
  //저장소(컬렉션)에 저장하는 액션 추가
  //-> 저장된 후에는 결과값 1 반환
  
  return result;
 }
 
 
 //회원 정보 출력용 메소드 추가
 //반환자료형은 회원 정보 전체를 저장(컬렉션 권장)할 수 있는 자료형을 지정한다.
 //회원 정보 전체를 반환하는 경우
 //특정한 항목(ID)을 기준으로 정렬시킨 후 반환하도록 추가
 //->Collections.sort(컬렉션, 정렬기준)
 public ArrayList<Member> list() {
  ArrayList<Member> result;
  
  result = this.members;
  
  //문제) 정렬 액션 추가
  
  
  return result;
 }
 

}

 

 

 

//MenuAction.java
package com.test;

import java.util.Scanner;

public class MenuAction {
 
 //MemberDAO 클래스의 객체를 멤버변수로 등록
 private MemberDAO dao;
 
 public MenuAction() {
  //멤버변수 dao에 대한 초기화
  this.dao = new MemberDAO();
 }
 
 //1. 회원 가입 (ID, PW, NAME, TEL, EMAIL)
 public void menuInsert(Scanner sc) {
  
  //문제)
  //콘솔 환경에서 외부 데이터 입력.
  //입력 항목->ID, PW, NAME, TEL, EMAIL
  //신규 Member 객체에 입력 데이터를 저장
  //MemberDAO 객체의 add() 메소드 호출
  //"회원정보가 추가되었습니다." 메시지 출력
  
 }
 
 //2. 회원 명단 출력
 public void menuSelect() {
  //문제)
  //저장소로부터 회원 정보 전체를 반환하는 메소드 호출
  //->list()->ArrayList<Member>
  //->컬렉션에 들어있는 회원 정보(Member 자료형-ID, NAME, TEL, EMAIL)를 순차적으로 출력
  //->향상된 for문 이용
  
  
  
 }

 
 
}

 

 

 

//Main.java
package com.test;

import java.util.Scanner;

public class Main {

 public static void main(String[] args) {

  //MenuAction 클래스의 객체 생성 과정 추가
  MenuAction menu = new MenuAction();
  Scanner sc = new Scanner(System.in);
  
  do {
   System.out.println("--- 회원 관리(컬렉션 자료구조 사용) ---");
   System.out.println("1. 회원 가입");
   System.out.println("2. 회원 명단 출력");
   System.out.println("3. 회원 검색");
   System.out.println("4. 관리자 모드");
   System.out.print("선택(1~4, 0 종료)?");
   int m = sc.nextInt();
   //문제)
   //0->프로그램 종료
   //1->회원 가입 액션->menuInsert() 메소드 호출
   //2->회원 명단 출력->menuSelect() 메소드 호출
   //3->
   //4->
   if (m==0) {
    break;
   }
   
   
  }while(true);
  
  sc.close();
  
  
 }

}


-------------------------------------------
컬렉션 자료 정렬 Collections.sort() 메소드


//Member.java
package com.one;

//자료형 클래스
public class Member {
 
 private String name, tel;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getTel() {
  return tel;
 }

 public void setTel(String tel) {
  this.tel = tel;
 }

 @Override
 public String toString() {
  return String.format("%s %s "
    , this.name, this.tel);
 }

}

 

 

//Main.java
package com.one;

import java.util.*;

public class Main {

 public static void main(String[] args) {
  
  ArrayList<Integer> list1 = new ArrayList<Integer>();
  list1.add(30);
  list1.add(10);
  list1.add(20);
  Collections.sort(list1);
  System.out.println(list1);
  
  ArrayList<String> list2 = new ArrayList<String>();
  list2.add("HELLO");
  list2.add("TEST");
  list2.add("ABCD");
  Collections.sort(list2);
  System.out.println(list2);
  
  ArrayList<Member> list3 = new ArrayList<Member>();
  Member member1 = new Member();
  member1.setName("hong");
  member1.setTel("1234");
  list3.add(member1);
  Member member2 = new Member();
  member2.setName("choi");
  member2.setTel("4321");
  list3.add(member2);
  Member member3 = new Member();
  member3.setName("park");
  member3.setTel("5432");
  list3.add(member3);
  Collections.sort(list3, new Comparator<Member>() {
   @Override
   public int compare(Member o1, Member o2) {
    //숫자인 경우
     //return o1.getXXX() - o2.getXXX();
    //문자열인 경우
    return o1.getName().compareTo(o2.getName());
   }
  });
  System.out.println(list3);

 }

}

----------------------------------------------
회원관리 입력, 출력 기능 구현

 

 


 

블로그 이미지

알 수 없는 사용자

,