일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 설치
- 자바
- property
- Event
- html
- 다형성
- 오라클
- jQuery
- 파일 입출력
- 상속
- GUI
- File 클래스
- springframework
- 윈도우 #단축키
- String
- Method
- function
- 코틀린#클래스#상속
- list
- css
- jsp
- spring
- 연락처 프로그램
- 연산자
- kotlin #return #jump
- 데이터베이스
- JavaScript
- Java
- array
- javaservlet
- Today
- Total
Binary World
JAVA CLASS : 자바 연락처(contact) 프로그램 ver 0.1 본문
<프로그램 설계>
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 |
'개발자의 길 > JAVA' 카테고리의 다른 글
JAVA CLASS : 상속(다형성) (0) | 2017.01.03 |
---|---|
JAVA CLASS : 상속(Inheritance) (0) | 2017.01.02 |
JAVA CLASS : 접근 제한자(final 변수, static 변수) (0) | 2016.12.30 |
JAVA CLASS : 접근 제한 수식어를 이용한 두 점 사이의 거리구하기 (0) | 2016.12.30 |
JAVA CLASS : 접근 제한 수식어(private, (package), protected, public) (0) | 2016.12.29 |