Binary World

JAVA CLASS : 자바 연락처(contact) 프로그램 ver 0.1 본문

개발자의 길/JAVA

JAVA CLASS : 자바 연락처(contact) 프로그램 ver 0.1

모쿠 2016. 12. 30. 17:13

<프로그램 설계>


1. 기능 설계

  1) 연락처 전체 리스트를 보여줘야

  2) 연락처 등록(저장)

  3) 연락처 삭제

  4) 연락처 수정

  5) 연락처 검색 - 한사람의 연락처 상세 정보

  6) 프로그램 종료


2. 데이터 설계(클래스 설계)

  1) class Contact : 이름, 전화번호, 이메일

  2) class Main : 등록, 수정, 검색 기능(메소드)


3. UI 설계

 1) 초기화면

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

 1. 등록 | 2. 전체검색 | 3. 상세검색 | 4. 수정 | 0. 종료

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

 선택>


 2) 등록(1번 선택)

 이름> .....

 전화번호> ....

 이메일> .....


 3) 전체 검색 -> 전체 정보 출력


 4) 상세 검색 -> 인덱스 검색

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

 인덱스> ...

 이름: ....

 전화번호: ....

 이메일: ....

 

 5) 수정 -> 새로 입력 받음

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

 인덱스> ...

 이름> ...

 전화번호> ...

 이메일> ...


<프로그램 코드>


*ContactMain.java(연락처 등록 검색 등을 출력하는 메인 클래스)


package edu.java.contact01;


import java.util.Scanner;


//전화번호 메인 함수

public class ContactMain {


// 연락처 최대 저장 개수 - 상수

private static final int MAX = 100;


// 연락처를 저장할 배열

private static ContactVO[] contactlist = new ContactVO[MAX];

private static int count = 0; // 저장된 데이터 개수를

private static Scanner sc = new Scanner(System.in);


// 메인 메뉴 출력

private static void showMainMenu() {

System.out.println();

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

System.out.println(" 1.등록 | 2.전체검색 | 3.상세검색 | 4.수정 | 0.종료");

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

System.out.println("선택>");

} // end showMain()


// 연락처 등록 메소드

public static void insertContact() {

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

System.out.println("연락처 등록 메뉴");


System.out.print("이름>");

String name = sc.nextLine();


System.out.println("전화번호>");

String phone = sc.nextLine();


System.out.println("이메일>");

String email = sc.nextLine();


// Contact 인스턴스 생성

ContactVO ct = new ContactVO(name, phone, email);


// 배열에 저장

contactlist[count] = ct;

count++;

System.out.println("등록이 완료되었습니다.");

} // end inserContact()


// 전체검색 메소드

public static void showContact() {

if (count == 0) {

System.out.println("등록된 연락처가 없습니다.");

System.out.println("연락처를 등록해 주세요.");

} else {

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

System.out.println("전체 검색 메뉴");

for (int i = 0; i < count; i++) {

System.out.println("No." + i);

contactlist[i].displayInfo();

System.out.println();

} // end for(i)

} // end if(count)

} // end showContact()


// 상세검색 메소드

public static void individualContact() {

if (count == 0) {

System.out.println("등록된 연락처가 없습니다.");

System.out.println("연락처를 등록해 주세요.");

} else {

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

System.out.println("상세 검색 메뉴");

System.out.println("현재 저장된 연락처 인덱스는" + (count - 1) + "입니다.");

System.out.println("연락처 인덱스 숫자를 입력하세요.(0~99 내) :");

int index = sc.nextInt();

if (index <= count) {

contactlist[index].displayInfo();

} else {

System.out.println("(경고)마지막 인덱스 숫자보다 작은 숫자를 입력하세요");

} // end if(index)

} // end in(count)

} // end individualContact()


// 수정 기능

public static void modifyContact() {

if (count == 0) {

System.out.println("등록된 연락처가 없습니다.");

System.out.println("연락처를 등록해 주세요.");

} else {

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

System.out.println("수정 메뉴");

System.out.println("현재 저장된 연락처 인덱스는" + (count - 1) + "입니다.");

System.out.println("수정할 연락처의 인덱스를 입력하세요 (0~99 내) :");

int index = sc.nextInt();

sc.nextLine();


if (index < count) {

contactlist[index].displayInfo();

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

System.out.println("이름, 전화번호, 이메일을 다시 입력하세요.");


// 이름, 전화번호, 이메일을 수정

System.out.println("이름>");

String name = sc.nextLine();


System.out.println("전화번호>");

String phone = sc.nextLine();


System.out.println("이메일>");

String email = sc.nextLine();


// Contact 인스턴스 생성

ContactVO ct = new ContactVO(name, phone, email);

contactlist[index] = ct;

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


} else {

System.out.println("(경고)마지막 인덱스 숫자보다 작은 숫자를 입력하세요");

} //

}


}


public static void main(String[] args) {

System.out.println("연락처 Version 0.1");


boolean run = true; // 반복문 toggle


// 초기화면을 지속적으로 출력해주기

while (run) {

showMainMenu();

int select = sc.nextInt(); // 초기 선택 값을 받는 스캐너

sc.nextLine(); // 엔터 버퍼키 제거용


switch (select) {

case 0:

// 스캐너 종료

sc.close();

System.out.println("프로그램이 종료됩니다.");

run = false;

break;

case 1: // 1. 등록 기능

insertContact();

break;

case 2: // 2. 전체 검색 기능

showContact();

break;

case 3: // 3. 상세 검색 기능

individualContact();

break;

case 4: // 4. 수정 기능

modifyContact();

break;

default:

System.out.println("0에서 4사이의 숫자만 선택하세요");


} // end switch(select)

} // end while(infinity)


} // end main()


} // end class ContactMain 



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


* ContactVO.java(연락처 변수 저장 및 화면 출력 클래스)


package edu.java.contact01;


//이름, 전화번호, 이메일을 저장하는 변수 선언

//이름, 전화번호, 이메일을 수정, 불러오는 getta/setta 메소드 선언

public class ContactVO {

private String name;

private String phone;

private String email;


public ContactVO(){

}


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

this.name = name;

this.phone = phone;

this.email = email;

}


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 displayInfo() {

System.out.println("이름 : " + name);

System.out.println("전화번호 : " + phone);

System.out.println("이메일 : " + email);


}


} // end class contactVO 


Comments