사자가 된 감자 3주차

2023. 5. 2. 20:03·LikeLion🦁
728x90

이번주는 학생 관리 프로그램을 짜봤다암

시험 끝난날 과제를 하니까 기분이 좋군요호호

 

먼저 Studnet클래스와 Inter페이스으으

package manage;
public class Student {
        double point;
        String name;

        public Student(double point, String name) {
            this.point = point;
            this.name = name;
        }

        public double getPoint() {
            return point;
        }

        public void setPoint(double point) {
            this.point = point;
        }

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
}
package manage;
public interface studentManager {
    void addStudent(Student student);

    void updateStudent(String name, double score);

    void deleteStudent(String name);

    void printAllStudent();
}

 

그 다음은 인터페이스를 정의한 deep클래스으

package manage;
import java.util.HashMap;
import java.util.Set;

public class deep implements studentManager {
    HashMap<String, Student> map = new HashMap<>();

    @Override
    public void addStudent(Student student) {
        map.put(student.getName(), student);
    }

    @Override
    public void updateStudent(String name, double score) {
        Student tmp = map.get(name);
        tmp.setPoint(score);
        map.put(name, tmp);
    }
    @Override
    public void deleteStudent(String name) {
        map.remove(name);
    }

    @Override
    public void printAllStudent() {
        Set<String> set = map.keySet();
        for (String s : set) {
            System.out.println(s + " 학생의 점수는 " + map.get(s).getPoint() + "점 입니다.");
        }
    }
}

시험이 끝난 감자에게는 이번 과제는 아주 쉬웠습니당 그래서 기부니가 좋아요!!

 

main은 생략하겠습니당.

과제의 의도는 SOLID원칙을 생각하여 인터페이스를 잘 사용해보라는 의도로 예상만 해봅니다!

 

그 다음은 회원가입 만들기

이 코드는 무지성으로 슈슉짰기 때문에 간단하게 설명하자면, 프로그램 시작 메서드와 로그인, 회원가입, 시스템 종료 메서드를 구현하였고,

member라는 객체를 데이터로 저장하는 HashMap을 사용하였다.

package login;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
public class Main {
        static HashMap<String, Member> repository = new HashMap<>();
        static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        public static void main(String[] args) throws IOException {

            while (true){
                try {
                    int order = start();
                    switch (order){
                        case 1:
                            if(login()){
                                continue;
                            };
                            break;
                        case 2:
                            memberShip();
                            break;
                        case 3:
                            SystemOff();
                            break;
                        default:
                            System.out.println("번호를 다시 확인해주세요.");
                    }
                }
                catch (NumberFormatException exception){
                    System.out.println("번호로 입력해주세요.");
                }
            }
        }

        static public int start() throws IOException {

            StringBuilder sb = new StringBuilder();

            sb.append("멋쟁이사자처럼 로그인 프로그램\n")
                    .append("\n")
                    .append("==================\n")
                    .append("1. 로그인\n")
                    .append("2. 회원가입\n")
                    .append("3. 종료\n")
                    .append("==================\n")
                    .append("어떤걸 진행하시겠습니까? :");

            System.out.print(sb);

            return Integer.parseInt(br.readLine());
        }
        static public boolean login() throws IOException {
            System.out.print("아이디를 입력하세요 : ");
            String id = br.readLine();
            System.out.print("비밀번호를 입력하세요 : ");
            String password = br.readLine();
            System.out.println();

            Member member = repository.get(id);//회원 정보 가져오기

            if(member!=null){
                if(id.equals(member.id) && password.equals(member.password)){
                    System.out.println(id+" 회원 성공적으로 로그인하였습니다.");
                    SystemOff();
                }
                else {
                    System.out.println("비밀번호가 틀렸습니다.");
                }
            }
            else {
                System.out.println("없는 회원입니다.\n");
            }
            return false;
        }

        static public void memberShip() throws IOException {
            while (true){

                System.out.print("아이디를 입력하세요 : ");
                String id = br.readLine();

                if(repository.get(id)!=null){
                    System.out.println("이미 있는 아이디입니다.");
                    System.out.println("다른 아이디로 회원가입을 계속 진행하시겠습니까? (y or n) :");
                    String order = br.readLine();
                    if(order.equals("y")){
                        continue;
                    }
                    else if (order.equals("n")) {
                        return;
                    }
                    else {
                        System.out.println("다시 입력해주세요.");
                    }
                }

                System.out.print("비밀번호를 입력하세요 : ");
                String password = br.readLine();
                System.out.println();

                Member member = new Member(id,password);
                repository.put(id,member);
                System.out.println("정상적으로 회원가입 되었습니다.");
                break;
            }
        }
        static public void SystemOff(){
            System.out.println("프로그램이 종료됩니다.");
            System.exit(0);
        }
    }
    class Member{
        String id;
        String password;
        public Member(String id, String password) {
            this.id = id;
            this.password = password;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

}
728x90

'LikeLion🦁' 카테고리의 다른 글

감자의 MT 참여하기  (3) 2023.05.16
우리 아이가 사고쳤어요~  (0) 2023.05.09
사자가 된 감자 4주차  (1) 2023.05.07
사자가 된 감자 2주차  (1) 2023.04.09
사자가 된 감자 1주차  (0) 2023.04.05
'LikeLion🦁' 카테고리의 다른 글
  • 우리 아이가 사고쳤어요~
  • 사자가 된 감자 4주차
  • 사자가 된 감자 2주차
  • 사자가 된 감자 1주차
Bello's
Bello's
개발하는 벨로
  • Bello's
    벨로의 개발일지
    Bello's
  • 전체
    오늘
    어제
    • 분류 전체보기 (199) N
      • 노예 일지 (7)
        • 스타트업 노예일지 (3)
      • CS 이론 (81)
        • 학과 수업 (4)
        • 알고리즘 (64)
        • 시스템 프로그래밍 (3)
        • 데이터 통신 (1)
        • 운영체제 (2)
        • 데이터베이스 (1)
      • project (3)
      • 나는 감자다. (4)
      • Spring (27)
      • 모각코 (45)
        • 절개와지조(모각코) (7)
        • 어쩌다보니 박준태가 조장이조 (11)
        • 어쩌다보니 박준태가 또 조장이조 (12)
      • LikeLion🦁 (20)
      • 캘리포니아 감자 (4)
      • OpenSource Contribute (1)
      • 우아한테크벨로 (1) N
        • 프리코스 회고록 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    누적합
    Spring
    오블완
    뛰슈
    타임리프
    어렵다
    티스토리챌린지
    백준
    JPA
    DFS
    절개와지조
    자바
    모각코
    회고록
    그래프 순회
    프리코스
    나는 감자
    감자
    BFS
    8기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Bello's
사자가 된 감자 3주차
상단으로

티스토리툴바