본문 바로가기

프로그래밍/자바소스 및 자료

[자바소스] 단위변환(kilos,grams,pounds,ounces)


단위변환입니다.
조금 고쳐야 할 부분이 있습니다.

잘 활용하시기 바랍니다.

1. MassMeasure.java 파일입니다.

import java.util.Scanner;
public class MassMeasure implements Comparable {
 private enum mass{POUNDS, OUNCES, KILOS, GRAMS}
 Scanner input=new Scanner(System.in);
 private double weight;
 private mass mType;
 
 /*
  * *생성자 입니다. 올바른 단위가 입력될때까지 반복적으로 물어봅니다.
  */
 public MassMeasure(double value, String type){
  weight=value;
  type=type.toUpperCase();
  while(true){
  if(type.equals("POUNDS") || type.equals("OUNCES") || type.equals("KILOS") || type.equals("GRAMS")){
   mType=mass.valueOf(type);
   break;
   }
  else{
   System.out.println("잘못입력하셨습니다. 다시입력하세요 :");
   type=input.next();
   type=type.toUpperCase();
   }
  }
 }//constructor ends
 
 /*
  * *convToGrams 로 모든 단위를 그람수로 바꾸어 연산해줍니다.
  */
 private double convToGrams(){
  double a = 0;
  switch(mType){
   case POUNDS:
    a=weight*453.6;
    break;
   case OUNCES:
    a=weight*28.35;
    break;
   case KILOS:
    a=weight*1000;
    break;
   case GRAMS:
    a=weight;
    break;
  }
  return a;
 }//change weight to grams
 
 /*
  * *convToGrams()를 통해서 각 단위에 맞게 단위를 변환합니다.
  */
 public double inKilograms(){
  return this.convToGrams()/1000;
 }

 public double inPounds(){
  return this.convToGrams()/453.6;
 }
 
 public double inOunces(){
  return this.convToGrams()/28.35;
 }
 
 public double ingrams(){
  return this.convToGrams();
 } //변환 값만 반환
 
 public String toString(){
  return weight+" "+mType;
 }

 public String toKilograms(){
  return this.inKilograms()+" "+"KILOS";
 }

 public String toPounds(){
  return this.inPounds()+" "+"POUNDS";
 }
 
 public String toOunces(){
  return this.inOunces()+" "+"OUNCES";
 }
 
 public String toGrams(){
  return this.ingrams()+" "+"GRAMS";
 } //변환값과 변환단위를 포함해서 반환

 /*
  * *compareTo를 통해서 두개를 비교하는데 다른객체보다 작을경우 -1 같을경우 0 클경우 1을 반환합니다.
  */
 public int compareTo(Object a) {
  if(this.convToGrams()>((MassMeasure) a).convToGrams())
   return 1;
  else if(this.convToGrams()==((MassMeasure) a).convToGrams())
   return 0;
  else
   return -1;
 }
}


2. program.java 파일입니다.
public class program{
 public static void main(String[] args){
  MassMeasure mass = new MassMeasure(8.5, "pounds");
  System.out.println(mass);
  System.out.println(mass + " is " + mass.inKilograms() + " kilograms.");
  System.out.println(mass + ".");
  System.out.println(mass + " is " + mass.toKilograms() + ".");
  System.out.println(mass + ".");
 }
}