편집 기록

편집 기록
  • 프로필 김선우님의 편집
    날짜2018.06.21

    주소록 만들기


    package address2b.controller;

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Scanner;

    import address2b.model.Student; import address2b.model.StudentDAO; import address2b.view.StudentView;

    public class StudentController implements Controller { StudentDAO studentDAO = new StudentDAO(); Student student = null; // 참조변수는 있지만 참고하는 객체가 null(참조하는 객체 없음) 상태임 Scanner sc = null; @Override public void process(String command) { // TODO Auto-generated method stub switch(command) { case "register" : register(); break; case "list" : list(); break; case "update" : update(); break; case "delete" : delete(); break; case "listAll" : listAll(); break; case "open" : open(); break; case "save" : save(); break; } } public void process1(String command1) { // TODO Auto-generated method stub switch(command1) { case "name" : System.out.println("이름 : ");name(); break; case "hakbun" : System.out.println("학번 : ");hakbun(); break; case "email" : System.out.println("이메일 : ");email(); break; case "dept" : System.out.println("학과 : ");dept(); break; default: System.out.println("명령에 해당하는 숫자 코드를 입력하시오");break; } } private void dept() { student = new Student(); sc = new Scanner(System.in); student.setDept(sc.next()); System.out.println("학과 : "+student.getDept());

    }
    private void email() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setEmail(sc.next());
        System.out.println("이메일 : "+student.getEmail());
    }
    private void hakbun() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setHakbun(sc.next());
        System.out.println("학번 : "+student.getHakbun());
    }
    private void name() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setName(sc.next());
        System.out.println("이름 : "+student.getName());
    }
    StudentView studentView = new StudentView(); // 인스턴스 변수, 멤버 필드
    private void update() {
        // TODO Auto-generated method stub
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("수정할 학번 : ");
        student.setHakbun(sc.next());
        //studentDAO.update(student);
        System.out.print("수정할 항목을 고르시오 : ");
        String[] menus1 = {"0.이름", "1.학번", "2.이메일", "3.학과","4.이전으로"};
    
        for(String m1 : menus1)
            System.out.print(m1 + " | "); // 집합 객체 - 문자열 배열을 순차적으로 접근
        System.out.print("\n");
        student.setHakbun(sc.next());
        StudentController studentCtrl1 = new StudentController();
    
        //Scanner sc1 = new Scanner(System.in);//입력받음
        int key1 = sc.nextInt();
        while (true) {
            switch(key1) {
                case 0: studentCtrl1.process1("name");break;
                case 1: studentCtrl1.process1("hakbun");break;
                case 2: studentCtrl1.process1("email");break;
                case 3: studentCtrl1.process1("dept");break;
                case 4: sc.close(); // 자원 회수하는 문장
                        System.exit(1);break;
                default: System.out.println("명령에 해당하는 숫자 코드를 입력하시오");break;
            }
        }
    }
    private void delete() {
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("삭제할 학번 : ");
        student.setHakbun(sc.next());
        studentDAO.delete(student); 
        System.out.println("삭제되었습니다! ");
    }
    private void open() {
        studentDAO.open();
    }
    private void save() {
        studentDAO.save();
    }
    private void listAll() {
        // Controller의 역할 : 요청을 받아 (기본적인 처리 후) DAO에게 전달하고, 
        //                   DAO가 처리한 내용을 받아서(추가적인 처리 후) 뷰에게 전달
        studentView.printStudentList(studentDAO.readList()); // VIEW에게 전달
        /*
        ArrayList<Student> studentList = studentDAO.readList();
        for(Student s : studentList)
            System.out.print(s.getName() + "|" + s.getHakbun() + "\n");         
        */
    }
    private void list() {
        student = new Student(); 
        sc = new Scanner(System.in);
        System.out.print("학번 : ");
        student.setHakbun(sc.next());
        Student found = null;
        if((found = studentDAO.read(student)) != null)
            studentView.printStudent(found);
            /*
            System.out.print(found.getHakbun() + "|" + found.getName() + 
                    " | " + found.getEmail() + " | " + found.getDept() + "\n");
                    */
        else
            studentView.printException("입력한 학번의 학생은 존재하지 않습니다");
            //System.out.print("입력한 학번의 학생은 존재하지 않습니다\n");
    }
    private void register() {
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("이름 : ");
        student.setName(sc.next());
        System.out.print("학번 : ");
        student.setHakbun(sc.next());
        System.out.print("이메일 : ");
        String email = sc.next();
        student.setEmail(email);
        System.out.print("학과 : ");
        student.setDept(sc.next());
    
        // egyou@induk.ac.kr vs a@a.com : e-mail : @ 기호가 있고, @ 기호 앞에 글자수는 3자 이상
        if(isValidEmail(email)) {
            studentDAO.create(student);
            studentView.printRegister(student);
        }
    
        else
            System.out.println("이메일 형식을 확인하십시요");
    
    }
    
    private boolean isValidEmail(String email) {
        boolean ok = false;
        int i = email.indexOf('@');
        try {
            if(i < 0) {
                throw new Exception("@이 있어야 합니다.");
            }
            else if(email.substring(0, i).length() < 3) {
                throw new Exception("아이디는 3자 이상.");
            }
            else {
                ok = true;  
            }
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
        return ok;
    }
    

    }

    주소록 만들기를 하는데 데이터 값을 수정을 하고 빠져 나와야 하는데 빠져 나와 지지가 않네요..ㅠㅠ 어떻게 해야 하나요...??

  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.06.17

    주소록 만들기


    package address2b.controller;

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Scanner;

    import address2b.model.Student; import address2b.model.StudentDAO; import address2b.view.StudentView;

    public class StudentController implements Controller { StudentDAO studentDAO = new StudentDAO(); Student student = null; // 참조변수는 있지만 참고하는 객체가 null(참조하는 객체 없음) 상태임 Scanner sc = null; @Override public void process(String command) { // TODO Auto-generated method stub switch(command) { case "register" : register(); break; case "list" : list(); break; case "update" : update(); break; case "delete" : delete(); break; case "listAll" : listAll(); break; case "open" : open(); break; case "save" : save(); break; } } public void process1(String command1) { // TODO Auto-generated method stub switch(command1) { case "name" : System.out.println("이름 : ");name(); break; case "hakbun" : System.out.println("학번 : ");hakbun(); break; case "email" : System.out.println("이메일 : ");email(); break; case "dept" : System.out.println("학과 : ");dept(); break; default: System.out.println("명령에 해당하는 숫자 코드를 입력하시오");break; } } private void dept() { student = new Student(); sc = new Scanner(System.in); student.setDept(sc.next()); System.out.println("학과 : "+student.getDept());

    }
    private void email() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setEmail(sc.next());
        System.out.println("이메일 : "+student.getEmail());
    }
    private void hakbun() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setHakbun(sc.next());
        System.out.println("학번 : "+student.getHakbun());
    }
    private void name() {
        student = new Student();
        sc = new Scanner(System.in);
        student.setName(sc.next());
        System.out.println("이름 : "+student.getName());
    }
    StudentView studentView = new StudentView(); // 인스턴스 변수, 멤버 필드
    private void update() {
        // TODO Auto-generated method stub
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("수정할 학번 : ");
        student.setHakbun(sc.next());
        //studentDAO.update(student);
        System.out.print("수정할 항목을 고르시오 : ");
        String[] menus1 = {"0.이름", "1.학번", "2.이메일", "3.학과","4.이전으로"};
    
        for(String m1 : menus1)
            System.out.print(m1 + " | "); // 집합 객체 - 문자열 배열을 순차적으로 접근
        System.out.print("\n");
        student.setHakbun(sc.next());
        StudentController studentCtrl1 = new StudentController();
    
        //Scanner sc1 = new Scanner(System.in);//입력받음
        int key1 = sc.nextInt();
        while (true) {
            switch(key1) {
                case 0: studentCtrl1.process1("name");break;
                case 1: studentCtrl1.process1("hakbun");break;
                case 2: studentCtrl1.process1("email");break;
                case 3: studentCtrl1.process1("dept");break;
                case 4: sc.close(); // 자원 회수하는 문장
                        System.exit(1);break;
                default: System.out.println("명령에 해당하는 숫자 코드를 입력하시오");break;
            }
        }
    }
    private void delete() {
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("삭제할 학번 : ");
        student.setHakbun(sc.next());
        studentDAO.delete(student); 
        System.out.println("삭제되었습니다! ");
    }
    private void open() {
        studentDAO.open();
    }
    private void save() {
        studentDAO.save();
    }
    private void listAll() {
        // Controller의 역할 : 요청을 받아 (기본적인 처리 후) DAO에게 전달하고, 
        //                   DAO가 처리한 내용을 받아서(추가적인 처리 후) 뷰에게 전달
        studentView.printStudentList(studentDAO.readList()); // VIEW에게 전달
        /*
        ArrayList<Student> studentList = studentDAO.readList();
        for(Student s : studentList)
            System.out.print(s.getName() + "|" + s.getHakbun() + "\n");         
        */
    }
    private void list() {
        student = new Student(); 
        sc = new Scanner(System.in);
        System.out.print("학번 : ");
        student.setHakbun(sc.next());
        Student found = null;
        if((found = studentDAO.read(student)) != null)
            studentView.printStudent(found);
            /*
            System.out.print(found.getHakbun() + "|" + found.getName() + 
                    " | " + found.getEmail() + " | " + found.getDept() + "\n");
                    */
        else
            studentView.printException("입력한 학번의 학생은 존재하지 않습니다");
            //System.out.print("입력한 학번의 학생은 존재하지 않습니다\n");
    }
    private void register() {
        student = new Student();
        sc = new Scanner(System.in);
        System.out.print("이름 : ");
        student.setName(sc.next());
        System.out.print("학번 : ");
        student.setHakbun(sc.next());
        System.out.print("이메일 : ");
        String email = sc.next();
        student.setEmail(email);
        System.out.print("학과 : ");
        student.setDept(sc.next());
    
        // egyou@induk.ac.kr vs a@a.com : e-mail : @ 기호가 있고, @ 기호 앞에 글자수는 3자 이상
        if(isValidEmail(email)) {
            studentDAO.create(student);
            studentView.printRegister(student);
        }
    
        else
            System.out.println("이메일 형식을 확인하십시요");
    
    }
    
    private boolean isValidEmail(String email) {
        boolean ok = false;
        int i = email.indexOf('@');
        try {
            if(i < 0) {
                throw new Exception("@이 있어야 합니다.");
            }
            else if(email.substring(0, i).length() < 3) {
                throw new Exception("아이디는 3자 이상.");
            }
            else {
                ok = true;  
            }
        } catch(Exception e) {
            System.out.println(e.getMessage());
        }
        return ok;
    }
    

    }

    주소록 만들기를 하는데 데이터 값을 수정을 하고 빠져 나와야 하는데 빠져 나와 지지가 않네요..ㅠㅠ 어떻게 해야 하나요...??