返回列表 發帖

BMManager.java

  1. package ray.work.bmicalc;
  2. import java.util.Scanner;

  3. class Suggestion
  4. {
  5.         String suggestion(float mBMI)
  6.         {
  7.                 if(mBMI == 0)
  8.                         return "input error";
  9.                 else
  10.                         return "your BMI is" + mBMI;
  11.         }
  12. }

  13. class ManSuggestion extends Suggestion
  14. {
  15.         String suggestion(float mBMI)
  16.         {          
  17.                    String mSuggestion = "";
  18.                    if(mBMI >= 35)
  19.                    {
  20.                            mSuggestion = "這麼肥!會不會太扯了你~";
  21.                    }
  22.                    else if(mBMI >= 30 && mBMI <35)
  23.                    {
  24.                            mSuggestion = "再不減肥我怕你坐飛機要買2張票了";
  25.                    }
  26.                    else if(mBMI >= 27 && mBMI <30)
  27.                    {
  28.                            mSuggestion = "少吃點吧!胖子!";
  29.                    }
  30.                    else if(mBMI >= 24 && mBMI <27)
  31.                    {
  32.                            mSuggestion = "過重";
  33.                    }
  34.                    else if(mBMI >= 18.5 && mBMI <24)
  35.                    {
  36.                            mSuggestion = "標準";
  37.                    }
  38.                    else if(mBMI < 18.5)
  39.                    {
  40.                            mSuggestion = "過輕";
  41.                    }
  42.                    return mSuggestion;
  43.         }
  44. }

  45. class WomanSuggestion extends Suggestion
  46. {
  47.         String suggestion(float mBMI)
  48.         {          
  49.                    String mSuggestion = "";
  50.                    if(mBMI >= 35)
  51.                    {
  52.                            mSuggestion = "....一切盡在不言中";
  53.                    }
  54.                    else if(mBMI >= 30 && mBMI <35)
  55.                    {
  56.                            mSuggestion = "聽說XX牌減肥食品不錯!";
  57.                    }
  58.                    else if(mBMI >= 27 && mBMI <30)
  59.                    {
  60.                            mSuggestion = "加油!再瘦一點你就是大美女了!";
  61.                    }
  62.                    else if(mBMI >= 24 && mBMI <27)
  63.                    {
  64.                            mSuggestion = "過重";
  65.                    }
  66.                    else if(mBMI >= 18.5 && mBMI <24)
  67.                    {
  68.                            mSuggestion = "標準";
  69.                    }
  70.                    else if(mBMI < 18.5)
  71.                    {
  72.                            mSuggestion = "過輕";
  73.                    }
  74.                    return mSuggestion;
  75.         }
  76. }

  77. class BMIManager
  78. {
  79.         private float mHeight;
  80.         private float mWeight;
  81.         private boolean mSex;
  82.         private float mBMI;
  83.         //private String mSuggestion;
  84.         private Suggestion mSuggestion;
  85.        
  86.         BMIManager(float h,float w,boolean s)
  87.         {
  88.                 this.mHeight = h;
  89.                 this.mWeight = w;
  90.                 this.mSex = s;
  91.                 this.mBMI = 0;
  92.                 if(this.mSex)
  93.                         this.mSuggestion = new ManSuggestion();
  94.                 else
  95.                         this.mSuggestion = new WomanSuggestion();
  96.                        
  97.         }
  98.        
  99.         void setHeight(float h)
  100.         {
  101.                 this.mHeight = h;
  102.         }
  103.        
  104.         float getHeight()
  105.         {
  106.                 return this.mHeight;
  107.         }
  108.        
  109.         void setWeight(float w)
  110.         {
  111.                 this.mWeight = w;
  112.         }
  113.        
  114.         float getWeight()
  115.         {
  116.                 return this.mWeight;
  117.         }
  118.        
  119.         void setSex(boolean s)
  120.         {
  121.                 this.mSex = s;
  122.         }
  123.        
  124.         boolean getSex()
  125.         {
  126.                 return this.mSex;
  127.         }
  128.        
  129.         float calculateBMI()
  130.         {
  131.                 if(this.mBMI == 0)
  132.                 {
  133.                         float h = this.mHeight/100;
  134.                         h = h * h;
  135.                         this.mBMI = this.mWeight/h;
  136.                 }
  137.                 return this.mBMI;
  138.         }
  139.        
  140.         String suggestion()
  141.         {
  142.                 if(mBMI == 0)
  143.                            calculateBMI();
  144.                 return this.mSuggestion.suggestion(mBMI);
  145.         }
  146.        
  147.         public static void main(String[] args)
  148.         {
  149.                    Scanner scan = new Scanner(System.in);
  150.                    String yourname;
  151.                    float h;
  152.                    float w;
  153.                    boolean s;
  154.                    System.out.println("請輸入您的大名 : ");
  155.                    yourname = scan.next();
  156.                    System.out.println("請輸入您的身高 : ");
  157.                    h = Float.parseFloat(scan.next());
  158.                    System.out.println("請輸入您的體重 : ");
  159.                    w = Float.parseFloat(scan.next());
  160.                    System.out.println("請輸入您是男生(1)/女生(0) :");
  161.                    s = Integer.parseInt(scan.next())==1;
  162.                    BMIManager myBMI = new BMIManager(h,w,s);
  163.                    System.out.print(myBMI.calculateBMI()+"\n");
  164.                    System.out.printf("%s",myBMI.suggestion());
  165.                   
  166.                    /*
  167.                    System.out.println("您輸入的大名 :"+yourname);
  168.                    System.out.println("您輸入的身高 :"+myBMI.mHeight);
  169.                    System.out.println("您輸入的體重 :"+myBMI.getWeight());
  170.                    System.out.println("您輸入您是:"+(myBMI.getSex()==true?"男生":"女生"));
  171.                    */
  172.                   
  173.         }
  174.        
  175. }
複製代碼

返回列表