返回列表 發帖

BMIManager

本帖最後由 ray 於 2012-10-12 20:07 編輯
  1. public class BMIManager
  2. {
  3.         float mHeight;
  4.         float mWeight;
  5.         boolean mSex;
  6.         float mBMI;
  7.         String mSuggestion;
  8.         BMIManager(float h,float w,boolean s)
  9.         {
  10.                 this.mHeight = h;
  11.                 this.mWeight = w;
  12.                 this.mSex = s;
  13.         }
  14.        
  15.         void setHeight(float h)
  16.         {
  17.                 this.mHeight = h;
  18.         }
  19.        
  20.         float getHeight()
  21.         {
  22.                 return this.mHeight;
  23.         }
  24.        
  25.         void setWeight(float w)
  26.         {
  27.                 this.mWeight = w;
  28.         }
  29.        
  30.         float getWeight()
  31.         {
  32.                 return this.mWeight;
  33.         }
  34.        
  35.         void setSex(boolean s)
  36.         {
  37.                 this.mSex = s;
  38.         }
  39.        
  40.         boolean getSex()
  41.         {
  42.                 return this.mSex;
  43.         }
  44.        
  45.         float calculateBMI()
  46.         {
  47.                
  48.                 return mBMI;
  49.         }
  50.        
  51.         String suggestion()
  52.         {
  53.                
  54.                 return mSuggestion;
  55.         }
  56.        
  57. }
複製代碼

  1. Scanner scan = new Scanner(System.in);
  2.                    String yourname;
  3.                    float h;
  4.                    float w;
  5.                    boolean s;
  6.                    float BMI;
  7.                    System.out.println("請輸入您的大名 : ");
  8.                    yourname = scan.next();
  9.                    System.out.println("請輸入您的身高 : ");
  10.                    h = Float.parseFloat(scan.next());
  11.                    h = (h/100);
  12.                    h = (h * h);
  13.                    System.out.println("請輸入您的體重 : ");
  14.                    w = Float.parseFloat(scan.next());
  15.                    System.out.println("請輸入您是男生(1)/女生(0) :");
  16.                    s = Integer.parseInt(scan.next())==1;
  17.                    BMIManager myBMI = new BMIManager(h,w,s);
  18.                   
  19.                    System.out.println("您輸入的大名 :"+yourname);
  20.                    System.out.println("您輸入的身高 :"+myBMI.mHeight);
  21.                    System.out.println("您輸入的體重 :"+myBMI.getWeight());
  22.                    System.out.println("您輸入您是:"+(myBMI.getSex()==true?"男生":"女生"));
  23.                   
複製代碼

TOP

本帖最後由 吳尚哲 於 2012-10-14 21:12 編輯
  1. public class BMIManager
  2. {
  3.         String mName;
  4.         float mHeight;
  5.         float mWeight;
  6.         boolean mSex;
  7.         float mBMI;
  8.         String mSuggestion;
  9.        
  10.         BMIManager(String n, float h, float w, boolean s)                //建構子
  11.         {
  12.                 this.mName = n;
  13.                 this.mHeight = h;
  14.                 this.mWeight = w;
  15.                 this.mSex = s;
  16.         }
  17.        
  18.         void setName(String n)
  19.         {
  20.                 this.mName = n;
  21.         }
  22.        
  23.         void setHeight(float h)
  24.         {
  25.                 this.mHeight = h;
  26.         }
  27.        
  28.         void setWeight(float w)
  29.         {
  30.                 this.mHeight = w;
  31.         }
  32.        
  33.         void setSex(boolean s)
  34.         {
  35.                 this.mSex = s;
  36.         }
  37.        
  38.         float getHeight()
  39.         {
  40.                 return this.mHeight;
  41.         }
  42.        
  43.         float getWeight()
  44.         {
  45.                 return this.mWeight;
  46.         }
  47.        
  48.         boolean getSex()
  49.         {
  50.                 return this.mSex;
  51.         }
  52.        
  53.         float caculateBMI()
  54.         {
  55.                 this.mBMI = this.mWeight/((this.mHeight/100)*(this.mHeight/100));
  56.                 return this.mBMI;
  57.         }
  58.        
  59.         String suggestion()
  60.     {
  61.                 if(this.mBMI >= 35)
  62.                 {       
  63.                         this.mSuggestion = this.mName + "重度肥胖";
  64.                 }
  65.                
  66.                 else if(this.mBMI >= 30 && this.mBMI < 35)
  67.                 {
  68.                         this.mSuggestion = this.mName + (mSex?"先生":"女士") +"中度肥胖 BMI:" + this.mBMI;
  69.                 }
  70.                
  71.                 else if(this.mBMI >= 27 && this.mBMI < 30)
  72.                 {
  73.                         this.mSuggestion = this.mName + (mSex?"先生":"女士")  + "輕度肥胖 BMI:" + this.mBMI;
  74.                 }
  75.                
  76.                 else if(this.mBMI >= 24 && this.mBMI < 27)
  77.                 {
  78.                         this.mSuggestion = this.mName + (mSex?"先生":"女士")  + "過重 BMI:" + this.mBMI;
  79.                 }
  80.                
  81.                 else if(this.mBMI >= 18.5 && this.mBMI < 24)
  82.                 {
  83.                         this.mSuggestion = this.mName + (mSex?"先生":"女士")  + "標準 BMI:" + this.mBMI;
  84.                 }
  85.                
  86.                 else if(this.mBMI < 18.5)
  87.                 {
  88.                         this.mSuggestion = this.mName + (mSex?"先生":"女士")  + "過輕 BMI:" + this.mBMI;
  89.                 }
  90.                
  91.                 else
  92.                 {
  93.                         this.mSuggestion = "你確定??" + this.mBMI;
  94.                 }
  95.                
  96.                 return this.mSuggestion;
  97.     }

  98. }
