ArrayList를 활용한 고객 인사 프로그램

Soozoo·2024년 6월 24일

JAVA

목록 보기
21/41

이번 포스트에서는 Java로 간단한 고객 관리 프로그램을 작성해보겠습니다. 이 프로그램은 고객을 추가, 삭제, 수정하고 고객 목록을 확인할 수 있는 기능을 제공합니다. ArrayList를 사용하여 고객 정보를 저장하고, Scanner를 이용해 사용자 입력을 처리합니다.

프로그램 구성

프로그램은 세 개의 클래스로 구성됩니다:

1.MainEntry: 메인 프로그램의 실행과 사용자 입력 처리를 담당합니다.
2.Customer: 고객의 정보를 저장하는 클래스입니다.
3.CustomerManage: 고객을 추가, 삭제, 수정, 출력하는 기능을 구현한 클래스입니다.

코드 설명

1. MainEntry 클래스

package quiz;

import java.util.Scanner;

public class MainEntry {
    public static void main(String[] args) {
        CustomerManage ac = new CustomerManage();
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("1. 고객 추가");
            System.out.println("2. 고객 삭제");
            System.out.println("3. 고객 확인");
            System.out.println("4. 고객 수정");
            System.out.println("5. 프로그램 종료");
            System.out.print("Choose an option: ");
            int choice = sc.nextInt();
            sc.nextLine();  // Consume newline

            if (choice == 1) {
                ac.add();
            } else if (choice == 2) {
                ac.del();
            } else if (choice == 3) {
                ac.print();
            } else if(choice == 4){
            	ac.set();
            }else if(choice == 5) {
            	System.out.println("프로그램 종료 합니다.");
            	break;
            }else {
            	System.out.println("번호를 제대로 입력하세요.");
            }
        }
        
        sc.close();
    }
}

2. Customer 클래스

package quiz;

public class Customer {
    String name, address, tel;
    
    public Customer(String name, String address, String tel) {
        this.name = name;
        this.address = address;
        this.tel = tel;
    }
    
    @Override
    public String toString() {
        return "Customer [name=" + name + ", address=" + address + ", tel=" + tel + "]";
    }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public String getAddress() { return address; }
    public void setAddress(String address) { this.address = address; }

    public String getTel() { return tel; }
    public void setTel(String tel) { this.tel = tel; }
}

3. CustomerManage 클래스

package quiz;

import java.util.*;

public class CustomerManage {

    ArrayList<Customer> arr = new ArrayList<>();
    Scanner sc = new Scanner(System.in);
    private String name, address, tel;

    public void add() {
        System.out.println("고객의 이름을 입력하세요.");
        name = sc.nextLine();
        System.out.println("고객의 주소를 입력하세요.");
        address = sc.nextLine();
        System.out.println("고객의 전화번호를 입력하세요.");
        tel = sc.nextLine();

        Customer customer = new Customer(name, address, tel);
        arr.add(customer);

        for (Customer c : arr) {
            System.out.println(c.getName());
            System.out.println(c.getAddress());
            System.out.println(c.getTel());
        }
    }

    public void del() {
        System.out.println("삭제할 고객의 이름을 입력하세요");
        String name = sc.nextLine();

        Customer toRemove = null;
        for (Customer c : arr) {
            if (c.getName().equals(name)) {
                toRemove = c;
                break;
            }
        }

        if (toRemove != null) {
            arr.remove(toRemove);
            System.out.println("삭제 완료!");
        } else {
            System.out.println("정보가 존재 하지 않습니다.");
        }
    }

    public void set() {
        System.out.println("수정할 고객의 이름을 입력하세요");
        String name = sc.nextLine();

        Customer toSet = null;
        for (Customer c : arr) {
            if (c.getName().equals(name)) {
                toSet = c;
                break;
            }
        }
        if (toSet != null) {
            String newName, newAddress, newTel;
            int num = 0;
            System.out.println("원하는 정보를 수정하세요. 1.이름 2.주소 3.전화번호");
            num = sc.nextInt();
            sc.nextLine();

            if (num == 1) {
                System.out.println("수정할 이름을 입력하세요");
                newName = sc.nextLine();
                toSet.setName(newName);
                System.out.println("수정 완료!");
            } else if (num == 2) {
                System.out.println("수정할 주소를 입력하세요");
                newAddress = sc.nextLine();
                toSet.setAddress(newAddress);
                System.out.println("수정 완료!");
            } else if (num == 3) {
                System.out.println("수정할 전화번호를 입력하세요");
                newTel = sc.nextLine();
                toSet.setTel(newTel);
                System.out.println("수정 완료!");
            }
        } else {
            System.out.println("정보가 존재 하지 않습니다.");
        }
    }

    public void print() {
        System.out.println(arr);
    }
}

실행예제:

1. 고객 추가
2. 고객 삭제
3. 고객 확인
4. 고객 수정
5. 프로그램 종료
Choose an option: 1
고객의 이름을 입력하세요.
홍길동
고객의 주소를 입력하세요.
성북구
고객의 전화번호를 입력하세요.
010-2222-2222
홍길동
성북구
010-2222-2222

Choose an option: 1
고객의 이름을 입력하세요.
김길동
고객의 주소를 입력하세요.
강북구
고객의 전화번호를 입력하세요.
010-2222-1111
홍길동
성북구
010-2222-2222
김길동
강북구
010-2222-1111

Choose an option: 3
[Customer [name=홍길동, address=성북구, tel=010-2222-2222], Customer [name=김길동, address=강북구, tel=010-2222-1111]]

Choose an option: 4
수정할 고객의 이름을 입력하세요
홍길디
정보가 존재 하지 않습니다.

Choose an option: 4
수정할 고객의 이름을 입력하세요
홍길동
원하는 정보를 수정하세요. 1.이름 2.주소 3.전화번호
1
수정할 이름을 입력하세요
이길동
수정 완료!

Choose an option: 3
[Customer [name=이길동, address=성북구, tel=010-2222-2222], Customer [name=김길동, address=강북구, tel=010-2222-1111]]

Choose an option: 6
번호를 제대로 입력하세요.

Choose an option: 5
프로그램 종료 합니다.
profile
넙-죽

0개의 댓글