JAVA
JAVA Practice - Address Book
명주_^
2022. 6. 8. 11:12
- CRUD - Create Read Update Delete
- DAO - Data Access Object
Address Book
column : 이름, 나이, 전화번호, 주소, 메모
2차원 배열 row = 100
데이터 파일에서 불러오기 -> 2차원 배열에 저장
0. Main
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[][] human = load("addressBook");
int humanCount = 0;
for (int i = 0; i < human.length; i++) {
if (human[i][0] != null && !human[i][0].equals("")) {
humanCount++;
}
}
while (true) {
System.out.println("<<MENU>>");
System.out.println("1. 추가");
System.out.println("2. 삭제");
System.out.println("3. 검색");
System.out.println("4. 수정");
System.out.println("5. 출력");
System.out.println("6. 저장");
System.out.println("7. 종료");
System.out.print("메뉴 번호를 입력해 주세요 : ");
int input = scanner.nextInt();
switch (input) {
case 1:
insert(human, humanCount);
break;
case 2:
delete(human);
break;
case 3:
select(human);
break;
case 4:
update(human);
break;
case 5:
print(human);
break;
case 6:
save(human, "addressBook");
break;
case 7:
break;
default:
break;
}
}
}
1. 추가
static int insert(String[][] human, int humanCount) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름 = ");
String name = scanner.next();
System.out.print("나이 = ");
int age = scanner.nextInt();
System.out.print("전화번호 = ");
String phone = scanner.next();
System.out.print("주소 = ");
String address = scanner.next();
System.out.print("메모 = ");
String memo = scanner.next();
human[humanCount][0] = name;
human[humanCount][1] = age + "";
human[humanCount][2] = phone;
human[humanCount][3] = address;
human[humanCount][4] = memo;
humanCount++;
return humanCount;
}
2. 삭제
static void delete(String[][] human) {
Scanner scanner = new Scanner(System.in);
System.out.print("삭제하고 싶은 이름 = ");
String name = scanner.next();
int index = search(human, name);
if (index == -1) {
System.out.println("회원 정보를 찾을 수 없습니다.");
return;
}
human[index][0] = "";
human[index][1] = "";
human[index][2] = "";
human[index][3] = "";
human[index][4] = "";
System.out.println("정보를 삭제하였습니다.");
}
3. 검색 - 이름 (중복허용)
static void select(String[][] human) {
Scanner scanner = new Scanner(System.in);
System.out.print("검색하고 싶은 이름 = ");
String name = scanner.next();
String findMember[][] = searchAll(human, name);
if (findMember == null) {
System.out.println("정보를 찾을 수 없습니다.");
return;
}
for (int i = 0; i < findMember.length; i++) {
System.out.println(Arrays.toString(findMember[i]));
}
}
4. 수정
static void update(String[][] human) {
Scanner scanner = new Scanner(System.in);
System.out.print("수정하고 싶은 이름 = ");
String name = scanner.next();
int index = search(human, name);
if (index == -1) {
System.out.println("정보를 찾을 수 없습니다.");
return;
}
System.out.print("수정할 전화번호 = ");
String phone = scanner.next();
human[index][2] = phone;
}
5. 모든 데이터 출력
static void print(String[][] human) {
for (int i = 0; i < human.length; i++) {
if (human[i][0] != null && !human[i][0].equals("")) {
System.out.println(Arrays.toString(human[i]));
}
}
}
6. 데이터 파일 저장
+ 데이터 검색
static int search(String[][] human, String name) {
int index = -1;
for (int i = 0; i < human.length; i++) {
if (human[i][0].equals(name)) {
index = i;
break;
}
}
return index;
}
+ 데이터 검색 (중복)
static String[][] searchAll(String[][] human, String name) {
int count = 0;
// 카운터
for (int i = 0; i < human.length; i++) {
if (human[i][0] != null && human[i][0].equals(name)) {
count++;
}
}
if (count == 0) {
return null;
}
// 할당
String[][] findMember = new String[count][5];
// 데이터 저장
int idx = 0;
for (int i = 0; i < human.length; i++) {
if (human[i][0] != null && human[i][0].equals(name)) {
findMember[idx] = human[i];
idx++;
}
}
return findMember;
}