package P0528Phone;
import java.util.Scanner;
//클래스는 총 3개
class PhoneInfo { // 한사람의 데이터 정보 저장 위한 클래스
/*데이터 필드 선언*/
String name;
String phone;
String addr;
public PhoneInfo(String name, String phone, String addr) {
this.name = name;
this.phone = phone;
this.addr = addr;
}
public void showPhoneInfo() {
System.out.println("name: " + name);
System.out.println("phone: " + phone);
System.out.println("addr: " + addr);
}
}
class Manager { // 입력, 검색, 삭제, 출력을 하는 기능 클래스
Scanner scan = new Scanner(System.in);
int cnt = 0;
PhoneInfo[] infoStorage = new PhoneInfo[100]; //100명까지 입력 가능
public void insert() { //1. 데이터입력
System.out.println("입력을 시작합니다.");
System.out.print("name: ");
String name = scan.next();
System.out.print("phone: ");
String phone = scan.next();
System.out.print("addr: ");
String addr = scan.next();
infoStorage[cnt++] = new PhoneInfo(name, phone, addr);
System.out.println("입력이 완료되었습니다.");
System.out.println("");
}
public void select() { //2. 데이터선택
System.out.println("데이터를 검색합니다...");
System.out.print("검색할 name 입력>> ");
String sname = scan.next();
for(int i=0; i<cnt; i++) {
if(sname.equals(infoStorage[i].name)) {
infoStorage[i].showPhoneInfo();
}
}
System.out.println();
}
public void delete() { //3. 데이터삭제
System.out.println("데이터를 삭제합니다...");
System.out.print("삭제할 name 입력>> ");
String sname = scan.next();
for(int i=0; i<cnt; i++) {
if(sname.equals(infoStorage[i].name)) { //반복문 돌면서 입력한 이름값과 배열 안의 모든 이름 비교
for(int j=i; j<cnt; j++) {
infoStorage[j] = infoStorage[j+1];
//삭제할 이름 다음의 인덱스 요소를 삭제할 곳으로 한칸 당겨오기
//-> 그럼 삭제할 이름의 인덱스는 없어지고 다음의 인덱스 요소로 채워짐
}
cnt--; //한칸 당겨와서 마지막 배열이 비어있을테니 없애주기
}
}
System.out.println("데이터가 삭제되었습니다.");
System.out.println();
}
public void dataPrint() { //4. 데이터출력
for(int i=0; i<cnt; i++) {
infoStorage[i].showPhoneInfo();
}
System.out.println();
}
public void menu() { // 메뉴출력 메소드
System.out.println("선택하세요...");
System.out.println("1. 데이터 입력");
System.out.println("2. 데이터 검색");
System.out.println("3. 데이터 삭제");
System.out.println("4. 데이터 출력");
System.out.println("5. 프로그램 종료");
System.out.print("선택: ");
}
}
public class PhoneBookEx { // main메소드를 포함한 실행 클래스
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
Manager m = new Manager();
while(true) {
m.menu(); //메뉴 출력
int choice = scan.nextInt();
if(choice==1) {
m.insert();
}
else if(choice==2) {
m.select();
}
else if(choice==3) {
m.delete();
}
else if(choice==4) {
m.dataPrint();
}
else if(choice==5) {
System.out.println("프로그램 종료");
break;
}
}
}
}
'IT > Java' 카테고리의 다른 글
Java (메소드_한영사전_2차원배열사용) (0) | 2021.05.31 |
---|---|
Java (메소드_한영사전_1차원배열사용) (0) | 2021.05.31 |
Java (메소드 호출_Car) (0) | 2021.05.28 |
Java (메소드 호출_주사위) (0) | 2021.05.28 |
Java (this생성자_Phonebook) (0) | 2021.05.24 |