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(개정판) 저자: 김철회 출판사: 정보문화사
- 이전 : 자바은행 (구현)
