주소록 프로그램
1. 시나리오 프로그램을 실행하면 우선 어떤 작업을 할지 메뉴를 선택합니다. 메뉴 중 원하는 작업을 선택하고 그에 해당하는 작업을 수행합니다. 선택한 작업을 모두 수행하고 난 후엔 다시 선택지로 돌아옵니다. 원하는 작업을 마친 후, 프로그램 종료메뉴를 선택하면 프로그램을 종료합니다. ex) 1. 새로운 데이터 입력 2. 데이터 삭제 3. 데이터 검색 4. 리스트 보기 5. 프로그램 종료
AddressListTestDrive 2. 다이어그램 AddressList -userName; String[] -phoneNumber; String[] -userAddress; String[] -temp; int +AddressList(); +insertData(int); int +removeData(); void +findData(); void +printList(); void +memual(); void MyAddressAccess -selectMenuStr; String -selectMenu; int -idOkay; boolean -x; int +selectMenuDrive(); void +getListIndex(); int AddressListTestDrive +main(String[] args); void
3. 구현코드 import java.io.*; class AddressList { private String[] userName; //이름 private String[] phoneNumber; //연락처 private String[] userAddress; //주소 private int temp = 0; public AddressList() { userName = new String[100]; //이름 phoneNumber = new String[100]; //연락처 userAddress = new String[100]; } public int insertData(int x)throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String tempUserName = " "; String tempPhoneNumber = " "; String tempAddress = " "; System.out.println("데이터를 입력하세요"); System.out.print("이름 : "); tempUserName = in.readLine(); userName[x] = tempUserName; System.out.print("전화번호 : "); tempPhoneNumber = in.readLine(); phoneNumber[x] = tempPhoneNumber; System.out.print("주소 : "); tempAddress = in.readLine(); userAddress[x] = tempAddress; x = x+1; temp = x; return x; }//입력
public void removeData() throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int i=0; boolean idOkay = true; String tempRemoveData; System.out.println("삭제 할 데이터를 입력하세요 "); tempRemoveData = in.readLine(); while(idOkay) if(tempRemoveData.equals(userName[i])) userName[i] = null; phoneNumber[i] = null; userAddress[i] = null; idOkay = false; } i = i + 1; }//삭제
public void findData() throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int i=0; boolean idOkay = true; String tempFindData; System.out.println("찾을 데이터를 입력하세요 "); tempFindData = in.readLine(); while(idOkay) if(tempFindData.equals(userName[i])) System.out.println(userName[i]); System.out.println(phoneNumber[i]); System.out.println(userAddress[i]); idOkay = false; } i = i + 1; }//검색
public void printList(int x) { if(x==0){ System.out.println("출력할 데이타가 없습니다 "); }else{ for(int i=0; i<x; i++){ System.out.println(userName[i]); System.out.println(phoneNumber[i]); System.out.println(userAddress[i]+ "\n"); } }//검색 public void menual(){ System.out.print("\n메뉴를 선택하세요\n"); System.out.print("1.새로운 데이터 입력\n"); System.out.print("2.데이터 삭제\n"); System.out.print("3.데이터 검색\n"); System.out.print("4.리스트 보기\n"); System.out.print("5.프로그램 종료\n"); System.out.print("->");
class MyAddressAccess { private String selectMenuStr; //메뉴의 번호를 지정받는 변수 private int selectMenu; private boolean idOkay = true; private int x=0; public int getListIndex() return x; } public void selectMenuDriven() throws IOException BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); AddressList accessList = new AddressList(); while(idOkay) accessList.menual(); selectMenuStr = in.readLine(); selectMenu = Integer.parseInt(selectMenuStr);
switch (selectMenu) { case 1: x= accessList.insertData(x); break; case 2: accessList.removeData(); break; case 3: accessList.findData(); break; case 4: accessList.printList(x); break; case 5: idOkay = false; break; } //메뉴를 결정 class AddressListTestDrive public static void main(String[] args) throws IOException MyAddressAccess userAddressList = new MyAddressAccess(); userAddressList.selectMenuDriven();
4. 실행화면
- 끝 -