클래스 설계
함수
메인함수를 한 클래스 안에 담았다.
전체구조
1. 클래스설계
- 멤버 변수
- static 변수
- 생성자
- getter
- setter
2. 함수 설계
- Create
- Read
- Update
- Delete
3.메인 함수
- Scanner 호출
- 상수 선언
- 배열 선언
- 샘플데이터 입력
- 흐름제어변수 선언
- 반복문(While)
package com.my;
/**
* 4.18 배열 6강
전화번호 관리 프로그램 만들기
저장
조회, 선택조회
수정
삭제
종료
Scanner 호출
배열크기 100
*/
import java.util.Scanner;
public class PhoneBook {
/// PhoneBook 클래스 설계
private String names;
private String numbers;
//static 변수 선언
static int currentPhoneBookIndex = 3;
static int temp;
/// 생성자
public PhoneBook(String names, String numbers) {
this.names = names;
this.numbers = numbers;
}
/// 메서드
//getter
public String getNames() {
return names;
}
public String getNumbers() {
return numbers;
}
//setter
public void setNumbers(String numbers) {
this.numbers = numbers;
}
//showinfo
////////// ////////// ////////// ////////// ////////// ////////// ////////// //////////
/// 함수 선언
// 저장 함수
public static void save(Scanner scanner, PhoneBook[] phones) {
System.out.println("===== save()");
System.out.println("이름 입력");
String names = scanner.nextLine();
System.out.println("전화번호 입력");
String numbers = scanner.nextLine();
PhoneBook phoneBook = new PhoneBook(names, numbers); //생성자 선언
phones[currentPhoneBookIndex] = phoneBook;
currentPhoneBookIndex ++;
} // 저장 함수 끝
// 전체조회 함수
public static void readAll(PhoneBook[] phones) {
System.out.println("===== readAll()");
for (int i = 0; i < phones.length; i++) {
if (phones[i] != null) {
System.out.println(phones[i].getNames() + ", " + phones[i].getNumbers());
}//if
}//for
}// 전체조회 함수 끝
// 이름조회 함수
public static void readByName(Scanner scanner, PhoneBook[] phones) {
System.out.println("===== readByName()");
System.out.println("이름 입력");
String name = scanner.nextLine();
for (int i = 0; i < phones.length; i++) {
if (phones[i] != null) {// 방어코드
if (phones[i].getNames().equals(name.trim())) { //검색
//찾았을때
System.out.println(phones[i].getNames()+", "+phones[i].getNumbers());
}//검색 끝
}//방어코드 끝
}//end of for
}//이름조회 함수 끝
// 수정 함수
public static void update(Scanner scanner, PhoneBook[] phones) {
System.out.println("===== update()");
System.out.println("이름 입력");
String name = scanner.nextLine();
for (int i = 0; i < phones.length; i++) {
if (phones[i] != null) {// 방어코드
if (phones[i].getNames().equals(name.trim())) { //검색
//찾았을때
temp = i;
}//검색 끝
}//방어코드 끝
}//end of for
System.out.println("번호 입력");
String number = scanner.nextLine();
phones[temp].setNumbers(number.trim());
}// 수정 함수 끝
//삭제
public static void deleteAll(PhoneBook[] phones) {
System.out.println("===== deleteAll()");
for (int i = 0; i < phones.length; i++) {
phones[i] = null;
}
System.out.println("모든 번호가 삭제됐습니다");
}//삭제 끝
//정렬
//TODO 정렬기능 만들어보기 Array.sort
//정렬끝
/// /////// ////////// ////////// ////////// ////////// ////////// ////////// //////////
//🌟메인함수
public static void main(String[] args) {
//스캐너 호출
Scanner scanner = new Scanner(System.in);
//상수 선언
final String SAVE = "1";
final String SEARCH_ALL = "2";
final String SEARCH_BY_NAME = "3";
final String UPDATE = "4";
final String DELETE = "5";
final String END = "0";
//배열 100 선언
PhoneBook[] phones = new PhoneBook[100];
//샘플 데이터
phones[0] = new PhoneBook("홍길동", "010-1234-4321");
phones[1] = new PhoneBook("장길산", "010-1234-4321");
phones[2] = new PhoneBook("임꺽정", "010-1234-4321");
//흐름제어
boolean flag = true;
//반복문 프로그램
while (flag) {
System.out.println("===== ===== ===== ===== ===== ===== ===== =====");
System.out.println("메뉴선택: 1.저장 2.전체조회 3.이름조회 4.수정 5.삭제 0.종료");
String selecNo = scanner.nextLine();
if (selecNo.equals(SAVE)) {
System.out.println("저장하기");
//저장함수 호출
save(scanner, phones);
} else if (selecNo.equals(SEARCH_ALL)) {
System.out.println("전체조회");
//전체조회 호출
readAll(phones);
} else if (selecNo.equals(SEARCH_BY_NAME)) {
System.out.println("이름조회");
//이름조회 호출
readByName(scanner, phones);
// System.out.println("번호를 수정할까요? 4.수정 0.종료" );
// String selecNoUpdate = scanner.nextLine();
//
// if (selecNoUpdate.equals(UPDATE)) {
// //수정 호출
//
// } else if (selecNoUpdate.equals(END)) {
// System.out.println("프로그램 종료");
// flag = false;
// } else {
// System.out.println("잘못된 번호입니다");
// }
} else if (selecNo.equals(UPDATE)) {
System.out.println("번호수정");
//삭제 호출
update(scanner, phones);
}else if (selecNo.equals(DELETE)) {
System.out.println("모든 번호를 삭제할까요 1.진행 2.메뉴");
selecNo = scanner.nextLine();
if (selecNo.equals(SAVE)) {
System.out.println("번호삭제");
//삭제 호출
deleteAll(phones);
} else if (selecNo.equals(SEARCH_ALL)) {
System.out.println("메뉴로 돌아갑니다");
} else {
System.out.println("잘못된 번호입니다");
}
} else if (selecNo.equals(END)) {
System.out.println("프로그램 종료");
flag = false;
} else {
System.out.println("잘못된 번호입니다");
}// if 끝
}// while 끝
}// end of main
}// end of class

'Java' 카테고리의 다른 글
| 메서드 오버로딩 Method Overloading, 자바의 편리한 기능 (0) | 2025.04.21 |
|---|---|
| 실수) sysout 안에 sysout을 넣어 발생한 오류 (0) | 2025.04.18 |
| 배열 Array 을 활용한 자료정리 프로그램 연습 (0) | 2025.04.18 |
| 멤버변수 생성자 메서드 활용한 스타크래프트 놀이 v.1 (1) | 2025.04.17 |
| 배열 array (0) | 2025.04.17 |