자료구조 시간에 과제로 했던 온도(섭씨, 화씨)를 받아서 각각을 변환하는 프로그램이다 .
maven으로 컴파일하고, junit으로 모듈테스트 진행
메이븐을 이용하므로 디렉터리 구조를 맞추어 생성해준다.
나는 아래와 같이 생성함.
FtoC - src - main - java - org - cscnu - FtoC ( 메인소스와 인터페이스, 함수구현 소스 )
ㄴ test - java - org - cscnu - FtoC ( 테스트 소스 )
Convert.java 화씨<->섭씨 프로그램의 인터페이스입니다.
온도를 입력받고, 각각 화씨 섭씨인지를 구분하고 화씨<->섭씨가 되도록 바꾸어 반환합니다.
package org.cscnu.FtoC
public interface Temperature {
public double getCelsius();
public double getFahrenheit();
public void setCelsius( double celsius );
public void setFahrenheit( double fahrenheit );
}
MyTemperature.java Temperature 인터페이스를 구현 하는 소스
package org.cscnu.FtoC
public class MyTemperature implements Temperature {
private double celsius;
public MyTemperature( double value, char scale ) {
if( scale == 'C' )
{
setCelsius( value );
}
else
{
setFahrenheit( value );
}
}
public double getCelsius() {
return celsius;
}
public double getFahrenheit() {
return 9 * celsius / 5 + 32.0;
}
public void setCelsius( double celsius ) {
this.celsius = celsius;
}
public void setFahrenheit( double fahrenheit ) {
this.celsius = 5 * ( fahrenheit - 32 ) / 9;
}
public String toString() {
return round( getCelsius() ) + " C = " + round( getFahrenheit() ) + " F";
}
private double round( double x )
{
return Math.round( 10* x ) / 10.0;
}
}
두개의 인자( 온도, F인지 C인지 )를 받고 섭씨를 화씨로, 화씨를 섭씨로 변환시켜 주는 메인함수
package org.cscnu.FtoC
public class Convert {
public static void main( String args[] ) {
if( args.length != 2 )
{
exit();
}
double value = Double.parseDouble( args[0] );
char scale = Character.toUpperCase( args[1].charAt(0) );
if( scale != 'C' && scale != 'F' )
{
exit();
}
Temperature temperature = new MyTemperature( value, scale );
System.out.println( temperature );
}
/*
* 잘못 실행 시
*/
private static void exit() {
System.out.println(
"Usage : java Convert <temperature> <scale>"
+ "\nwhere:"
+ "\t<temperature> is the temperature that you want to convert"
+ "\n\t<scale> is either \"C\" or \"F\"."
+ "\nExample : java convert 67 F"
);
System.exit(0);
}
}
컴파일 프로젝트 root폴더 pom.xml가 있는 디렉토리에서 컴파일 시킵니다.
mvn compile
컴파일 후 실행
mvn exec:java -Dexec.mainClass="org.cscnu.FtoC.Convert" -Dexec.args="30 F"
정상적으로 컴파일이 되고, 실행도 정상적으로 되었다.
Junit을 이용하여 모듈 테스트를 해야하지만 과제는 했으나 이해가 안가므로 이헤가 갈때까지 패스 ㅠ
'Study > Data Structure' 카테고리의 다른 글
02. 배열의 순차탐색, 이진탐색 (0) | 2015.09.02 |
---|---|
01. 배열( Array ) (0) | 2015.09.02 |
maven을 이용한 java프로젝트 관리 (0) | 2015.03.14 |
java코딩 환경 (0) | 2015.03.04 |
Mint에서 한글사용 (0) | 2015.03.04 |