Last Modified : 2011.01.03

명함관리

자바은행의 예제를 참고하여 명함관리를 작성해 본다.

Namecard.java

package net.java_school.namecard;

public class Namecard {

	static final String lineSeparator = System.getProperty("line.separator");
	private static int seq;
	private int no;
	private String name;
	private String company;
	private String title;
	private String mobile;
	private String phone;
	private String fax;
	private String email;
	private String address;
	
	public Namecard(){}
	
	public Namecard(String name, String company, 
			String title, String mobile, String phone, 
			String fax, String email, String address) {
		this.no = ++seq;
		this.name = name;
		this.company = company;
		this.title = title;
		this.mobile = mobile;
		this.phone = phone;
		this.fax = fax;
		this.email = email;
		this.address = address;
	}

	public int getNo() {
		return no;
	}

	public void setNo(int no) {
		this.no = no;
	}

	public String getName() {
		return name;
	}

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

	public String getCompany() {
		return company;
	}

	public void setCompany(String company) {
		this.company = company;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getFax() {
		return fax;
	}

	public void setFax(String fax) {
		this.fax = fax;
	}

	public String getEmail() {
		return email;
	}

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

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
	public String toString() {
		StringBuffer sb = new StringBuffer();
		sb.append("###################################################################");
		sb.append(lineSeparator);
		sb.append("[번호 : ");
		sb.append(no);
		sb.append("] ");
		sb.append(name);
		sb.append(" ");
		sb.append(company);
		sb.append(" ");
		sb.append(title);
		sb.append(lineSeparator);
		sb.append("손전화:");
		sb.append(mobile);
		sb.append(" 회사전화:");
		sb.append(phone);
		sb.append(" ");
		sb.append(" 팩스:");
		sb.append(fax);
		sb.append(lineSeparator);
		sb.append("이메일:");
		sb.append(email);
		sb.append(lineSeparator);
		sb.append("회사주소:");
		sb.append(address);
		return sb.toString();
	}
}

NamecardManager.java

package net.java_school.namecard;

import java.util.ArrayList;

public class NamecardManager {
	
	private ArrayList<Namecard> cards= new ArrayList<Namecard>();
	
	public NamecardManager(){}

	public void addCard(Namecard card){
		cards.add(card);					
	}
	
	public void deleteCard(int no){
		int totalCard = cards.size();
		for(int i=0; i < totalCard; i++) {
			if (cards.get(i).getNo()== no) {
				cards.remove(cards.get(i));
				break;
			}
		}
	}
	
	public Namecard getCard(int no){
		Namecard card = null;
		int totalCard = cards.size();
		for(int i=0; i < totalCard; i++) {
			if (cards.get(i).getNo()== no) {
				card = cards.get(i);
				break;
			}
		}
		
		return card;
	}
	
	public ArrayList<Namecard> findCard(String name) {
		ArrayList<Namecard> searchCards = new ArrayList<Namecard>();
		int totalCard = cards.size();
		for(int i = 0; i < totalCard; i++) {
			if (cards.get(i).getName().indexOf(name) != -1) {
				searchCards.add(cards.get(i));
			}
		}
		
		return searchCards;
	}

