개발자 미니민의 개발스터디

[JAVA] 성적 처리 인터페이스 구현 2차

by mini_min

◾ 기능

1. 등록

2. 수정

3. 삭제

4. 리스트

5. 이름검색

6. 학번검색

7. 종료

 

 

◾ VALUES 값으로 저장할 것은?

- 학번(기본키)

- 이름

- 국어

- 영어

- 수학

- 총점, 평균 (국영수 이용)

 

private String hak;
	private String name;
	private int kor;
	private int eng;
	private int mat;
	
	public String getHak() {
		return hak;
	}
	public void setHak(String hak) {
		this.hak = hak;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}
	public int getMat() {
		return mat;
	}
	public void setMat(int mat) {
		this.mat = mat;
	}
	
	
	public int getTot() {
		return kor + eng + mat;
	}
	public int getAve() {
		return getTot() / 3;
	}
}

 

 

 

◾ 인터페이스 (Score)

정보등록 : 정보 등록만 하면 되니까 void + insertScore(ScoreVO vo) + 중복 예외 던지기 throws MyDuplicationException; 

 = ScoreVO 에 저장할 것임.

수정update : 마찬가지로 학번을 받아서 읽어서 수정 

삭제delete : boolean (참거짓으로 삭제) deleteScore(기본값 학번) - 학번으로 삭제

리스트 업 : listScore()  만들기 - ScoreVO 를 list 객체로 만들어서 업데이트하기

이름 검색 : listScore(String name) 만들기 - ScoreVO 를 list 객체로 만들어서 업데이트하기

학번 검색 : ScoreVO readScore(학번 읽기)

 

등록 : insertScore(ScoreVO vo)
수정 : ScoreVO readScore(String hak)
삭제 : boolean deleteScore(String hak)
리스트업 : List<ScoreVO> listScore()
이름 : List<ScoreVO> listScore(String name);
학번 : ScoreVO readScore(String hak)
💡 학번이랑 이름이랑 똑같은 검색인데, List와 vo로 다른 이유
: 학번은 중복값이 없기 때문에 List 클래스로 사용하지 않음

 

 

 

◾ 인터페이스 구현 (Score)

public class ScoreImpl implements Score {

//Score 인터페이스 를 구현한 ScoreImpl 생성

List 클래스에 학생 정보를 저장한 ScoreVO 를 list로 저장하는 객체를 생성한다. (ArrayList  사용)

ArrayList = 중복값 허용 하는 List 클래스

private List<ScoreVO> list = new ArrayList<>();

 

 

 

◾ 등록 : @Override public void insertScore(ScoreVO vo) throws MyDuplicationException

readScore 를 했을 때 vo의 hak 이 null이면 list 객체 값에 vo 를 저장한다.

//학번 검색시 일치하는게 없으면 없다고 출력,
//아니라면 저장
if(readScore(vo.getHak()) != null) {
	throw new MyDuplicationException("등록된 학번입니다.");
}
list.add(vo)

}

 

 

 

◾ 리스트 : @Override public List<ScoreVO> listScore()

리스트를 그대로 출력하는 것!

return list;

 

 

 

◾ 이름검색 : @Override public List<ScoreVO> listScore(String name)

기존에 있는 List<Score> list 는 등록 받은 학생 정보를 vo에 넣는데 저장할 때 사용했으니, 저장된 vo 에서 옮긴 것을 새로운 list 객체에 저장해야한다. 

List<ScoreVO> finds = new ArrayList<>();

for(ScoreVO vo : list) {
	if(vo.getName().indexOf(name)>=0) {
    find.add(vo)
	}
}

return finds;

 

 

 

◾ 학번검색 : @Override public ScoreVO readScore(String hak)

중복값을 갖지 않기 때문에 List 객체로 만들지 않았다. 

리스트를 보내고 vo 리스트에서 입력받은 동일한 학번을 찾아서 return 한다. 

public ScoreVO readScore(String hak) {
	for(ScoreVO vo : list) {
	if(vo.getHak().equals(hak)) {
	return vo;
				}
	}
		return null;
}

 

 

 

◾ 삭제 : @Override public ScoreVO deleteScore(String hak)

삭제하기 위해, readScore로 hak 학번 이용해서 vo 일치하는 vo 객체를 모두 뽑아내고,vo 객체가 null 이 아니라면 삭제하고 true 값을 넘겨준다. 만약 데이터가 없다면 false 를 반환한다.

ScoreVO vo = readScore(hak);
		
if(vo != null) {
	list.remove(vo);
	return true;
	}
		
	return false;
	}

 

 

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기