자바 프로그래밍 프로젝트 - 공학용 계산기 - 8조 수학 1996022674 양승원 물리 1997023153 안성훈 자바 프로그래밍 프로젝트 - 공학용 계산기 - 8조 수학 1996022674 양승원 물리 1997023153 안성훈 수학 2000000000 정만석 Java Programming : Calculator
목 차 프로젝트의 목적 Calculator의 기능 정의 Calculator 구현 및 분석 Calculator 의 불완전성 프로젝트 성과 및 결론 Java Programming : Calculator
◆ 객체 지향 언어인 Java 를 이용하여 공학용 계산기를 구현한다. ◆ 자바 어플리케이션 개발과정에 대해 이해한다. 1. 프로젝트의 목적 ◆ 객체 지향 언어인 Java 를 이용하여 공학용 계산기를 구현한다. ◆ 자바 어플리케이션 개발과정에 대해 이해한다. Java Programming : Calculator
2. Calculator 의 기능 정의 ◆ 기능 ◆ 옵션 ☞ 사칙연산(+, -, *, /)기능을 포함한다. ☞ 삼각함수(sin, cos, tan)를 포함한다. ☞ l og, π, 10^n ,√ 를 포함한다. ◆ 옵션 ☞ 숫자 맞추기 게임을 추가한다. ☞ Diet 프로그램을 추가한다. Java Programming : Calculator
3. Calculator 의 구현 및 분석 ◆ EntireLayer class가 전체적인 GUI를 만든다. ◆ Parser class 가 입력된 수식문자열에 대해 연산을 한 후 그 값을 Double type 으로 반환한다. ◆ 이 때 Double 형인 Answer가 그 값을 받고, 다시 Equation 문자열에 넘겨준다. ◆ 오류 발생시 Exception 처리를 해 준다. ◆ 자세한 분석은 source 주석처리에 모두 있습니다. Java Programming : Calculator
JavaCalculator의 java file들
EntireLayer 의 OutLine(1)
EntireLayer 의 OutLine(2)
Lexer의 OutLine Fig03. Lexer의 Outline
◆ Diet 프로그램 종료시 Calculator 동시 종료. ◆ 불완전한 Equation 입력시 완벽한 예외처리가 불가. Java Programming : Calculator
5. Calculator 의 문제 해결(1) ◆ Diet 종료 문제 ☞ 원인 ☞ 대책 이 곳 저곳을 돌아다니며 자료를 찾은 결과, dispose(), hide() 메쏘드들을 사용해 문제해결을 하려 했으나, 어떤 방법을 쓰더라도 해결을 할 수 없었음. 결국, source 자체에서 EntireLayer의 경우 JPanel을 상속받게 되어 있고, Diet는 Jframe을 상속받게 되어서, 형색을 보면 Jpanel안에서 Jframe을 불러버리는 꼴이 되어서 Jframe을 종료시키려 할 때, 그 자식격인 Jpanel도 함께 종료되어 버린다고 결론을 내림. ☞ 대책 Jdesktop을 이용해 JInternalFrame을 구현해 보려 했으나, Jdesktop에 add(calculator)를 해도, 입력이 안되어서 NullPointerException이 발생되었습니다. 대책은 두 프로그램을 모두 띄워서 show(), hide()메쏘드로 이를 구현하는 방법이 있을 것 같습니다. Java Programming : Calculator
5. Calculator 의 문제 해결(2) ◆ Function 버튼 예외처리 문제 ☞ 원인 ☞ 대책 버튼과 관련된 예외가 매우 많을 것이라 예상됩니다. 이 것은 문자열을 사용자의 입력이 천차만별이기 때문에, 어쩔 수 없는 현상이라 생각됩니다. ☞ 대책 100명의 Tester를 고용해 경험으로 버그를 찾아 수정하는 방법밖에 없는 것 같습니다. Java Programming : Calculator
6. 프로젝트 성과 및 결론 ◆ 성과 ☞ frame에 대해 제대로 배우지 못했지만, swing을 이용해 스스로 그것을 구현해냈다는 점. ☞ 한 학기 동안 공부한 자바 프로그래밍에 대해 복습 및 실력향상을 늘렸다는 점. ☞ 계산기 제작으로 그 어려운 파싱에 대해 이해를 할 수 있었다는 점. ◆ 결론 ☞ swing에 대해 좀 더 공부를 해야 할 것 같음. ☞ 좀 더 많이 공부를 하고 싶다. Java Programming : Calculator