주소록 만들기
조회수 1126회
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;
}
}
주소록 만들기를 하는데 데이터 값을 수정을 하고 빠져 나와야 하는데 빠져 나와 지지가 않네요..ㅠㅠ 어떻게 해야 하나요...??
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
댓글 입력