複製代碼
  1. import java.util.Scanner;


  2. public class MyBMI {
  3.         public static void main(String[] args)
  4.         {
  5.                 Scanner scan = new Scanner(System.in);
  6.                 String name;
  7.                 float h;
  8.                 float w;
  9.                 boolean s;
  10.                 System.out.println("請輸入您的大名 : ");
  11.                 name = scan.next();
  12.                 System.out.println("請輸入您的身高(公分) : ");
  13.                 h = Float.parseFloat(scan.next());
  14.                 System.out.println("請輸入您的體重(公斤) : ");
  15.                 w = Float.parseFloat(scan.next());
  16.                 System.out.println("請輸入您的性別男1/女0 : ");
  17.                 s = Integer.parseInt(scan.next())==1;
  18.                
  19.                 BMIManager myBMI = new BMIManager(name, h, w, s);
  20.                
  21.                 myBMI.caculateBMI();
  22.                 System.out.println(myBMI.suggestion());
  23.         }

  24. }
複製代碼
  1. 請輸入您的大名 :
  2. 阿哲
  3. 請輸入您的身高(公分) :
  4. 170
  5. 請輸入您的體重(公斤) :
  6. 78
  7. 請輸入您的性別男1/女0 :
  8. 1
  9. 阿哲先生過重 BMI:26.989618
複製代碼
老師我想請教一下
建構子的功能是在物件實體化的過程中將內容初始化而已嗎?
除此之外還有其他用意嗎?
和用set方法給予初始值有什麼不一樣?

TOP

  1. public class BMIManager {
  2.     float mHeight;   
  3.     float mWeight;
  4.     String mSex;
  5.     float mBMI;
  6.     String msuggestion;
  7.    
  8.     void setHeight(float h)
  9.     {
  10.             this.mHeight = h;
  11.     }
  12.    
  13.     float getHeight()
  14.     {
  15.             return this.mHeight;
  16.     }
  17.    
  18.     void setWeight(float w)
  19.     {
  20.             this.mWeight = w;
  21.     }
  22.    
  23.     float getWeight()
  24.     {
  25.             return this.mWeight;
  26.     }

  27.     void setSex(String s)
  28.     {
  29.             this.mSex=s;                                      
  30.     }
  31.    
  32.     String getSex()
  33.     {
  34.            
  35.             if (mSex.equals("M"))
  36.                     mSex="男士";                   
  37.             else if(mSex.equals("F"))
  38.                 mSex="女士";
  39.             else
  40.                     mSex="無法判別";
  41.            
  42.             return this.mSex;           
  43.     }
  44.    
  45.   
  46.        
  47.         BMIManager(float h , float w , String s)
  48.         {
  49.                 this.mHeight=h;
  50.                 this.mWeight=w;
  51.                 this.mSex=s;               
  52.         }
  53.    
  54.         float calculateBMI(float h , float w)
  55.         {
  56.                 mBMI = (w/((h/100)*(h/100)));
  57.                 return mBMI;
  58.         }
  59.        
  60.         String suggestion()
  61.         {
  62.                 if (mBMI<18.5)
  63.                   {
  64.                         msuggestion="體重過輕喔!!";
  65.                   }
  66.               else if(mBMI>=18.5 && mBMI<24)                      
  67.               {
  68.                       msuggestion="恭喜,正常範圍喔!!";
  69.               }
  70.               else if(mBMI>=24 && mBMI<27)
  71.               {
  72.                       msuggestion="過重!!";
  73.               }
  74.               else if(mBMI>=27 && mBMI<30)
  75.               {
  76.                       msuggestion="輕度肥胖!!";
  77.               }
  78.               else if(mBMI>=30 && mBMI<35)
  79.               {
  80.                       msuggestion="中度肥胖!!";
  81.               }
  82.               else if(mBMI>=35)
  83.               {
  84.                       msuggestion="重度肥胖!!";
  85.               }
  86.               else
  87.               {
  88.                       msuggestion="輸入錯誤喔!!";
  89.               }               
  90.                 return msuggestion;
  91.         }
  92.        
  93.         public static void main(String[] args) {
  94.                
  95.        
  96.                
  97.                
  98.                

  99.         }

  100. }

  101. import java.util.Scanner;


  102. public class BMIManagerTest {

  103.        
  104.         public static void main(String[] args) {
  105.                
  106.                
  107.                       String name,sex;
  108.                       float hight;
  109.                       float weight;
  110.                      
  111.                       Scanner scan = new Scanner(System.in);

  112.                       System.out.print("請輸入您的姓名=");
  113.                       name=scan.next();

  114.                       System.out.print("請輸入你的身高(cm)=");
  115.                       hight=Float.parseFloat(scan.next());

  116.                       System.out.print("請輸入你的體重(kg)=");
  117.                       weight=Float.parseFloat(scan.next());
  118.                      
  119.                       System.out.print("請輸入你的性別 M or F =");
  120.                       sex=scan.next();

  121.                       BMIManager myBMI = new BMIManager (hight , weight , sex);
  122.                                                           
  123.               System.out.println("親愛的 "+name+" "+myBMI.getSex()+" ,您的BMI="+myBMI.calculateBMI(hight, weight));
  124.               System.out.println(myBMI.suggestion());
  125.               
  126.                      
  127.                      
  128.         }

  129. }

  130. 請輸入您的姓名=knight
  131. 請輸入你的身高(cm)=170
  132. 請輸入你的體重(kg)=66
  133. 請輸入你的性別 M or F =M
  134. 親愛的 knight 男士 ,您的BMI=22.83737
  135. 恭喜,正常範圍喔!!
複製代碼

TOP

返回列表