728x90
회원관리
프로그램 개요
회원목록 출력
회원가입
로그인
로그아웃
마이페이지
회원탈퇴
상품목록 출력
상품목록 검색 - 가격, 조회
사용자 모드
관리자 모드
Model
package model;
import java.util.ArrayList;
// 회원목록출력
// 회원가입,로그인,로그아웃,마이페이지,회원탈퇴
public class MemberDAO {
private ArrayList<MemberVO> datas;
public MemberDAO() {
datas=new ArrayList<MemberVO>();
datas.add(new MemberVO("admin","1234","관리자"));
datas.add(new MemberVO("coding_helper","timo","작은 티모"));
}
public ArrayList<MemberVO> selectAll(MemberVO mVO){
return datas;
}
public MemberVO selectOne(MemberVO mVO){
for (MemberVO v : datas) {
if (mVO.getMid().equals(v.getMid())) {
if (mVO.getMpw().equals(v.getMpw())) {
return v;
}
System.out.println(" 로그: MemberDAO: selectOne(): 비밀번호가 일치하지않습니다!");
return null;
}
}
System.out.println(" 로그: MemberDAO: selectOne(): 해당 아이디가 없습니다!");
return null;
}
// mVO가 의미하는것 == 회원가입할 정보
public boolean insert(MemberVO mVO) {
// mVO를 datas에 넣어줄예정
// PK 중복검사를 해야하고, 성공하면 add()
boolean flag = false;
for (MemberVO data : datas) {
if (data.equals(mVO)) {
flag = true;
System.out.println(" 로그: MemberDAO: insert(): 아이디 중복");
break;
}
}
if (flag) {
// 실패하면 false 반환
return false;
}
// datas에 mVO정보를 저장 add()
datas.add(new MemberVO(mVO.getMid(), mVO.getMpw(), mVO.getName()));
/* 1) datas.add(new MemberVO());
* -> datas DB공간에 new 새로운 데이터터를 추가
* 2) MemberVO(데이터1, 데이터2, 데이터3)
* -> 데이터들을 mVO에서 추출하면됨
*/
return true;
}
public boolean update(MemberVO mVO) {
for(MemberVO v : datas) {
if(v.equals(mVO)) {
v.setMpw(mVO.getMpw());
return true;
}
}
return false;
}
public boolean delete(MemberVO mVO) {
for (int i = 0; i < datas.size(); i++) {
if (datas.get(i).equals(mVO)) {
datas.remove(i);
return true;
}
}
return false;
}
}
MemberDAO.java
package model;
public class MemberVO {
private String mid; // 아이디 PK
// : 일반적으로 PK는 시스템에서 부여함
// : 사용자가 등록 --->> 중복검사필수☆
private String mpw; // 비밀번호
private String name; // 회원의이름
public MemberVO(String mid,String mpw,String name) {
this.mid=mid;
this.mpw=mpw;
this.name=name;
}
public String getMid() {
return mid;
}
public void setMid(String mid) {
this.mid = mid;
}
public String getMpw() {
return mpw;
}
public void setMpw(String mpw) {
this.mpw = mpw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.name+"님";
}
@Override
public boolean equals(Object obj) {
// 아이디(mid)가 같다면, 같은객체!
MemberVO mVO = (MemberVO)obj;
if (this.mid.equals(mVO.mid)) {
// PK 값이 같다면, 동일한 객체이다!!!
return true;
}
return false;
}
}
MemberVO.java
package model;
import java.util.ArrayList;
// 목록출력,목록검색_이름,목록검색_가격순,목록검색_조회수
public class ProductDAO {
private ArrayList<ProductVO> datas;
private static int PK=1001;
public ProductDAO() {
datas=new ArrayList<ProductVO>();
datas.add(new ProductVO(PK++,"장갑",12000,2));
datas.add(new ProductVO(PK++,"화장지",1000,1));
datas.add(new ProductVO(PK++,"장화",23000,0));
datas.add(new ProductVO(PK++,"지갑",120000,1));
datas.add(new ProductVO(PK++,"화분",5500,2));
}
public ArrayList<ProductVO> selectAll(ProductVO pVO){
// 높은 응집도를 위해
// 여러기능을 하나의 메서드에서 작성
if (pVO == null) {
return datas;
} else if (pVO.getName().equals("expensive")) {
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() > pVO.getPrice()) {
mdatas.add(data);
}
}
return mdatas;
} else if (pVO.getName().equals("cheap")) {
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() < pVO.getPrice()) {
mdatas.add(data);
}
}
return mdatas;
} else if (pVO.getName().equals("filter")) { // searchCondition
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getPrice() > pVO.getPrice() && data.getPrice() < pVO.getCnt()) {
mdatas.add(data);
}
}
return mdatas;
} else {
// 상품목록출력을 할때에는 인자(pVO)가 null이므로
// pVO가 null이 아니라면 이름으로 검색임!
ArrayList<ProductVO> mdatas = new ArrayList<ProductVO>();
for (ProductVO data : datas) {
if (data.getName().contains(pVO.getName())) {
// pVO.getName() == 사용자가 검색한 단어
mdatas.add(data);
}
}
return mdatas;
}
}
public ProductVO selectOne(ProductVO pVO){
if (pVO.getName().equals("expensive")) {
int max = datas.get(0).getPrice();
int maxIndex = 0;
for (int i = 1; i < datas.size(); i++) {
if (max < datas.get(i).getPrice()) {
max = datas.get(i).getPrice();
maxIndex = i;
}
}
return datas.get(maxIndex);
} else if (pVO.getName().equals("cheap")) {
int minIndex = 0;
for (int i = 1; i < datas.size(); i++) {
if (datas.get(minIndex).getPrice() > datas.get(i).getPrice()) {
minIndex = i;
}
}
return datas.get(minIndex);
} else {
return pVO;
}
}
public boolean insert(ProductVO pVO) {
return true;
}
public boolean update(ProductVO pVO) {
return true;
}
public boolean delete(ProductVO pVO) {
return true;
}
}
ProductDAO.java
package model;
public class ProductVO {
private int num; // PK
private String name;
private int price;
private int cnt; // 조회수
public ProductVO(int num,String name,int price,int cnt) {
this.num=num;
this.name=name;
this.price=price;
this.cnt=cnt;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
@Override
public String toString() {
String msg = num + ". " + name + " " + price + "원 [";
if (this.cnt == 0) {
msg += "품절]";
} else {
msg += cnt + "]";
}
return msg;
}
}
ProductVO.java
View
package view;
import java.util.ArrayList;
import java.util.Scanner;
import model.MemberVO;
// 회원목록출력
public class AdminView {
private static Scanner sc=new Scanner(System.in);
public int printAdminMenu() {
System.out.println();
System.out.println("=== 관 리 자 모 드 ===");
System.out.println("1. 회원목록출력");
System.out.println("2. 관리자모드 종료");
System.out.print("입력) ");
return sc.nextInt();
}
public void printMemberList(ArrayList<MemberVO> mdatas) {
System.out.println();
if (mdatas.isEmpty()) {
System.out.println("=== 가입한 회원이 없습니다! ===");
return;
}
System.out.println("=== 회 원 목 록 ===");
for(MemberVO mdata:mdatas) {
System.out.println(mdata);
}
}
public void printAdminEnd() {
System.out.println();
System.out.println("=== 관 리 자 모 드 종 료 ===");
}
}
AdminView.java
package view;
import java.util.ArrayList;
import java.util.Scanner;
import model.MemberVO;
import model.ProductVO;
// 회원가입,로그인,로그아웃,마이페이지,회원탈퇴
// 목록출력,목록검색_이름,목록검색_가격
public class ClientView {
private static Scanner sc=new Scanner(System.in);
public int printClientMenu01() {
System.out.println();
System.out.println("=== 프 로 그 램 모 드 ===");
System.out.println("1. 회원가입");
System.out.println("2. 로그인");
System.out.println("3. 프로그램 종료");
System.out.print("입력) ");
return sc.nextInt();
}
public MemberVO signUp() {
System.out.println();
System.out.println("=== 회 원 가 입 ===");
System.out.print("아이디입력) ");
String mid=sc.next();
System.out.print("비밀번호입력) ");
String mpw=sc.next();
System.out.print("이름입력) ");
String name=sc.next();
return new MemberVO(mid,mpw,name);
}
public void signUpTrue() {
System.out.println();
System.out.println("회원가입 성공!");
}
public void signUpFalse() {
System.out.println();
System.out.println("회원가입 실패...");
}
public int printClientMenu03() {
System.out.println();
System.out.println("=== 마 이 페 이 지 ===");
System.out.println("1. 회원정보");
System.out.println("2. 비밀번호 변경");
System.out.print("입력) ");
return sc.nextInt();
}
public void printMemberInfo(MemberVO mVO) {
System.out.println();
System.out.println("ID : " + mVO.getMid());
System.out.println("NAME : " + mVO.getName());
}
public String getMpw() {
System.out.println();
System.out.println("=== 비 밀 번 호 확 인 ===");
System.out.print("비밀번호입력) ");
String mpw = sc.next();
return mpw;
}
public String getNewMpw(MemberVO mVO) {
System.out.println();
System.out.println("=== 비 밀 번 호 변 경 ===");
System.out.println(mVO.getName() + "님의 현재 비밀번호는 [" + mVO.getMpw() + "]입니다.");
while (true) {
System.out.print("새 비밀번호입력) ");
String npw = sc.next();
if (!npw.equals(mVO.getMpw())) {
return npw;
}
}
}
public void printMemberUpdateTrue() {
System.out.println();
System.out.println("비밀번호 변경 성공!");
}
public void printMemberUpdateFalse() {
System.out.println();
System.out.println("비밀변호 변경 실패...");
}
public void printMpwFalse() {
System.out.println();
System.out.println("비밀번호 불일치...");
}
public void printMemberDeleteTrue() {
System.out.println();
System.out.println("회원탈퇴 성공!");
}
public void printMemberDeleteFalse() {
System.out.println();
System.out.println("회원탈퇴 실패...");
}
public MemberVO signIn() {
System.out.println();
System.out.println("=== 로 그 인 ===");
System.out.print("아이디입력) ");
String mid=sc.next();
System.out.print("비밀번호입력) ");
String mpw=sc.next();
return new MemberVO(mid,mpw,null);
}
public void signInTrue() {
System.out.println();
System.out.println("로그인 성공!");
}
public void signInFalse() {
System.out.println();
System.out.println("로그인 실패...");
}
public void printClientEnd01() {
System.out.println();
System.out.println("=== 프 로 그 램 종 료 ===");
}
public int printClientMenu02(MemberVO mVO) {
System.out.println();
System.out.println("=== 사 용 자 모 드 ===");
System.out.println(" 현재 로그인한 사용자 이름 [" + mVO.getName() + "]");
System.out.println("1. 로그아웃(사용자모드 종료)");
System.out.println("2. 마이페이지"); //////////
System.out.println("3. 회원탈퇴(사용자모드 종료)"); //////////
System.out.println("4. 상품목록출력"); //////////
System.out.println("5. 상품목록검색_이름으로 검색"); //////////
System.out.println("6. 상품목록검색_가격으로 검색"); //////////
System.out.print("입력) ");
return sc.nextInt();
}
public String getSearchContent() {
System.out.println();
System.out.println("=== 이 름 으 로 검 색 ===");
System.out.print("검색어입력) ");
String name = sc.next();
return name;
}
public int getSearchPriceContent() {
System.out.println();
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.print("입력) ");
return sc.nextInt();
}
public ProductVO getSearchPriceContent1() {
System.out.println();
System.out.println("=== 가 장 비 싼 상 품 ===");
return new ProductVO(0, "expensive", 0, 0);
}
public ProductVO getSearchPriceContent2() {
System.out.println();
System.out.println("=== 가 장 싼 상 품 ===");
return new ProductVO(0, "cheap", 0, 0);
}
public ProductVO getSearchPriceContent3() {
System.out.println();
System.out.println("=== 해 당 금 액 보 다 비 싼 상 품 ===");
System.out.print("가격입력) ");
int price = sc.nextInt();
return new ProductVO(0, "expensive", price, 0);
}
public ProductVO getSearchPriceContent4() {
System.out.println();
System.out.println("=== 해 당 금 액 보 다 싼 상 품 ===");
System.out.print("가격입력) ");
int price = sc.nextInt();
return new ProductVO(0, "cheap", price, 0);
}
public ProductVO getSearchPriceContent5() {
System.out.println();
System.out.println("=== 해 당 금 액 범 위 상 품 ===");
System.out.print("최소가격입력) ");
int minPrice = sc.nextInt();
System.out.print("최대가격입력) ");
int maxPrice = sc.nextInt();
return new ProductVO(0, "filter", minPrice, maxPrice);
// searchCondition
}
public void printProduct(ProductVO pVO) {
System.out.println();
if (pVO == null) {
System.out.println("=== 출 력 할 상 품 없 음 ===");
return;
}
System.out.println("=== 상 품 출 력 ===");
System.out.println(pVO);
}
public void printProductList(ArrayList<ProductVO> pdatas) {
System.out.println();
if (pdatas.isEmpty()) { // 사용자 편의성 고려(UI/UX)
System.out.println("=== 출 력 할 상 품 없 음 ===");
return;
}
System.out.println("=== 목 록 출 력 ===");
for(ProductVO data : pdatas) {
System.out.println(data);
}
}
public void logout() {
System.out.println();
System.out.println("=== 로 그 아 웃 ===");
}
public void printClientEnd02() {
System.out.println();
System.out.println("=== 사 용 자 모 드 종 료 ===");
}
}
ClientView.java
Controller
package view;
import java.util.ArrayList;
import java.util.Scanner;
import model.MemberVO;
import model.ProductVO;
// 회원가입,로그인,로그아웃,마이페이지,회원탈퇴
// 목록출력,목록검색_이름,목록검색_가격
public class ClientView {
private static Scanner sc=new Scanner(System.in);
public int printClientMenu01() {
System.out.println();
System.out.println("=== 프 로 그 램 모 드 ===");
System.out.println("1. 회원가입");
System.out.println("2. 로그인");
System.out.println("3. 프로그램 종료");
System.out.print("입력) ");
return sc.nextInt();
}
public MemberVO signUp() {
System.out.println();
System.out.println("=== 회 원 가 입 ===");
System.out.print("아이디입력) ");
String mid=sc.next();
System.out.print("비밀번호입력) ");
String mpw=sc.next();
System.out.print("이름입력) ");
String name=sc.next();
return new MemberVO(mid,mpw,name);
}
public void signUpTrue() {
System.out.println();
System.out.println("회원가입 성공!");
}
public void signUpFalse() {
System.out.println();
System.out.println("회원가입 실패...");
}
public int printClientMenu03() {
System.out.println();
System.out.println("=== 마 이 페 이 지 ===");
System.out.println("1. 회원정보");
System.out.println("2. 비밀번호 변경");
System.out.print("입력) ");
return sc.nextInt();
}
public void printMemberInfo(MemberVO mVO) {
System.out.println();
System.out.println("ID : " + mVO.getMid());
System.out.println("NAME : " + mVO.getName());
}
public String getMpw() {
System.out.println();
System.out.println("=== 비 밀 번 호 확 인 ===");
System.out.print("비밀번호입력) ");
String mpw = sc.next();
return mpw;
}
public String getNewMpw(MemberVO mVO) {
System.out.println();
System.out.println("=== 비 밀 번 호 변 경 ===");
System.out.println(mVO.getName() + "님의 현재 비밀번호는 [" + mVO.getMpw() + "]입니다.");
while (true) {
System.out.print("새 비밀번호입력) ");
String npw = sc.next();
if (!npw.equals(mVO.getMpw())) {
return npw;
}
}
}
public void printMemberUpdateTrue() {
System.out.println();
System.out.println("비밀번호 변경 성공!");
}
public void printMemberUpdateFalse() {
System.out.println();
System.out.println("비밀변호 변경 실패...");
}
public void printMpwFalse() {
System.out.println();
System.out.println("비밀번호 불일치...");
}
public void printMemberDeleteTrue() {
System.out.println();
System.out.println("회원탈퇴 성공!");
}
public void printMemberDeleteFalse() {
System.out.println();
System.out.println("회원탈퇴 실패...");
}
public MemberVO signIn() {
System.out.println();
System.out.println("=== 로 그 인 ===");
System.out.print("아이디입력) ");
String mid=sc.next();
System.out.print("비밀번호입력) ");
String mpw=sc.next();
return new MemberVO(mid,mpw,null);
}
public void signInTrue() {
System.out.println();
System.out.println("로그인 성공!");
}
public void signInFalse() {
System.out.println();
System.out.println("로그인 실패...");
}
public void printClientEnd01() {
System.out.println();
System.out.println("=== 프 로 그 램 종 료 ===");
}
public int printClientMenu02(MemberVO mVO) {
System.out.println();
System.out.println("=== 사 용 자 모 드 ===");
System.out.println(" 현재 로그인한 사용자 이름 [" + mVO.getName() + "]");
System.out.println("1. 로그아웃(사용자모드 종료)");
System.out.println("2. 마이페이지"); //////////
System.out.println("3. 회원탈퇴(사용자모드 종료)"); //////////
System.out.println("4. 상품목록출력"); //////////
System.out.println("5. 상품목록검색_이름으로 검색"); //////////
System.out.println("6. 상품목록검색_가격으로 검색"); //////////
System.out.print("입력) ");
return sc.nextInt();
}
public String getSearchContent() {
System.out.println();
System.out.println("=== 이 름 으 로 검 색 ===");
System.out.print("검색어입력) ");
String name = sc.next();
return name;
}
public int getSearchPriceContent() {
System.out.println();
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.print("입력) ");
return sc.nextInt();
}
public ProductVO getSearchPriceContent1() {
System.out.println();
System.out.println("=== 가 장 비 싼 상 품 ===");
return new ProductVO(0, "expensive", 0, 0);
}
public ProductVO getSearchPriceContent2() {
System.out.println();
System.out.println("=== 가 장 싼 상 품 ===");
return new ProductVO(0, "cheap", 0, 0);
}
public ProductVO getSearchPriceContent3() {
System.out.println();
System.out.println("=== 해 당 금 액 보 다 비 싼 상 품 ===");
System.out.print("가격입력) ");
int price = sc.nextInt();
return new ProductVO(0, "expensive", price, 0);
}
public ProductVO getSearchPriceContent4() {
System.out.println();
System.out.println("=== 해 당 금 액 보 다 싼 상 품 ===");
System.out.print("가격입력) ");
int price = sc.nextInt();
return new ProductVO(0, "cheap", price, 0);
}
public ProductVO getSearchPriceContent5() {
System.out.println();
System.out.println("=== 해 당 금 액 범 위 상 품 ===");
System.out.print("최소가격입력) ");
int minPrice = sc.nextInt();
System.out.print("최대가격입력) ");
int maxPrice = sc.nextInt();
return new ProductVO(0, "filter", minPrice, maxPrice);
// searchCondition
}
public void printProduct(ProductVO pVO) {
System.out.println();
if (pVO == null) {
System.out.println("=== 출 력 할 상 품 없 음 ===");
return;
}
System.out.println("=== 상 품 출 력 ===");
System.out.println(pVO);
}
public void printProductList(ArrayList<ProductVO> pdatas) {
System.out.println();
if (pdatas.isEmpty()) { // 사용자 편의성 고려(UI/UX)
System.out.println("=== 출 력 할 상 품 없 음 ===");
return;
}
System.out.println("=== 목 록 출 력 ===");
for(ProductVO data : pdatas) {
System.out.println(data);
}
}
public void logout() {
System.out.println();
System.out.println("=== 로 그 아 웃 ===");
}
public void printClientEnd02() {
System.out.println();
System.out.println("=== 사 용 자 모 드 종 료 ===");
}
}
Ctrl.java
Client
package client;
import ctrl.Ctrl;
public class Client {
public static void main(String[] args) {
Ctrl app=new Ctrl();
app.startApp();
}
}
Client.java
GitHub
https://github.com/Qkrwnsgus0522/Java
728x90