이번 포스트에서는 Java로 간단한 고객 관리 프로그램을 작성해보겠습니다. 이 프로그램은 고객을 추가, 삭제, 수정하고 고객 목록을 확인할 수 있는 기능을 제공합니다. ArrayList를 사용하여 고객 정보를 저장하고, Scanner를 이용해 사용자 입력을 처리합니다.
프로그램은 세 개의 클래스로 구성됩니다:
1.MainEntry: 메인 프로그램의 실행과 사용자 입력 처리를 담당합니다.
2.Customer: 고객의 정보를 저장하는 클래스입니다.
3.CustomerManage: 고객을 추가, 삭제, 수정, 출력하는 기능을 구현한 클래스입니다.
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();
}
}
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; }
}
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
프로그램 종료 합니다.