Member
package kh.edu.updown.model.vo;
public class Member {
private String memberId;
private String memberPw;
private String memberName;
private int highScore;
public Member() { }
public Member(String memberId, String memberPw, String memberName) {
super();
this.memberId = memberId;
this.memberPw = memberPw;
this.memberName = memberName;
}
public Member(String memberId, String memberPw, String memberName, int highScore) {
super();
this.memberId = memberId;
this.memberPw = memberPw;
this.memberName = memberName;
this.highScore = highScore;
}
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getMemberPw() {
return memberPw;
}
public void setMemberPw(String memberPw) {
this.memberPw = memberPw;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public int getHighScore() {
return highScore;
}
public void setHighScore(int highScore) {
this.highScore = highScore;
}
@Override
public String toString() {
return "Member [memberId=" + memberId + ", memberPw=" + memberPw + ", memberName=" + memberName + ", highScore=" + highScore
+ "]";
}
}
MainService
package kh.edu.updown.model.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;
import kh.edu.updown.model.vo.Member;
public class MainService {
private Scanner sc = new Scanner(System.in);
private Member[] members = new Member[3];
private int memberCount = 0;
private Member loginMember = null;
private LoginService loginService = new LoginService();
public MainService() {
members[0] = new Member("user01", "pass01", "tom", 5);
members[1] = new Member("user02", "pass02", "peter", 10);
}
public void displayMenu() {
int sel = -1;
do {
try {
System.out.println();
System.out.println("=== UP/DOWN 게임 ===");
if(loginMember == null) {
System.out.println("[메인 메뉴]");
System.out.println("1. 회원가입");
System.out.println("2. 로그인");
System.out.println("0. 종료");
System.out.print("메뉴 선택 >> ");
sel = sc.nextInt();
sc.nextLine();
System.out.println();
switch(sel) {
case 1 : signUp(); break;
case 2 : login(); break;
case 0 : System.out.println("[프로그램 종료]"); break;
default : System.out.println("잘못 입력하셨습니다. 메뉴를 다시 선택해주세요.");
}
}else {
System.out.println("[로그인 메뉴]");
System.out.println("1. 업/다운 게임 start");
System.out.println("2. 내 정보 조회");
System.out.println("3. 전체 회원 조회");
System.out.println("4. 비밀번호 변경");
System.out.println("9. 로그아웃");
System.out.print("메뉴 선택 >> ");
sel = sc.nextInt();
sc.nextLine();
System.out.println();
switch (sel) {
case 1: loginService.startGame(loginMember); break;
case 2: loginService.selectMyInfo(loginMember); break;
case 3: loginService.selectAllMember(members); break;
case 4: loginService.updatePassword(loginMember); break;
case 9 : System.out.println("[로그아웃 되었습니다.]");
loginMember = null;
break;
default: System.out.println("잘못 입력하셨습니다. 메뉴를 다시 선택해주세요.");
}
}
}catch (InputMismatchException e) {
System.out.println("정수만 입력해주세요.");
sc.nextLine();
}
}while(sel != 0);
}
public void signUp() {
System.out.println("[회원 가입]");
System.out.print("아이디: ");
String memberId = sc.next();
System.out.print("비밀번호: ");
String memberPw = sc.next();
System.out.print("이름: ");
String memberName = sc.next();
for(int i=0; i<members.length; i++) {
if(members[i] == null) {
memberCount = i;
break;
}else {
memberCount = -1;
}
if (members[i].getMemberId().equals(memberId)){
System.out.println("가입 불가능(아이디 중복)");
return;
}
}
if (memberCount != -1) {
members[memberCount] = new Member(memberId, memberPw, memberName);
System.out.println("회원가입 성공");
}else {
System.out.println("회원가입 불가능(인원 초과)");
}
}
public void login() {
System.out.println("[로그인]");
System.out.print("아이디: ");
String memberId = sc.next();
System.out.print("비밀번호: ");
String memberPw = sc.next();
boolean flag = true;
for( Member mem : members) {
if(mem != null) {
flag = false;
if(mem.getMemberId().equals(memberId) &&
mem.getMemberPw().equals(memberPw)) {
loginMember = mem;
System.out.println("로그인 성공");
break;
}
}
}
if (flag) {
System.out.println("회원가입부터 진행해주세요.");
} else {
if(loginMember == null) {
System.out.println("아이디 또는 비밀번호가 일치하지 않습니다.");
}
}
}
}
LoginService
package kh.edu.updown.model.service;
import java.util.List;
import java.util.Scanner;
import kh.edu.updown.model.vo.Member;
public class LoginService {
private Scanner sc = new Scanner(System.in);
public void startGame(Member loginMember) {
System.out.println("[Game Start...]");
int random = (int)(Math.random()*100 +1);
int input =0;
int count =1;
do {
System.out.print(count+ "번째 입력: ");
input = sc.nextInt();
if (input>random) {
System.out.println("-- DOWN --");
}else if (input < random) {
System.out.println(" -- UP --");
}else {
System.out.println("정답!!");
}
count++;
} while(input != random);
System.out.println("입력 시도 횟수: " + count);
if(loginMember.getHighScore() == 0 || loginMember.getHighScore() > count) {
System.out.println("*** 최고 기록 달성 ***");
loginMember.setHighScore(count);
}
}
public void selectMyInfo(Member loginMember) {
System.out.println("[내 정보 조회]");
String str = "\n아이디: " + loginMember.getMemberId();
str += "\n이름: "+ loginMember.getMemberName();
str += "\n최고기록: " + loginMember.getHighScore();
System.out.println(str);
}
public void selectAllMember(Member[] members) {
System.out.println("[전체 회원 조회]");
for(Member mem : members) {
if(mem != null) {
String str = "\n아이디: " + mem.getMemberId();
str += "\n이름: "+ mem.getMemberName();
str += "\n최고기록: " + mem.getHighScore();
System.out.println(str);
}
}
}
public void updatePassword(Member loginMember) {
System.out.println("[비밀번호 변경]");
System.out.print("비밀번호 입력: ");
String inputPw = sc.next();
if(inputPw.equals(loginMember.getMemberPw())) {
System.out.print("새 비밀번호 입력: ");
String newPw = sc.next();
loginMember.setMemberPw(newPw);
System.out.println("비밀번호 변경 성공");
}else {
System.out.println("비밀번호 변경 실패(비밀번호 불일치)");
}
}
}
UpDownRun
package kh.edu.updown.run;
import kh.edu.updown.model.service.LoginService;
import kh.edu.updown.model.service.MainService;
public class UpDownRun {
public static void main(String[] args) {
MainService service = new MainService();
service.displayMenu();
LoginService serv = new LoginService();
}
}