본문 바로가기

개발이야기

아래 명함관리 프로그램에 사용자가 직접 입력하여 연락처를 추가, 삭제, 수정, 출력 할 수 있는 프로그램을 작성하시오.

명함관리 프로그램에 사용자가 직접 입력하여 연락처를 추가, 삭제, 수정, 출력을 할 수 있는 프로그램을 작성하시오.

(실행 출력결과는 아래 부분을 참고하여 모든 코드를 완성하시오.)


실행결과)

****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : i


>>> 추가

이름 : shlee

연락처 : 010-3446-6924

이메일 : shlee@icross.co.kr

추가되었습니다.


****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : o


>>> 출력

1       shlee   010-3446-6924   shlee@icross.co.kr


****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : e


>>> 수정

수정할 번호 입력 : 1

이름 : shlee2

연락처 : 010-123-1234

이메일 : shlee@infocross.co.kr


****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : o


>>> 출력

1       shlee2  010-123-1234    shlee@infocross.co.kr


****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : d

 

>>> 삭제

삭제할 번호 입력 : 1

삭제되었습니다.


****************************************

* 연락처 콘솔 프로그램                        *

****************************************

* I. 추가                                               *

* D. 삭제                                              *

* E. 수정                                              *

* O. 출력                                              *

*                                                          *

* Q. 종료                                              *

****************************************

 실행할 명령을 입력 : q

프로그램 종료


Card.java

import java.util.*;


public class Card {

    private int number;

    private String name;

    private String phone;

    private String email;

    public Card(String name, String phone, String email) {

        this.number = -1; this.name = name; this.phone = phone; this.email = email;

    }

    public Card(int number, String name, String phone, String email) {

        this.number = number; this.name = name; this.phone = phone; this.email = email;

    }

    public int getNumber() { return number; }

    public void setNumber(int number) { this.number = number; }

    public String getName() { return name; }

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

    public String getPhone() { return phone; }

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

    public String getEmail() { return email; }

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

    public void print() {

System.out.println(this.number+"\t"+this.name+"\t"+this.phone+"\t"+this.email);

    }

}


CardRepository.java

import java.util.*;


public class CardRepository {

private List<Card> cardList = new ArrayList<Card>();

private int maxNumber = 1;


public int getMaxNumber() {

return maxNumber;

}


public void add(Card inCard) {

if(inCard.getNumber() != maxNumber) {

inCard.setNumber(maxNumber);

cardList.add(inCard);

maxNumber++;

}

}


public boolean edit(Card inCard) {

boolean check = false;

for (Card cardTemp : cardList) {

if(cardTemp.getNumber() == inCard.getNumber()) {

cardTemp.setName(inCard.getName());

cardTemp.setPhone(inCard.getPhone());

cardTemp.setEmail(inCard.getEmail());

check = true;

break;

}

}

return check;

}

    

public boolean remove(int number) {

boolean check = false;

for (Card cardTemp : cardList) {

if(cardTemp.getNumber() == number) {

cardList.remove(cardTemp);

check = true;

break;

}

}

return check;

}


    public void print() {

for (Card cardTemp : cardList) {

cardTemp.print();

}

}

}


CardManager.java

import java.util.*;


public class CardManager {

private CardRepository cardRep = new CardRepository();


public void start() {

menuPrint();

}


public void menuPrint() {

String menu;


System.out.println("****************************************");

System.out.println("* 연락처 콘솔 프로그램                 *");

System.out.println("****************************************");

System.out.println("* I. 추가                              *");

System.out.println("* D. 삭제                              *");

System.out.println("* E. 수정                              *");

System.out.println("* O. 출력                              *");

System.out.println("*                                      *");

System.out.println("* Q. 종료                              *");

System.out.println("****************************************");


menu = getInput("실행할 명령을 입력 : ");

menu = menu.toLowerCase();


if (menu.equals("i")) {

add();

} else if (menu.equals("e")) {

edit();

} else if (menu.equals("d")) {

delete();

} else if (menu.equals("o")) {

print();

} else if (menu.equals("q")) {

quit();

return;

}

menuPrint();

}

public void add() {

System.out.println(">>> 추가");

cardRep.add(input(-1));

System.out.println("추가되었습니다.");

}


public void edit() {

int number=0;

String temp;


System.out.println(">>> 수정");

temp = getInput("수정할 번호 입력 : ");

try {

number = Integer.parseInt(temp);

} catch (Exception e) {

System.out.println("수정할 번호를 정수로 입력을 해주세요!");

return;

}

if(!cardRep.edit(input(number))) {

System.out.println("수정되었습니다.");

} else {

System.out.println("잘못된 수정할 번호를 입력을 하였습니다!");

}

}


public void delete() {

int number=-1;

String temp;

System.out.println(">>> 삭제");

temp = getInput("삭제할 번호 입력 : ");

try {

number = Integer.parseInt(temp);

} catch (Exception e) {

System.out.println("삭제할 번호를 정수로 입력을 해주세요!");

return;

}

if(cardRep.remove(number)) {

System.out.println("삭제되었습니다.");

} else {

System.out.println("잘못된 삭제할 번호를 입력을 하였습니다!");

}

}


public Card input(int number) {

Card card;

String name, tel, email;

name = getInput("이름");

tel = getInput("연락처");

email = getInput("이메일");


if(number == -1) card = new Card(name, tel, email);

else card = new Card(number, name, tel, email);


return card;

}


public String getInput(String inMsg) {

Scanner sc = new Scanner(System.in);

String getVar;

System.out.print(inMsg+" : ");

getVar = sc.nextLine();


return getVar;

}


public void print() {

System.out.println(">>> 출력");

cardRep.print();

}


public void quit() {

System.out.println(">>> 종료");

}

}


Test.java

public class Test {

    public static void main(String[] args) {

        CardManager cardMgr = new CardManager();

cardMgr.start();

    }

}


결과 화면)

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : i

>>> 추가

이름 : 안녕하세요

연락처 : 어디세요

이메일 : 누구간

추가되었습니다.

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : ㅐ

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : o

>>> 출력

1       안녕하세요      어디세요        누구간

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : e

>>> 수정

수정할 번호 입력 :  : 1

이름 : dkssu

연락처 : jkldjfls

이메일 : fjksldf

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : o

>>> 출력

1       dkssu   jkldjfls        fjksldf

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : d

>>> 삭제

수정할 번호 입력 :  : 4

잘못된 삭제할 번호를 입력을 하였습니다!

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : o

>>> 출력

1       dkssu   jkldjfls        fjksldf

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : d

>>> 삭제

수정할 번호 입력 :  : 1

삭제되었습니다.

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : o

>>> 출력

****************************************

* 연락처 콘솔 프로그램                 *

****************************************

* I. 추가                              *

* D. 삭제                              *

* E. 수정                              *

* O. 출력                              *

*                                      *

* Q. 종료                              *

****************************************

실행할 명령을 입력 : q

>>> 종료