실행결과

    project.exe
    0.42MB

     

     

    프로젝트 구조

    Main

    import java.util.Iterator;
    import java.util.Scanner;
    import java.util.Set;
    
    import bookstore.BookstoreDataSet;
    import bookstore.BookstoreVO;
    import login.Login;
    import member.MemberDataSet;
    import member.MemberVO;
    
    public class BookstoreMain {
    	Scanner scan = new Scanner(System.in);
    	
    	public BookstoreMain() {
    		
    	}
    	
    	public void start() {
    		
    		//아이디와 비밀번호를 입력받아 로그인 구현하기
    		Login.id = conInput("아이디");
    		Login.pwd = conInput("비밀번호");
    		Login.num = intInput("관리자면 1번 일반회원이면 2번을 입력하세요");
    		
    		//미리 데이터셋을 가져온다.
    		BookstoreDataSet.setBookstoreList();
    		MemberDataSet.setMemberList();
    		
    		while(true) {	
    			if(Login.login() && Login.id.equals("user")) { //일반
    
    				System.out.println("==============================강산서점 회원프로그램==============================");
    				String menu = conInput("메뉴[1.책목록, 2.책검색, 3.잔액확인, 4.책사기, 5.충전, 6.로그아웃 E 프로그램종료]");
    				System.out.println("==========================================================================");
    				if(menu.equals("E")) {//로그아웃
    					break;
    				}else if(menu.equals("1")){//책전체목록
    					bookstoreOutput();
    				}else if(menu.equals("4")) {//책사기
    					try{bookstoreBuy();
    						}catch(NullPointerException null32) {
    							System.out.println("이름이나 책이름이 잘못되었습니다.");
    						}
    				}else if(menu.equals("2")) {//책검색
    					bookstoreSearch();
    				}else if(menu.equals("5")) {//충전하기
    					charging();
    				}else if(menu.equals("3")) {//잔액확인하기
    					charge();
    				}else if(menu.equals("6")) {//로그아웃
    					start();
    				}
    				System.out.println("");
    				
    			}else if(Login.login()&& Login.id.equals("master")) { //관리자 
    					System.out.println("==========================================강산서점 관리자프로그램==============================================");
    					String menu = conInput("메뉴[1.책보기, 2.책등록 , 3.책수정, 4.책삭제, 5.회원목록 6.회원등록 7.회원수정 8. 회원삭제 9.로그아웃 E.프로그램종료]");
    					System.out.println("========================================================================================================");
    					if(menu.equals("E")) {//프로그램종료
    						break;
    					}else if(menu.equals("1")){//책전체목록
    						bookstoreOutput();
    					}else if(menu.equals("2")) {//책등록
    						bookstoreInsert();
    					}else if(menu.equals("3")) {//책수정
    						bookstoreEdit();
    					}else if(menu.equals("4")) {//책삭제
    						bookstoreDel();
    					}else if(menu.equals("5")) {//회원목록
    						memberOutput();
    					}else if(menu.equals("6")) {//회원등록
    						memberInsert();
    					}else if(menu.equals("7")) {//회원수정
    						memberEdit();
    					}else if(menu.equals("8")) {//회원삭제
    						memberDel();
    					}else if(menu.equals("9")) {//로그아웃
    						start();
    					}
    					System.out.println("");
    				}else{ //로그인 실패시 
    					System.out.println("잘못 입력하셨습니다."); break;
    				}
    			}
    	}
    	
    	
    
    
    //----------------------------------------------회원기능영역-----------------------------------------
    	int totaal = 0;
    	
    	public void bookstoreBuy(){ //책사기
    		String memberName = conInput("회원이름");
    		String bookstoreName = conInput("살 책이름");
    		MemberVO vo = MemberDataSet.MemberList.get(memberName);
    		BookstoreVO vo1 = BookstoreDataSet.BookstoreList.get(bookstoreName);
    		String name = vo.getMemberName();		//vo.getMemberName에서 가져온 이름
    		int youcharge = vo.getCharge();			//현재금액
    		int total = vo.getCharge()- vo1.getBooktotal(); //현재금액-책값
    		if(total < 0) {
    			System.out.println("잔액이 부족합니다 충전후에 이용하세요.");
    		}else if(total > 0){
    			System.out.println("구매하신 회원님의 이름은 " + name + "이며 사기전 금액은 " + youcharge + "원 이였고, "+ "책 가격은 "+ vo1.getBooktotal()+ "원 입니다.");
    			System.out.println("사고난 후 금액은 " + total + "원 입니다.");
    			vo.setCharge(total);
    			totaal = total;
    		}else if(vo == null || vo1 == null){
    			System.out.println("이름이나 책 이름이 잘못되었습니다.");
    		}
    		/*
    		 Set<String> keyList = BookstoreDataSet.BookstoreList.keySet();
    		Iterator<String> ii = keyList.iterator();
    		while(ii.hasNext()) {
    			BookstoreVO vo = BookstoreDataSet.BookstoreList.get(ii.next());
    			System.out.printf("%d\t%s\t%s\t%s\t%s\t\n", vo.getBookstoreNo(), vo.getBookstoreName(), vo.getBookstoreWriter(), vo.getBookstorePublish(), vo.getBooktotal());
    		}
    		 */
    	}
    	
    	public void bookstoreSearch() { //책검색
            String bookstoreName = conInput("찾고싶은 책 이름를 검색하세요");
    		BookstoreVO vo = BookstoreDataSet.BookstoreList.get(bookstoreName);
            switch (bookstoreName) {
    			case "코딩테스트다"   : System.out.println("확인 결과 "+vo.getBookstoreName()+"는 저희서점에 있습니다."); break;
    			case "혼자하는 자바"  : System.out.println("확인 결과 "+vo.getBookstoreName()+"는 저희서점에 있습니다."); break;
    			case "생활코딩 책"   : System.out.println("확인 결과 "+vo.getBookstoreName()+"는 저희서점에 있습니다.");  break;
    			case "do it!자바!"  : System.out.println("확인 결과 "+vo.getBookstoreName()+"는 저희서점에 있습니다."); break;
    			case "자바의정석기초" : System.out.println("확인 결과 "+vo.getBookstoreName()+"는 저희서점에 있습니다."); break;
    			default : System.out.println("해당 이름의 책은 없습니다."); break;
            }	
    	}
    	public void charging() {  //잔액충전
    		String memberName = conInput("충전할 회원이름");
    		MemberVO vo = MemberDataSet.MemberList.get(memberName);  
    		if(vo==null) {
    			System.out.println("존재하지 않는 이름입니다.");
    		}else {//해당 회원의 정보가 있을때
    			int charge1 = totaal;
    			System.out.println("현재 " + charge1 + "원 있습니다.");
    			int charge2 = intInput("얼마를 충전하시겠습니까? ");
    			vo.setCharge(charge1+charge2);
    			System.out.println("현재 금액은 = " + vo.getCharge() + "원 입니다. ");
    		}
    	}
    	public void charge() { //잔액확인
    		String memberName = conInput("잔액을 확인할 회원이름");
    		MemberVO vo = MemberDataSet.MemberList.get(memberName);
    		if(vo==null) {
    			System.out.println("존재하지 않는 이름입니다.");
    		}else {
    			System.out.println("현재 " + vo.getCharge() + "원 있습니다.");
    		}
    	}
    
    //----------------------------------관리자영역----------------------------------------------------------
    //---------------------------------관리자 책 + 일반회원 책 출력만-----------------------------------------
    	//책 전체목록 출력
    	public void bookstoreOutput() {
    		Set<String> keyList = BookstoreDataSet.BookstoreList.keySet();
    		Iterator<String> ii = keyList.iterator();
    		while(ii.hasNext()) {
    			BookstoreVO vo = BookstoreDataSet.BookstoreList.get(ii.next());
    			System.out.printf("%d\t%s\t%s\t%s\t%s\t\n", vo.getBookstoreNo(), vo.getBookstoreName(), vo.getBookstoreWriter(), vo.getBookstorePublish(), vo.getBooktotal());
    		}
    	}
    	
    	//책등록
    	public void bookstoreInsert() {
    		try {
    			int bookstoreNo = Integer.parseInt(conInput("책번호"));
    			String bookstoreName = conInput("책이름");
    			String bookstoreWriter = conInput("책저자");
    			String bookstorePublish = conInput("출판사");
    			int booktotal = intInput("책가격");
    		
    			BookstoreDataSet.BookstoreList.put(bookstoreName, new BookstoreVO(bookstoreNo, bookstoreName, bookstoreWriter, bookstorePublish, booktotal));
    		}catch(NumberFormatException ne) {
    			System.out.println("잘못입력하셨습니다. 다시 시도해주세요");
    		}
    	}
    	
    	//책 수정
    	public void bookstoreEdit() {
    		//책 명
    		String bookstoreName = conInput("책이름");
    		
    		// 해당 책의 정보가 없을때
    		BookstoreVO vo = BookstoreDataSet.BookstoreList.get(bookstoreName);
    		if(vo==null) {
    			System.out.println("존재하지 않는 책입니다.");
    		}else {//해당 책의 정보가 있을때
    			//책 이름, 저자, 판매수, 출판사
    			String subMenu = conInput("수정할 필드 선택[1.책저자, 2.출판사]");
    			if(subMenu.equals("1")) {
    				String writer = conInput("수정할 책저자");
    				vo.setBookstoreWriter(writer);
    			}else if(subMenu.equals("2")) {
    				String publish = conInput("수정할 출판사");
    				vo.setBookstorePublish(publish);
    			}
    		}
    	}
    	
    	//책삭제
    	public void bookstoreDel() {
    		String bookstoreName = conInput("삭제할 책이름");
    		BookstoreVO vo = BookstoreDataSet.BookstoreList.get(bookstoreName);
    		if(vo==null) {
    			System.out.println("책이름을 잘못 입력하셨습니다.");
    		}else {
    			BookstoreDataSet.BookstoreList.remove(bookstoreName);
    			System.out.println("삭제되었습니다.");
    		}
    		System.out.println("========================================================================================================");
    		bookstoreOutput();
    	}
    	
    	//-------------------------------------관리자 책끝-------------------------------------------
    	//---------------------------------관리자 회원시작------------------------------------------
    	//회원 전체목록 출력
    	public void memberOutput() {
    		Set<String> keyList = MemberDataSet.MemberList.keySet();
    		Iterator<String> ii = keyList.iterator();
    		while(ii.hasNext()) {
    			MemberVO vo = MemberDataSet.MemberList.get(ii.next());
    			System.out.printf("%d\t %s\t %s\t %s\t %s\t \n", vo.getMemberNo(), vo.getMemberName(), vo.getMemberPN(), vo.getMemberId(), vo.getCharge());
    		}
    	}
    	// 등록
    	public void memberInsert() {
    		try {
    			int no = Integer.parseInt(conInput("회원번호"));
    			String name = conInput("회원이름");
    			String writer = conInput("회원전화번호");
    			String sell = conInput("회원아이디");
    			int charge = 0;
    			
    			MemberDataSet.MemberList.put(name, new MemberVO(no, name, writer, sell, charge));
    		}catch(NumberFormatException ne) {
    			System.out.println("잘못입력하셨습니다. 다시 시도해주세요");
    		}
    	}
    		
    	//회원 수정
    	public void memberEdit() {
    		//회원명
    		String memberName = conInput("회원명");
    		MemberVO vo = MemberDataSet.MemberList.get(memberName);
    		if(vo==null) {// 해당 회원의 정보가 없을때
    			System.out.println("존재하지않는 회원입니다.");
    		}else {//해당 회원의 정보가 있을때
    			//회원 번호, 이름, 전화번호, 아이디
    			String subMenu = conInput("수정할 필드 선택[1.회원전화번호, 2.회원아이디, 3.충전금액]");
    			if(subMenu.equals("1")) {
    				String Pn = conInput("수정할 회원전화번호");
    				vo.setMemberPN(Pn);
    			}else if(subMenu.equals("2")) {
    				String Id = conInput("수정할 회원아이디");
    				vo.setMemberId(Id);
    			}else if(subMenu.equals("3")) {
    				int charge = intInput("수정할 충전금액");
    				vo.setCharge(charge);
    			}
    		}
    	}
    
    	//회원삭제
    	public void memberDel() {
    		String memberNameName = conInput("삭제할 회원이름");
    		MemberDataSet.MemberList.remove(memberNameName);
    		memberOutput();
    	}
    	//----------------------------관리자 회원끝--------------------------------------
    	
    	//콘솔에서 문자입력받아 리턴하는 메소드
    	public String conInput(String msg) {
    		System.out.print(msg + "=");
    		return scan.next();
    	}
    	
    	//콘솔에서 인트형 입력받아 리턴하는 메소드
    	public int intInput(String msg) {
    		System.out.print(msg + "=");
    		return scan.nextInt();
    	}
    	
    	//시작하는메소드
    	public static void main(String[] args) {
    		new BookstoreMain().start();
    		System.out.println("시스템이 종료되었습니다.");
    	}
    
    }
    

     

    bookstore패키지

    package bookstore;
    
    import java.util.HashMap;
    
    public class BookstoreDataSet {
    
    	public static HashMap<String, BookstoreVO> BookstoreList = new HashMap<String, BookstoreVO>();
    	public BookstoreDataSet() {
    		
    	}
    	public static void setBookstoreList() {
    //		BookstoreList.put("책이름    ", new BookstoreVO(1, "책이름     ", "책저자", "출판사", 5000, 10));
    		BookstoreList.put("코딩테스트다", new BookstoreVO(1, "코딩테스트다", "나동빈", "한빛미디어", 5000));
    		BookstoreList.put("혼자하는 자바", new BookstoreVO(2, "혼자하는 자바", "신용권", "한빛미디어", 7000));
    		BookstoreList.put("생활코딩 책", new BookstoreVO(3, "생활코딩 책 ", "이고잉", "위키북스", 8000));
    		BookstoreList.put("do it!자바!", new BookstoreVO(4, "do it!자바!", "정동균", "퍼블리싱", 5900));
    		BookstoreList.put("자바의정석기초", new BookstoreVO(5, "자바의정석기초", "남궁성", "도우출판", 7500));
    		//BookstoreList.put("남궁성", new BookstoreVO())
    	}
    
    }
    
    package bookstore;
    
    public class BookstoreVO {
    	
    	private int bookstoreNo; //책번호
    	private String bookstoreName; //책이름
    	private String bookstoreWriter; //책저자
    	private String bookstorePublish; //출판사
    	private int booktotal;	//책가격
    	
    	public int getBookstoreNo() {
    		return bookstoreNo;
    	}
    	public void setBookstoreNo(int bookstoreNo) {
    		this.bookstoreNo = bookstoreNo;
    	}
    	public String getBookstoreName() {
    		return bookstoreName;
    	}
    	public void setBookstoreName(String bookstoreName) {
    		this.bookstoreName = bookstoreName;
    	}
    	public String getBookstoreWriter() {
    		return bookstoreWriter;
    	}
    	public void setBookstoreWriter(String bookstoreWriter) {
    		this.bookstoreWriter = bookstoreWriter;
    	}
    
    	public String getBookstorePublish() {
    		return bookstorePublish;
    	}
    	public void setBookstorePublish(String bookstorePublish) {
    		this.bookstorePublish = bookstorePublish;
    	}
    	public int getBooktotal() {
    		return booktotal;
    	}
    	public void setBooktotal(int booktotal) {
    		this.booktotal = booktotal;
    	}
    	
    	public BookstoreVO() {
    		
    	}
    	
    	public BookstoreVO(int bookstoreNo, String bookstoreName, String bookstoreWriter, String bookstorePublish, int booktotal) {
    		this.bookstoreNo=bookstoreNo;
    		this.bookstoreName= bookstoreName;
    		this.bookstoreWriter = bookstoreWriter;
    		this.bookstorePublish = bookstorePublish;
    		this.booktotal = booktotal;
    	}
    
    }
    

     

     

    login

    package login;
    
    public class Login {
    	
    	public static String id;
    	public static String pwd;
    	public static int num;
    	
    	
    	//관리자, 일반회원 두개로 구분할것
    	public static boolean login() {
    		if (id == "" || pwd == "") {
    			System.out.println("아이디와 비밀번호를 입력후 로그인하세요.");
    			return false;
    		} else {
    			if(id.equals("master") && pwd.equals("1234") && num == 1) {
    				return true;
    			}else if(id.equals("user") && pwd.equals("1234") && num == 2){
    				return true;
    			}else {
    				return false;
    			}
    		}
    	}
    }
    

     

    Member

    package member;
    
    import java.util.HashMap;
    
    public class MemberDataSet {
    
    	public static HashMap<String, MemberVO> MemberList = new HashMap<String, MemberVO>();
    	public MemberDataSet() {
    		
    	}
    	
    	// 회원번호, 회원이름, 회원전화번호, 회원아디
    	public static void setMemberList() {
    		MemberList.put("홍길동", new MemberVO(1, "홍길동", "010-6231-9238", "123", 10000));
    		MemberList.put("김길동", new MemberVO(2, "김길동", "010-1111-2222", "234", 20000));
    		MemberList.put("리길동", new MemberVO(3, "리길동", "010-2222-4444", "345", 30000));
    		MemberList.put("금길동", new MemberVO(4, "금길동", "010-3333-1234", "456", 10000));
    		MemberList.put("동길동", new MemberVO(5, "동길동", "010-5555-4321", "567", 50000));
    	}
    
    }
    
    package member;
    
    public class MemberVO {
    	
    	private int memberNo;  //회원번호
    	private String memberName; //책이름
    	private String memberPN; //회원전화번호
    	private String memberId; //회원아이디
    	private int charge; //회원충전금액
    	
    	public int getMemberNo() {
    		return memberNo;
    	}
    
    	public void setMemberNo(int memberNo) {
    		this.memberNo = memberNo;
    	}
    
    	public String getMemberName() {
    		return memberName;
    	}
    
    	public void setMemberName(String memberName) {
    		this.memberName = memberName;
    	}
    
    	public String getMemberPN() {
    		return memberPN;
    	}
    
    	public void setMemberPN(String memberPN) {
    		this.memberPN = memberPN;
    	}
    
    	public String getMemberId() {
    		return memberId;
    	}
    
    	public void setMemberId(String memberId) {
    		this.memberId = memberId;
    	}
    	
    	public int getCharge() {
    		return charge;
    	}
    
    	public void setCharge(int charge) {
    		this.charge = charge;
    	}
    
    	public MemberVO() {
    		
    	}
    	
    	public MemberVO(int memberNo, String memberName, String memberPN, String memberId, int charge){
    		this.memberNo=memberNo;
    		this.memberName = memberName;
    		this.memberPN = memberPN;
    		this.memberId = memberId;
    		this.charge = charge;
    	}
    
    }
    
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기