	public ArrayList<Namecard> getCards() {
		return cards;
	}

}

NamecardUI.java

package net.java_school.namecard;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class NamecardUI {
	
	private NamecardManager cardMgr = new NamecardManager();;
	
	{
		cardMgr.addCard(new Namecard("김태희", "루아엔터테인먼트 ", "배우", "010-1234-5678", "02-555-0987", "02-555-9876", "taehee@navar.com", "서울 서초구"));
		cardMgr.addCard(new Namecard("박지성", "맨체스터유나이티드 ", "선수", "010-0987-6543", "00700-122345678", "00700-03938937", "jisungpark@navar.com", "영국 맨체스터"));
	}
	
	public NamecardUI(){}

	public void showMenu() throws IOException {
		
		String menu = null;
		
		do{
			System.out.println("메뉴를 선택하세요");
			System.out.println("1.명함등록");
			System.out.println("2.명함목록");
			System.out.println("3.명함삭제");
			System.out.println("4.명함수정");
			System.out.println("5.명함검색");
			System.out.println("q.종료");
			
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			
			menu = br.readLine();	
			try {
				if (menu.equals("1")) {
					System.out.print("이름을 입력하세요>>");
					String name = br.readLine();
					
					System.out.print("회사명을 입력하세요>>");
					String company = br.readLine();
					
					System.out.print("직책을 입력하세요>>");
					String title = br.readLine();
					
					System.out.print("손전화를 입력하세요>>");
					String mobile = br.readLine();
					
					System.out.print("회사전화를 입력하세요>>");
					String phone = br.readLine();

					System.out.print("팩스를 입력하세요>>");
					String fax = br.readLine();
					
					System.out.print("이메일을 입력하세요>>");
					String email = br.readLine();

					System.out.print("회사주소를 입력하세요>>");
					String address = br.readLine();

					Namecard card = new Namecard(name, company, title, mobile, phone, fax, email, address);
					cardMgr.addCard(card);
				} else if (menu.equals("2")) {
					ArrayList<Namecard> cards = cardMgr.getCards();
					int totalCard = cards.size();
					for(int i = 0; i < totalCard; i++) {
						System.out.println(cards.get(i).toString());
					}
					System.out.println();
				} else if (menu.equals("3")) {
					System.out.print("삭제할 이름을 입력하세요>>");
					String name = br.readLine();
					ArrayList<Namecard> searchCards = cardMgr.findCard(name);
					int totalCard = searchCards.size();
					for (int i = 0; i < totalCard; i++) {
						System.out.println(searchCards.get(i).toString());
					}
					if ( totalCard != 0) {
						System.out.print("삭제할 번호를 선택하세요>>");
						int id = Integer.parseInt(br.readLine());
						cardMgr.deleteCard(id);
					}
				} else if (menu.equals("4")) {
					System.out.print("수정할 명함의 이름을 입력하세요>>");
					String name = br.readLine();
					ArrayList<Namecard> searchCards = cardMgr.findCard(name);
					int totalCard = searchCards.size();
					for (int i = 0; i < totalCard; i++) {
						System.out.println(searchCards.get(i).toString());
					}
					if ( totalCard != 0) {
						System.out.print("수정할 명함번호를 선택하세요>>");
						int id = Integer.parseInt(br.readLine());
						Namecard card = cardMgr.getCard(id);

						System.out.print("이름을 수정하려면  입력하세요>>");
						name = br.readLine();
						if (!name.equals("")) {
							card.setName(name);
						}

						System.out.print("회사명을 수정하려면  입력하세요>>");
						String company = br.readLine();
						if (!company.equals("")) {
							card.setCompany(company);
						}
						
						System.out.print("타이틀을 수정하려면  입력하세요>>");
						String title = br.readLine();
						if (!title.equals("")) {
							card.setTitle(title);
						}
						
						System.out.print("손전화를 수정하려면  입력하세요>>");
						String mobile = br.readLine();
						if (!mobile.equals("")) {
							card.setMobile(mobile);
						}	
						
						System.out.print("회사전화를 수정하려면  입력하세요>>");
						String phone = br.readLine();
						if (!phone.equals("")){
							card.setAddress(phone);
						}
						
						System.out.print("팩스를 수정하려면  입력하세요>>");
						String fax = br.readLine();
						if (!fax.equals("")) {
							card.setFax(fax);
						}
						System.out.print("이메일을 수정하려면  입력하세요>>");
						String email = br.readLine();
						if (!email.equals("")) {
							card.setEmail(email);
						}

						System.out.print("회사주소를 수정하려면  입력하세요>>");
						String address = br.readLine();
						if (!address.equals("")) {
							card.setFax(address);
						}
					}
				} else if (menu.equals("5")) {
					System.out.print("검색할 이름을 입력하세요>>");
					String name = br.readLine();
					ArrayList<Namecard> cards = cardMgr.findCard(name);
					int totalCard = cards.size();
					for(int i = 0; i < totalCard; i++) {
						System.out.println(cards.get(i).toString());
					}
					System.out.println();
				}
			} catch (Exception e) {
				System.out.println(e.toString());
			}
		} while(!menu.equals("q"));
	}
	
	public static void main(String[] args) throws IOException {
		NamecardUI cardUI = new NamecardUI();
		cardUI.showMenu();
	}

}

참고문서

New 알기쉬운 자바2(개정판) 저자: 김철회 출판사: 정보문화사