본문 바로가기

개발이야기

이전 명함관리 프로그램을 이용하여 기능을 추가하시오.

이전 명함관리 프로그램을 수정하여 아래 기능을 추가하시오.

1. 명함 추가 시 자동으로 번호가 관리되게 기능을 추가

2. 명함을 수정할 수 있도록 기능 추가

(실행 출력결과는 오른쪽 부분을 참고하고 코드를 완성하시오.)


public class Test {

    public static void main(String[] args) {

        CardRepository cardRepo = new CardRepository();

        cardRepo.add(new Card([...], "홍반장", "012-123-1234", "hbj@test.com"));

        cardRepo.add(new Card([...], "임꺼져", "012-234-2345", "igetout@test.com"));

        cardRepo.print(); // ....................(1)

        cardRepo.remove(1);

        System.out.println("1번 삭제 후...")

        cardRepo.print(); // ....................(2)

        cardRepo.edit(new Card(2, "임꺽정", "012-345-3456", "igj@test.com"));

        System.out.println("2번 수정 후...")

        cardRepo.print(); // ....................(3)

    }

}


출력 화면)

(1) 부분 출력

1    홍반장    012-123-1234    hbj@test.com

2    임꺼져    012-234-2345    igetout@test.com

1번 삭제 후…

(2) 부분 출력

2    임꺼져    012-234-2345    igetout@test.com

2번 수정 후...

(3) 부분 출력

2    임꺽정    012-345-3456    igj@test.com



Card.java

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.ArrayList;

import java.util.List;


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 void edit(Card inCard) {

for (Card cardTemp : cardList) {

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

cardTemp.setName(inCard.getName());

cardTemp.setPhone(inCard.getPhone());

cardTemp.setEmail(inCard.getEmail());

break;

}

}

}

    

public void remove(int number) {

for (Card cardTemp : cardList) {

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

cardList.remove(cardTemp);

break;

}

}

}


    public void print() {

for (Card cardTemp : cardList) {

cardTemp.print();

}

}

}


Test.java

public class Test {

    public static void main(String[] args) {

        CardRepository cardRepo = new CardRepository();

cardRepo.add(new Card("홍반장", "012-123-1234", "hbj@test.com"));

        cardRepo.add(new Card("임꺼져", "012-234-2345", "igetout@test.com"));

        cardRepo.print();

        cardRepo.remove(1);

        System.out.println("1번 삭제 후...");

        cardRepo.print();

        cardRepo.edit(new Card(2, "임꺽정", "012-345-3456", "igj@test.com"));

        System.out.println("2번 수정 후...");

        cardRepo.print();

    }

}


결과출력]

1 홍반장 012-123-1234 hbj@test.com

2 임꺼져 012-234-2345 igetout@test.com

1번 삭제 후...

2 임꺼져 012-234-2345 igetout@test.com

2번 수정 후...

2 임꺽정 012-345-3456 igj@test.com