티스토리 뷰

주요개념

- 클래스, 생성자, 멤버변수, 객체와 인스턴스

 

Card 

public class Card {
    public String user;
    public int pw;
    public int bal;

    public Card(){;}

    public Card(String user, int pw, int bal) {
        this.user = user;
        this.pw = pw;
        this.bal = bal;
    }
    public int getPw() {
        return pw;
    }

    public void setPw(int pw) {
        this.pw = pw;
        System.out.println("비밀번호 변경 완료!");
    }
}

 

본 클래스

public class Quiz {
	public static void main(String[] args) {
        // 이름, 잔액, 비밀번호 등을 입력해야 하므로 스캐너 필요.
        Scanner sc = new Scanner(System.in);
        // 그래서 배열 형태가 필요

        Card[] c = new Card[3];

        // 3장이 발급될동안 해당 정보들이 반복될것이므로, for문을 사용해준다.
        for (int i = 0; i < 3; i++) {
            System.out.println("이름: ");
            String name = sc.nextLine();

            System.out.println("비밀번호: ");
            int pw = sc.nextInt();

            System.out.println("잔액: ");
            int bal = sc.nextInt();

            // 이렇게만 두면, 잔액이 버퍼에 남아있으므로, 버퍼를 일부러 한 번 비워주어야 한다.
            sc.nextLine();
            c[i] = new Card(name,pw,bal); //각각 i번째 카드에 정보 입력 후 카드 생성 가능
        }

        // 결제 구현
        // 비밀번호 일치여부 확인, 일치하면 5000원 결제, 여건이 되지 않으면 "잔액이 부족합니다" 출력
        //=> 일단 Card 클래스에서 비밀번호 일치하는지 여부를 판단하는 메서드가 필요하게 된다.
        // 이거 그냥 Card 클래스에서 게터세터로 가지고 와서 일치여부 판단한다(Day06에서는 아직 배우지 않았음)
        // 그래서 Card에 게터를 써줬음 그리고 결제 3번 반복할거니까, 반복문을 써준다.

        for (int i = 0; i < 3; i++) {
            System.out.println(c[i].user + " 님, 결제 진행 중입니다.");

            System.out.println("패스워드를 입력해주세요: ");
            int pw = sc.nextInt();
            // 비밀번호 일치하는 경우
            if(pw == c[i].getPw()) {
                if(c[i].bal<5000) {
                    System.out.println("잔액이 부족합니다!");
                }
                else {
                    c[i].bal -=5000; // c[i].bal = c[i].bal - 5000;
                    System.out.println("결제가 완료되었습니다!");
                }
            }
            // 비밀번호 불일치 하는 경우
            else {
                System.out.println("비밀번호가 일치하지 않습니다!");
            }
        }

        // 비밀번호 변경
        // 이번에는 새로운 값을 넣어줘야 하니, set이 필요할거야. Card클래스에 set을 써줘라.
        for (int i = 0; i<3; i++) {
            System.out.println(c[i].user + "님, 기존 패스워드를 입력하세요: ");
            int pw = sc.nextInt();

            // 비밀번호 일치, 변경
            if(pw==c[i].getPw()) {
                System.out.println("새로운 pw를 입력하세요: ");
                pw = sc.nextInt();

                // 변경한 비밀번호가 기존 비밀번호와 동일하다면 출력될 메시지는 아래에.
                if(pw == c[i].getPw()) {
                    System.out.println("기존 비밀번호와 동일합니다!");
                }
                else {
                    c[i].setPw(pw); // 동일하지 않은 경우, 새롭게 들어온 값으로 변경된다!
                }
            }
            // 비밀번호 불일치, 변경 불가 => if문 이외의 경우이므로, else문 처리를 통해 구현.
            else {
                System.out.println("비밀번호가 불일치하여 변경 불가!");
            }
        }

    }

}
728x90
반응형

'[개발] - Java > 간단한 Quiz' 카테고리의 다른 글

가위바위보 게임 만들기  (0) 2023.01.14
숫자를 입력받아 거꾸로 출력하기  (0) 2023.01.14
계산기 만들기  (0) 2023.01.14
반복문 관련 Quiz  (1) 2023.01.14
스캐너 사용 Quiz 3번째, 조건문 사용  (0) 2023.01.14
Comments
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
250x250