: ๊ฐ์ฒด ์ฐธ์กฐํ ๋ณ์๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด.
: ๋ฐฐ์ด์ ์๋ฃํ์ ํด๋์ค๋ช
(์ฌ์ฉ์ ์ ์ ์๋ฃํ)์ผ๋ก ์ง์ ํ์ฌ ํ์ฉ
package edu.kh.oarr.model.service;
import java.util.Arrays;
import java.util.Scanner;
import edu.kh.oarr.model.vo.Member;
public class MemberService {
Scanner sc = new Scanner(System.in);
// Member ๋ค์ฏ์นธ์ง๋ฆฌ ๊ฐ์ฒด๋ฐฐ์ด ์ ์ธ ๋ฐ ํ ๋น
private Member[] memberArr = new Member[5];
// ํ์ฌ ๋ก๊ทธ์ธํ ํ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ณ์ ์ ์ธ
private Member loginMember = null;
public MemberService() {
//memberArr ๋ฐฐ์ด 0,1,2๋ฐฐ์ด ์ธ๋ฑ์ค ์ด๊ธฐํ
memberArr[0] = new Member("user01", "pass01", "ํ๊ธธ๋", 30, "์์ธ");
memberArr[1] = new Member("user02", "pass02", "๊ณ๋ณด๋ฆฐ", 25, "๊ฒฝ๊ธฐ");
memberArr[2] = new Member("user03", "pass03", "๊ณ ๊ธธ๋", 45, "๊ฐ์");
}
// ๋ฉ๋ด ์ถ๋ ฅ์ฉ ๋ฉ์๋
public void displayMenu() {
// ๋ฐํํ
int menuNum = 0; // ๋ฉ๋ด ์ ํ์ฉ ๋ณ์
// ๋ฌด์กฐ๊ฑด ํ๋ฒ์ ๋ฐ๋ณต -> do while
do {
System.out.println("====ํ์ ์ ๋ณด ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ v.2====");
System.out.println("1. ํ์๊ฐ์
");
System.out.println("2. ๋ก๊ทธ์ธ");
System.out.println("3. ํ์์ ๋ณด ์กฐํ");
System.out.println("4. ํ์์ ๋ณด ์์ ");
System.out.println("5. ํ์ ๊ฒ์(์ง์ญ)");
System.out.println("0. ํ๋ก๊ทธ๋จ ์ข
๋ฃ");
System.out.print("๋ฉ๋ด ์
๋ ฅ : ");
menuNum = sc.nextInt();
sc.nextLine(); // ์
๋ ฅ ๋ฒํผ์ ๋จ์ ๊ฐํ๋ฌธ์ ์ ๊ฑฐ์ฉ
switch(menuNum) {
case 1 : System.out.println(signup()); break;
case 2 : System.out.println(login()); break;
case 3 : System.out.println(selectMember()); break;
case 4 :
int result = updateMember();
if(result == -1) {
System.out.println("๋ก๊ทธ์ธ ํ ์ด์ฉํด์ฃผ์ธ์.");
}else if(result ==0) {
System.out.println("ํ์์ ๋ณด ์์ ์คํจ(๋น๋ฐ๋ฒํธ ๋ถ์ผ์น");
}else {
System.out.println("ํ์์ ๋ณด๊ฐ ์์ ๋์์ต๋๋ค.");
}
; break;
case 5 : searchRegion(); ; break;
case 0 : System.out.println("ํ๋ก๊ทธ๋จ ์ข
๋ฃ..."); break;
default : System.out.println("์๋ชป์
๋ ฅํ์
จ์ต๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์");
}
}while(menuNum != 0); // menuNum์ด 0์ด๋ฉด ๋ฐ๋ณต ์ข
๋ฃ
}
// memberArr์ ๋น์ด์๋ index๋ฒํธ๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
// ๋จ, ๋น์ด์๋ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1 ๋ฐํ
public int emptyIndex() {
for(int i = 0; i < memberArr.length; i++) {
if(memberArr[i] == null) {
return i;
}
}
return -1;
}
// ํ์๊ฐ์
๋ฉ์๋
public String signup() {
System.out.println("\n************ํ์๊ฐ์
************");
// ๊ฐ์ฒด๋ฐฐ์ด memberArr์ ๊ฐ์
ํ ํ์ ์ ๋ณด๋ฅผ ์ ์ฅ
// -> ์๋ก์ด ํ์์ ๋ณด๋ฅผ ์ ์ฅํ ๊ณต๊ฐ์ด ์๋์ง ํ์ธ
// ๋น ๊ณต๊ฐ์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ป์ด์ค๊ธฐ -> ์๋ก์ด ๋ฉ์๋๋ก ์์ฑ
int index = emptyIndex(); // memberArr๋ฐฐ์ด์์ ๋น์ด์๋ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํ
if(index == -1) { // ๋น์ด์๋ ์ธ๋ฑ์ค ์์ ๊ฒฝ์ฐ > ํ์๊ฐ์
๋ถ๊ฐ
return "ํ์๊ฐ์
์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.(์ธ์ ์ ์ด๊ณผ)";
}
System.out.print("์์ด๋ : ");
String memberId = sc.next();
System.out.print("๋น๋ฐ๋ฒํธ : ");
String memberPw = sc.next();
System.out.print("๋น๋ฐ๋ฒํธ ํ์ธ : ");
String memberPw2 = sc.next();
System.out.print("์ด๋ฆ : ");
String memberName = sc.next();
System.out.print("๋์ด : ");
int memberAge = sc.nextInt();
System.out.print("์ง์ญ : ");
String region = sc.next();
if(memberPw.equals(memberPw2)) {
// Member ๊ฐ์ฒด ์์ฑํด์ ํ ๋น๋ ์ฃผ์๋ฅผ memberArr์ ๋น์ด์๋ ์ธ๋ฑ์ค์ ๋์
memberArr[index] = new Member(memberId, memberPw2, memberName, memberAge, region);
// memberInfo = memberArr[index];
return "ํ์๊ฐ์
์ฑ๊ณต!!";
}else { // ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ
return "ํ์๊ฐ์
์คํจ!! (๋น๋ฐ๋ฒํธ ๋ถ์ผ์น)";
}
}
// ๋ก๊ทธ์ธ ๋ฉ์๋
public String login() {
System.out.println("\n************๋ก๊ทธ์ธ************");
System.out.print("์์ด๋ ์
๋ ฅ : ");
String memberId = sc.next();
System.out.print("๋น๋ฐ๋ฒํธ ์
๋ ฅ : ");
String memberPw = sc.next();
// 1) memberArr๋ฐฐ์ด ๋ด ์์๋ฅผ ์์๋๋ก ์ ๊ทผํ์ฌ null์ด ์๋์ง ํ์ธ
for(int i = 0; i < memberArr.length; i++) {
if(memberArr[i] != null) {
// 2) ํ์์ ๋ณด์ ์์ด๋, ๋น๋ฐ๋ฒํธ์ ์
๋ ฅ๋ฐ์ ๋ด์ฉ๊ณผ ์ผ์นํ๋์ง ํ์ธ
if(memberId.equals(memberArr[i].getMemeberId()) && memberPw.equals(memberArr[i].getMemeberPw())) {
// 3) ๋ก๊ทธ์ธ ํ์์ ๋ณด ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ๋ณ์ loginMember์
// ์
๋ ฅ๋ฐ์ ์์ด๋, ๋น๋ฐ๋ฒํธ๊ฐ ๊ฐ์์ง ํ์ธ
loginMember = memberArr[i];
break;
}
}
}
if(loginMember == null) {
return "์์ด๋ ๋๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค.";
}else {
return loginMember.getMemeberName() + "๋ ํ์ํฉ๋๋ค.";
}
}
// ์ ๋ณด ์กฐํ ๋ฉ์๋
public String selectMember() {
System.out.println("\n*********ํ์ ์ ๋ณด ์กฐํ*********");
if(loginMember == null) {
return "๋ก๊ทธ์ธ ํ ์ด์ฉํด์ฃผ์ธ์";
}
String str = "์ด๋ฆ : " + loginMember.getMemeberName();
str += "\n์์ด๋ : " + loginMember.getMemeberId();
str += "\n๋์ด : " + loginMember.getMemeberAge() + "์ธ";
return str;
}
// ์ ๋ณด ์์ ๋ฉ์๋
public int updateMember() {
System.out.println("\n**********ํ์ ์ ๋ณด ์์ **********");
if(loginMember == null) {
return -1;
}
System.out.print("์์ ํ ์ด๋ฆ์ ์
๋ ฅํด์ฃผ์ธ์ : ");
String memberName = sc.next();
System.out.print("์์ ํ ๋์ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ : ");
int memberAge = sc.nextInt();
System.out.print("๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. : ");
String memberPw = sc.next();
if(memberPw.equals(loginMember.getMemeberPw())) {
loginMember.setMemeberName(memberName);
loginMember.setMemeberAge(memberAge);
return 1;
}else {
return 0;
}
}
// ํ์ ๊ฒ์(์ง์ญ)
public void searchRegion() {
System.out.println("\n********ํ์ ๊ฒ์(์ง์ญ)********");
System.out.print("์ง์ญ ์
๋ ฅ : ");
String inputRegion = sc.next();
boolean flag = true; // ๊ฒ์๊ฒฐ๊ณผ ์ ํธ์ฉ ๋ณ์
// 1) memberArr ๋ฐฐ์ด์ ๋ชจ๋ ์์ ์์ฐจ ์ ๊ทผ
for(int i = 0; i < memberArr.length; i++) {
// 2) memberArr[i] ์์๊ฐ null์ด๋ฉด ๋ฐ๋ณต ์ข
๋ฃ]
if(memberArr[i] == null) {
break;
}
// 3) memberArr[i] ์ ์ฅ๋ ์ง์ญ์ด ์
๋ ฅ๋ฐ์์ง์ญ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ
// ํ์์ ์์ด๋, ์ด๋ฆ ์ถ๋ ฅ
if(inputRegion.equals(memberArr[i].getRegion())) {
System.out.printf("์์ด๋ : %s, ์ด๋ฆ : %s\n", memberArr[i].getMemeberId(), memberArr[i].getMemeberName());
flag = false;
}
}
if(flag) {
System.out.println("์ผ์นํ๋ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.");
}
}
}