2010年5月28日 星期五

99/5/28 Java-BMI值計算


















import java.io.*;
import java.util.*;

public class fivete
{
public static void main(String args[])
{
String s1,s2,s3,bmis;
int i,num;
double h,w,bmi;
num = Integer.parseInt(args[0]);
try
{
FileReader ip=new FileReader("940304.SM");
BufferedReader bip=new BufferedReader(ip);

FileWriter opp=new FileWriter("940304w.SM");
BufferedWriter bopp=new BufferedWriter(opp);

for ( i = 1 ; i < num + 1; i++ )
{
s1=bip.readLine();
StringTokenizer cs =new StringTokenizer(s1,",");
s2=cs.nextToken();
s3=cs.nextToken();
h= Double.parseDouble(s2);
w= Double.parseDouble(s3);

bopp.write("身高:" + s2 +"CM" +" "+ "體重:" + s3 + "KG" + " " );


bmi=w/Math.pow(h/100,2);
bmis=Double.toString(bmi);

bopp.write("BMI:" + bmis + "\n");
if(bmi>25.0)
{
bopp.write("體重過重" );
}
else if(bmi<20.0)
{
bopp.write("體重過輕" );
}
else
{
bopp.write("正常範圍" );
}

bopp.write("\n");


bopp.flush();



}
bopp.close();
System.out.println("計算完成");


}
catch(Exception e)
{
System.out.println("Exception");
}


}
}



注意事項:
1.檔案的值先放入記事本再存入wordpad,避免因字型影響讀取。
2.範例:名稱.close();必須放在迴圈之外,避免迴圈發生錯誤。
3.args[0]為存取人數的變數,務必在執行時輸入。
4.同一行的值必須放入同樣多的變數才能將值全部讀取。
5.型態轉換:String to Double EX:w= Double.parseDouble(s3);
Double to String EX:bmis=Double.toString(bmi);
      String to Integer EX:num = Integer.parseInt(args[0]);
6.同一行斷句取值方式:StringTokenizer cs =new StringTokenizer(s1,",");
         s2=cs.nextToken();
7.要用StringTokenize,必須先宣告import java.util.*; 。

沒有留言:

張貼留言