오늘의 숙제는 1개였다... 어제에 비하면 풀만하긴 했다만 그래도 아직 완벽하게 이해가 되지 않았다는게 느껴졌다,,ㅠ
일단 출력은 다 되는 것 같은데 내일 강사님 답 보고 좀 더 정리를 해봐야될 것 같다ㅠㅠ
[문제]클럽 회원관리 프로그램 작성
1. 여기는 폐쇄적인 모임으로 회원은 총 5명으로 한다
2. 회원의 정보는 이름, 나이, 핸드폰, 주소로 설정한다
3. 회원 가입, 출력, 수정, 삭제하는 각각의 메소드을 작성한다.
4. 회원가입시 데이터를 Scanner를 통해 입력을 받은 다음 setter로 데이터를 전달한다.
회원가입시 MemberDTO가 하나 생성된다.
회원가입시 배열의 크기만큼 데이터가 다 입력되면 "5명의 정원이 꽉 찼습니다." 라고 메세지를 출력한다.
5. 출력시 데이터가 없으면 아무 내용도 출력되지 않는다.
6. 수정할 때는 먼저 핸드폰 번호를 입력받아서 검색하다.
만약 검색한 핸드폰 번호가 없으면 "찾는 회원이 없습니다" 라는 메세지를 출력한다.
핸드폰 번호가 있으면 수정 할 항목을 입력받아서 기존의 데이터를 수정해야 한다.
7. 삭제할 때는 먼저 핸드폰 번호를 입력받아서 검색하다.
만약 검색한 핸드폰 번호가 없으면 "찾는 회원이 없습니다" 라는 메세지를 출력한다.
개발자는 MemberDTO 클래스를 삭제할 수 없다. -> JVM이 알아서 삭제한다.
-> 삭제하려면 배열의 값을 null로 지정한다.
[실행결과]
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 :
[1번 경우]
insert()
5명의 정원이 꽉 찼습니다. //5명이 꽉 차면
또는
이름 입력 :
나이 입력 :
핸드폰 입력 :
주소 입력 :
회원 가입이 되었습니다.
[2번 경우]
list()
이름 나이 핸드폰 주소
[3번 경우]
update()
핸드폰 번호 입력 : 010-123-1234
홍길동 25 xxx xxx
수정 할 이름 입력 :
수정 할 나이 입력 :
수정 할 핸드폰 입력 :
수정 할 주소 입력 :
회원의 정보를 수정하였습니다.
또는
핸드폰 번호 입력 : 010-123-1235
찾는 회원이 없습니다
[4번 경우]
delete()
핸드폰 번호 입력 :
회원의 정보를 삭제하였습니다.
또는
핸드폰 번호 입력 :
찾는 회원이 없습니다
MemberDTO.java
package homework;
public class MemberDTO {
private String name, age, phone, address;
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return name;
}
public String getAge() {
return age;
}
public String getPhone() {
return phone;
}
public String getAddress() {
return address;
}
}
MemberService.java
package homework;
import java.util.Scanner;
public class MemberService {
private MemberDTO[] ar = new MemberDTO[5]; //5명 인원
private Scanner scan = new Scanner(System.in);
public void menu() {
while(true) {
System.out.println("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.println("*************");
System.out.print("번호 : ");
int num = scan.nextInt();
System.out.println();
if(num == 1) {
System.out.println("[" + num + "번 경우]");
insert();
}else if(num == 2) {
System.out.println("[" + num + "번 경우]");
list();
}else if(num == 3) {
System.out.println("[" + num + "번 경우]");
update();
}else if(num == 4) {
System.out.println("[" + num + "번 경우]");
delete();
}else
break;
}
}
public void insert() {
for (int i = 0; i < ar.length; i++) {
if (ar[i] == null) {
ar[i] = new MemberDTO();
System.out.println("insert()");
System.out.print("이름 입력 : ");
ar[i].setName(scan.next());
System.out.print("나이 입력 : ");
ar[i].setAge(scan.next());
System.out.print("핸드폰 입력 : ");
ar[i].setPhone(scan.next());
System.out.print("주소 입력 : ");
ar[i].setAddress(scan.next());
System.out.println("회원 가입이 되었습니다.");
System.out.println();
break;
}
}
System.out.println("5명의 정원이 꽉 찼습니다.");
System.out.println();
}
public void list() {
System.out.println("list()");
for(MemberDTO member : ar) {
if (member != null) {
System.out.println(member.getName() + " "
+ member.getAge() + " "
+ member.getPhone() + " "
+ member.getAddress());
}
}
}
public void update() {
System.out.println("update()");
System.out.print("핸드폰 번호 입력 : ");
String p = scan.next();
for(int i=0; i<ar.length; i++) {
if((ar[i] != null) && (ar[i].getPhone().equals(p))) {
System.out.println(ar[i].getName() + " "
+ ar[i].getAge() + " "
+ ar[i].getPhone() + " "
+ ar[i].getAddress());
System.out.println("수정 할 이름 입력 : ");
ar[i].setName(scan.next());
System.out.println("수정 할 나이 입력 : ");
ar[i].setAge(scan.next());
System.out.println("수정 할 핸드폰 입력 : ");
ar[i].setPhone(scan.next());
System.out.println("수정 할 주소 입력 : ");
ar[i].setAddress(scan.next());
System.out.println("회원의 정보를 수정하였습니다.");
System.out.println();
break;
}
}
System.out.println("찾는 회원이 없습니다.");
System.out.println();
}
public void delete() {
System.out.println("delete()");
System.out.println("핸드폰 번호 입력 : ");
String p = scan.next();
for(int i=0; i<ar.length; i++) {
if((ar[i] != null) && (ar[i].getPhone().equals(p))) {
ar[i] = null;
System.out.println("회원의 정보를 삭제하였습니다.");
System.out.println();
break;
}
}
System.out.println("찾는 회원이 없습니다.");
System.out.println();
}
}
MemberMain.java
package homework;
public class MemberMain {
public static void main(String[] args) {
MemberService ar = new MemberService();
ar.menu();
System.out.println("프로그램을 종료합니다.");
}
}
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 1
[1번 경우]
insert()
이름 입력 : 전수민
나이 입력 : 100
핸드폰 입력 : 0100000000
주소 입력 : 서울
회원 가입이 되었습니다.
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 1
[1번 경우]
insert()
이름 입력 : 진채린
나이 입력 : 200
핸드폰 입력 : 0101234567
주소 입력 : 제주도
회원 가입이 되었습니다.
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 2
[2번 경우]
list()
전수민 100 0100000000 서울
진채린 200 0101234567 제주도
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 3
[3번 경우]
update()
핸드폰 번호 입력 : 0101234567
진채린 200 0101234567 제주도
수정 할 이름 입력 :
진초린
수정 할 나이 입력 :
2000
수정 할 핸드폰 입력 :
01045678978
수정 할 주소 입력 :
미국
회원의 정보를 수정하였습니다.
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 2
[2번 경우]
list()
전수민 100 0100000000 서울
진초린 2000 01045678978 미국
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 4
[4번 경우]
delete()
핸드폰 번호 입력 :
0100000000
회원의 정보를 삭제하였습니다.
menu()
*************
1. 가입
2. 출력
3. 수정
4. 탈퇴
5. 끝내기
*************
번호 : 5
프로그램을 종료합니다.
'JAVA' 카테고리의 다른 글
DAY 6 - 다차원 배열 (2024.07.10) (0) | 2024.08.13 |
---|---|
DAY 7 - 배열 / 클래스(객체) (2024.07.11) (0) | 2024.08.13 |
DAY 8 - 메서드 / VarArgs / StringBuffer / StringBuilder (2024.07.12) (0) | 2024.08.12 |
DAY 9 - static / 상속 / Override / Overload (2024.07.15) (0) | 2024.08.12 |
DAY 10 - instanceOf / 추상클래스 / final (2024.07.16) (0) | 2024.08.12 |