본문 바로가기

Study/Data Structure

Maven을 이용 화씨<->섭씨 프로그램

자료구조 시간에 과제로 했던 온도(섭씨, 화씨)를 받아서 각각을 변환하는 프로그램이다 .


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