2013年6月11日 星期二

6/11 物件導向小考

物件導向設計原理期末考                     102/6/11
1.      輸入二元檔(binary file) pdata2.txt
(a)    pdata2.txt 的存放格式:(共有9筆資料)
·     會員代號(6個字元)
·     性別(1個字元) ,性別M:男生,性別F:女生
·     姓名(10個字元)
·     年齡(integer)
·      身高(double),單位為()
·      體重(double),單位為磅

(b) 輸入pdata.txt 檔的9筆資料,且從螢幕輸出
(c)    輸出格式:會員代號後為「性別」;M è*Fè「」
   會員代號姓名  年齡  身高(公尺體重(公斤)  BMI  體重狀態
   ………
體重1 =  0.454公斤   poundà KG
身高1() = 2.54公分   inch à CM  * CM/100à M

class BMI {
double toKg(double pound);   // pound à kg
double toM(double inch);      // feet à m
double getBMI(double m, double kg); // input height(m) & weight(kg) return BMI value
}

                bmi < 18.5      體重過輕
                18.5 £ bmi< 24  體重正常
                24 £bmi< 27    體重過重
                27 £bmi< 30    輕度肥胖
                30 £bmi< 35    中度肥胖
                bmi ³ 35       重度肥胖


import java.io.*;

class ex0611i{
 public static void main(String[] args) throws IOException
 {
  DataInputStream din= new DataInputStream (
   new BufferedInputStream(
    new FileInputStream("pdata2.txt")));

  char[] id= new char[6];
  char[] name=new char[10];

  int age;
  double hei,wei, bmi;
  char gender, star;
   for(int ii=0;ii<9;ii++){
   for(int i=0;i<6;i++) id[i]=din.readChar();
   String sid=new String(id);
   gender=din.readChar();
   for(int i=0;i<10;i++) name[i]=din.readChar();
   String sname=new String(name);
   age=din.readInt();    // age
   hei=din.readDouble();     // height
   wei=din.readDouble();    // weight
   if(gender=='M') star='*';    
   else star=' ';
   BMI obj=new BMI();
   double m=obj.toM(hei);
   double kg=obj.toKg(wei);
   bmi=obj.getBMI(m,kg);
   String status;
   if(bmi<18.5) status="體重過輕";
   else if(bmi<24) status="體重正常";
   else if(bmi<27) status="體重過重";
   else if(bmi<30) status="輕度肥胖";
   else if(bmi<35) status="中度肥胖";
   else status="重度肥胖";
   System.out.println(" "+sid+star+" "+sname+"  "+age+"  "+m+"  "+
                                                                                     kg+"  "+bmi+"  "+status);
  }
  din.close();
 }
}


沒有留言:

張貼留言