예제) 다음 데이터를 가지고 아래 문제들을 HTML파일로 만들어 제출하기
1. 외국인 가장 많이 거주하는 지역은?
2. 한국인이 외국인보다 많이 거주하는 지역은 ?
3. 나이가 많으신 분을 위해 추천하고 싶은 지역과 그 이유는?
단, 이 분은 민족주의 사관과 개인주의 성격을 가지고 있다)
먼저 엑셀 파일을 사용하기 위한 외부라이브러리를 설정해줘야한다.( jxl.jar => 엑셀파일을 사용하기 위한 라이브러리 )
ExcelReaderClass를 작성하기 전에 필요한 데이터 먼저 작성
외부에서 접근하지 못하게 private을 주고 엑셀파일을 읽어들일때는 String 타입으로 넘어오기때문에 매개변수를 String 타입으로 받은 후
원래타입인 정수형으로 형변환 시켰다.
우리한테 필요한 데이터는 자치구, 한국인 총인원, 외국인 총인원 이기때문에 불피요한 데이터는 불러오지 않았다.
객체 생성없이 바로 호출할 수 있도록 public static으로 만들었고 Population의 개체를 사용할 것이기에 예약타입을 <PopulationClass>으로 만들었다.
MainClass로 넘어가 엑셀 파일의 위치를 지정해 주면 엑셀 파일읽기 준비단계는 끝난다.
String 변수명 = "파일 경로"; => 값 넘겨주기
파일을 읽기만 할것이기에 Workbook 클래스만 사용
while문 안의 try~catch~ => 반복문 안에서도 예외처리를 한 이유는 데이터를 한줄씩 읽어내는데 마지막 데이터를 읽은 후에도 반복을 멈추지 않아 오류가 나와 프로그램을 강제 종료시키기 때문!!
Cell 클래스 ( 열, 행 )
* 테스트 코드는 말그대로 테스트용!! 반드시 확인 후 지워주거나 주석처리해준다!! 안그러면 계속 실행됨
1번 문제
최대값을 가진 지역 하나만 출력 하는것이기에 정렬 방식을 사용하지 않고 최대값을 구한다.
선언된 임시 변수 는 값을 비교하기 위해서 생성된것!!
2번문제
인덱스 번호에 맞는 값을 비교해주면 준다.
비교된 값을 지역구로 받을 것이기때문에 String 타입을 줘야하는데 전체 데이터 수가 몇개인지 모른다는 가정하에 배열 크기를 자동으로 조절해주는 ArrayList사용
3번문제
최소값 구하기
코드로는 1번문제의 코드에서 연산 부호만 바꿔주면 되지만 temp의 초기값이 0이기 때문에 조건문 아래의 코드는 실행되지 않는다.
그렇기 때문에 데이터값보다 큰 수로 초기화 해줌으로써 조건문이 실행되게된다.
문제에서의 민족주의 => 외국인 수가 제일 적은 낮은 지역,, 개인주의 => 한국인 수가 적은 지역으로 해서 구했다.
둘을 합하여 전체 지역구중에 인원이 가장 없는곳으로 정했다.
메인으로 넘어와서 HTML tag생성과 HTML파일 생성 준비를 한다.
이번 프로젝트에서는 각 클래스별로 역할을 완전히 분담해줬다.
MethodClass에서는 기능의 역할만 하고
PrintClass에서는 출력을 위한 생성 역할을 하고
MainClass에서 출력
'Learn > KH정보교육원' 카테고리의 다른 글
[KH정보교육원 당산] 15일차 (Collection ) (0) | 2021.03.30 |
---|---|
[KH정보교육원 당산] 14일차 (외부라이브러리 사용 마지막) (0) | 2021.03.29 |
[KH정보교육원 당산] 12일차 (외부 라이브러리 사용 - 엑셀파일 만들기, 설계도 구성 연습) (0) | 2021.03.25 |
[KH정보교육원 당산] 11일차( 상속예제, 인터페이스, 추상클래스) (0) | 2021.03.24 |
[KH정보교육원 당산] 10일차 ( 상속예제 ) (0) | 2021.03.23 |