GVKun编程网logo

这个BMI计算器有什么问题?(bmi计算器怎么算)

24

本文将分享这个BMI计算器有什么问题?的详细内容,并且还将对bmi计算器怎么算进行详尽解释,此外,我们还将为大家带来关于BMI计算器、IBM的JCE提供程序有什么问题?、java–这个clone()有

本文将分享这个BMI计算器有什么问题?的详细内容,并且还将对bmi计算器怎么算进行详尽解释,此外,我们还将为大家带来关于BMI计算器、IBM的JCE提供程序有什么问题?、java – 这个clone()有什么问题?、java – 这个简单的“double”计算有什么问题?的相关知识,希望对你有所帮助。

本文目录一览:

这个BMI计算器有什么问题?(bmi计算器怎么算)

这个BMI计算器有什么问题?(bmi计算器怎么算)

考虑以下语句序列:

double lbs;
double kg = lbs/2.205;  // lbs is uninitialized here,oops
cout << "What is your weight (lbs)?" << endl;
cin >> lbs;

您正在使用lbs,然后再从用户那里读取它,实际上,甚至在完全对其进行初始化之前,这都会引起未定义的行为。

您需要像这样重新排列语句:

double lbs;
cout << "What is your weight (lbs)?" << endl;
cin >> lbs;
double kg = lbs/2.205;  // compute kg after reading in lbs

您还需要对其他变量做类似的事情。

,

必须在 读取值后进行计算。否则,将使用不确定的值进行计算。

footer {
    background-color: #555;
}

BMI计算器

BMI计算器

<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script type="text/javascript">    
            function gm () {/*判断性别*/
                var man = document.getElementById("left-head-gender-man");
                var t = document.getElementById("t");
                if (man.checked) {
                    t.src = "js/man1.jpg";
                }
            }
            function gw () {/*判断性别*/
                var woman = document.getElementById("left-head-gender-woman");
                if (woman.checked) {
                    t.src = "img/girl0.jpg";
                }
            }
            function count () {
                /*获得身高的对象*/
                var hg = document.getElementById("left-head-height-id").value;
                /*获得体重对象*/
                var wg = document.getElementById("left-head-weight-id").value;
                /*通过身高体重的对象计算BMI值*/
                var ct = parseInt(wg)/(parseFloat(hg)*parseFloat(hg));
                /*重新获取性别对象*/
                var man = document.getElementById("left-head-gender-man");
                var woman = document.getElementById("left-head-gender-woman");
                /*分别获取需要改变的值得对象 a为最右侧上部分的胖瘦描述,b为最右侧下方显示的体重*/
                var a = document.getElementById("a");
                var b =document.getElementById("b");
                /*c 为右侧图片下方的BMI值得范围  t为右侧上方图片*/
                var c = document.getElementById("c");
                var t = document.getElementById("t");
                /*div为c 所在div的对象*/
                var div = document.getElementById("right-right");
                if (man.checked) {
                    /*通过判断分别进行替换内容*/
                    if (ct<18.5) {
                        a.innerHTML = "偏瘦";
                        b.innerHTML = wg;
                        t.src = "js/man1.jpg";
                        c.innerHTML = "BMI<18.5";
                        div.style.backgroundColor = "deepskyblue";
                    }
                    if (ct>=18.5&&ct<24) {
                        a.innerHTML = "正常";
                        b.innerHTML = wg;
                        t.src = "js/man2.jpg";
                        c.innerHTML = "18.5<=BMI<24";
                        div.style.backgroundColor = "#008000";
                    }
                    if (ct>=24&&ct<28) {
                        a.innerHTML = "过重";
                        b.innerHTML = wg;
                        t.src = "js/man3.jpg";
                        c.innerHTML = "24<=BMI<28";
                        div.style.backgroundColor = "gold";
                    }
                    if (ct>=28) {
                        a.innerHTML = "肥猪";
                        b.innerHTML = wg;
                        t.src = "js/man4.jpg";
                        c.innerHTML = "BMI>28";
                        div.style.backgroundColor = "chocolate";
                    }
                }
                if (woman.checked) {
                    if (ct<18.5) {
                        a.innerHTML = "偏瘦";
                        b.innerHTML = wg;
                        t.src = "img/girl10.jpg";
                        c.innerHTML = "BMI<18.5";
                        div.style.backgroundColor = "deepskyblue";
                    }
                    if (ct>=18.5&&ct<24) {
                        a.innerHTML = "正常";
                        b.innerHTML = wg;
                        t.src = "img/girl4.jpg";
                        c.innerHTML = "18.5<=BMI<24";
                        div.style.backgroundColor = "#008000";
                    }
                    if (ct>=24&&ct<28) {
                        a.innerHTML = "过重";
                        b.innerHTML = wg;
                        t.src = "img/girl5.jpg";
                        c.innerHTML = "24<=BMI<28";
                        div.style.backgroundColor = "gold";
                    }
                    if (ct>=28) {
                        a.innerHTML = "肥婆!";
                        b.innerHTML = wg;
                        t.src = "img/girl1.jpg";
                        c.innerHTML = "BMI>28";
                        div.style.backgroundColor = "chocolate";
                    }
                }
            }
        </script>
        <style type="text/css">
            #container{
                width: 1000px;/*主框架的宽、高*/
                height: 600px;
                background-color:darkgray ;/*填充色*/
                position: relative;/*相对定位*/
                top: 120px;
                left: 120px;
            }
            #left{
                width: 50%;
                height: 580px;
                background-color: white;
                position: absolute; /*绝对定位*/
                top: 7px;
                left: 5px;
                float: left; /*浮动*/
            }
            #left-head{
                width: 100%;
                height: 60%;
            }
            #left-head-title{
                position: absolute;
                left: 20px;
                top: 0px;
            }
            #left-head-height{
                position: absolute;
                left: 150px;
                top: 100px;
            }
            #left-head-weight{
                position: absolute;
                left: 150px;
                top: 160px;
            }
            #left-head-gender{
                position: absolute;
                left: 150px;
                top: 220px;
            }
            #left-head-result{
                width: 400px;
                height: 25px;
                position: absolute;
                left: 50px;
                top: 280px;
            }
            #left-head-result-a{
                width: 400px;
                height: 25px;
                background-color:lightpink ;/*填充色*/
                color: white;
            }
            #left-foot{
                width: 100%;
                height: 40%;
                color: white;
            }
            #left-foot-table{
                width: 100%;
                height: 100%;
            }
            #right{
                width: 48%;
                height: 580px;
                position: absolute;
                top: 7px;
                right: 5px;
                float: right;    
            }
            #right-left{
                width:180px;
                height:350px;
                position: absolute;
                top: 100px;
                left: 40px;
            }
            #right-left-foot{
                width: 180px;
                height: 50px;
                position: absolute;
                bottom: 0px;
                right: 0px;
                color: white;
                background-color:crimson ;
                text-align: center;
                line-height: 12px;
            }
            #right-right{
                width:180px;
                height:350px;
                background-color: deepskyblue;
                float: right;
                position: absolute;
                top: 100px;
                right: 40px;    
            }
            #right-right-head{
                width:180px;
                height:175px;
                text-align: center;
                line-height: 250px;
            }
            #right-right-foot{
                width:180px;
                height:175px;
                text-align: center; /*文本居中*/
                line-height: 10px;
            }
        </style>
    </head>
    <body>
        <div id="container">
            <div id="left">
                <div id="left-head">
                    <div id="left-head-title">
                        <h1>BMI计算</h1>
                    </div>
                    <div id="left-head-height">
                        身高:<input type="text" id="left-head-height-id" />米
                    </div>
                    <div id="left-head-weight">
                        体重:<input type="text" id="left-head-weight-id" />公斤
                    </div>
                    <div id="left-head-gender">
                        性别:<input type="radio" name="sex" id="left-head-gender-man" value="man" onclick="gm()"/>男
                            <input type="radio" name="sex" id="left-head-gender-woman" value="woman" onclick="gw()" />女
                    </div>
                    <div id="left-head-result"  >
                        <input type="button" id="left-head-result-a" value="计算BMI" onclick="count()"/>
                    </div>
                </div>
                <div id="left-foot" >
                    <table border="1" cellspacing="0" cellpadding="0" id="left-foot-table" align="center" width="200px" height="5px" >
                        <tr bgcolor="black" >
                            <th>分类</th>
                            <th>BMI范围</th>
                        </tr>
                        <tr align="center" bgcolor="deepskyblue">
                            <td>偏瘦</td>
                            <td><18.5</td>
                        </tr>
                        <tr align="center" bgcolor="#008000">
                            <td>正常</td>
                            <td>18.5~23.9</td>
                        </tr>
                        <tr align="center" bgcolor="gold">
                            <td>过重</td>
                            <td>24~27.9</td>
                        </tr>
                        <tr align="center" bgcolor="chocolate">
                            <td>肥胖</td>
                            <td>>28</td>
                        </tr>
                    </table>
                </div>
            </div>
            <div id="right">
                <div id="right-left">
                    <div id="right-left-head">
                        <img src="img/girl0.jpg" width="180px" height="300px" id="t"/>
                    </div>
                    <div id="right-left-foot">
                        <h2 id="c">BMI<18.5</h2>
                    </div>
                    
                </div>
                <div id="right-right" >
                    <div id="right-right-head">
                        <h1 id="a">偏瘦</h1>
                    </div>
                    <div id="right-right-foot">
                        <h1 id="b">40kg</h1>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
 

IBM的JCE提供程序有什么问题?

IBM的JCE提供程序有什么问题?

我有一个JCE测试,可以与我尝试过的所有Sun JDK正常工作,但是对于各种IBM J9 JDK(例如1.6.0 build
pwi3260sr8-20100409_01(SR8))却失败。在加密模式下初始化密码时,会发生以下例外情况。为什么IBM
JCE不能使用其自己的私钥?我在代码中缺少什么吗?

  public void testBasicKeyGeneration() throws NoSuchAlgorithmException,       NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException,       BadPaddingException, NoSuchProviderException, SignatureException {      KeyPairGenerator generator = KeyPairGenerator.getInstance( "RSA" );      generator.initialize( 2048 );      KeyPair pair = generator.generateKeyPair();      String data1 = "123456789012345678901234567890123456789012345678901234567890";      Cipher cipher = Cipher.getInstance( "RSA" );      cipher.init( Cipher.ENCRYPT_MODE, pair.getPrivate() );      byte[] encrypted = cipher.doFinal( data1.getBytes() );      cipher.init( Cipher.DECRYPT_MODE, pair.getPublic() );      byte[] decrypted = cipher.doFinal( encrypted );      String data2 = new String( decrypted );      assertEquals( "en/decryption failed", data1, data2 );  }

这是堆栈跟踪:

java.security.InvalidKeyException: Private key cannot be used to encrypt.at com.ibm.crypto.provider.RSA.engineInit(Unknown Source)at javax.crypto.Cipher.a(Unknown Source)at javax.crypto.Cipher.a(Unknown Source)at javax.crypto.Cipher.init(Unknown Source)at javax.crypto.Cipher.init(Unknown Source)at test.Test.testBasicKeyGeneration(LicenseHelperTest.java:56)

答案1

小编典典

我不确定这一点,但我相信JCE具有嵌入式策略,将对公钥的加密和对私钥的解密限制为限制。

在示例代码中,加密是通过私钥完成的。这将需要公共密钥进行解密,这意味着拥有公共密钥的任何人都可以访问编码数据。尽管有它的用途,但它不是公认的模式,并且IBM实现可能“保护”您免于意外创建公开可读的加密数据。

当这些错误被逆转时它可以正确测试的事实倾向于证实我的怀疑,但是我还没有找到一份说明那么多的正式文件。

java – 这个clone()有什么问题?

java – 这个clone()有什么问题?

我已经编写了这个克隆方法,当Employee类的父类是抽象的,而父类中的clone()方法是abstract.I想用这个代码复制Employee的对象的原始数据类型,而不是复制每个原始数据单独键入,但此代码与我调用clone()方法的行有问题. (此代码在Employee类中)
public Object clone() {
    Object obj = new Object();
    Object object = obj.clone();  //Emphasis here
    return object;

}

错误是:Object类型的方法clone()不可见.

但是我的Employee类在类层次结构中,可以访问Object类中的protected clone()方法.

这是我简单的Employee类:

public class Employee extends Person implements Cloneable {
private int ID;

public Employee() {
    ID = 0;
}

public void setID(int ID) {
    this.ID = ID;
}

public int getID() {
    return ID;
}

public Object clone1() throws CloneNotSupportedException {
    try {
        Object obj = new Object();

        Object object = obj.clone();
        return object;
    } catch (CloneNotSupportedException ex) {
        return null;
    }
}

解决方法

您是否在对象上实现了Cloneable接口?

但是,我很少会使用clone来复制对象.一个这样安全的例子是array.clone().我宁愿使用copy-constructor习惯用法或手动复制/赋值.

关于背景问题,在Effective Java(第2版)中有第11项.可克隆接口是一种特殊的接口,因为它修改了Object类有关克隆的行为.基本上它是一个在Java中启用类接口的功能.

编辑:根据您的示例,您可能需要在一般情况下将clone()调用包装在CloneNotSupportedException的try-catch中.

Edit2:重述了我的回答

Edit3:你是否覆盖了公共上下文中的clone()?在示例中,您尝试克隆一个Object,它位于java.lang包中 – 几乎不是您的代码所在的包.

编辑4:我认为答案已经在其他帖子中,只是想反思潜在的问题.

编辑5:试试这个:

public Object clone1() throws CloneNotSupportedException {        
    return super.clone();        
}

编辑6然后将您的方法命名为public abstract Object copy(),例如,在实现中,使用super.clone() – 以避免混淆.

编辑7我做了一些遮遮掩掩并提出了以下解决方案:

public class Cloner {
    public static abstract class Person {
       protected abstract Object clone1() throws CloneNotSupportedException;
       public Object copy() throws CloneNotSupportedException {
           return clone1();
       }
    }
    public static class Employee extends Person implements Cloneable {
        @Override
        protected Object clone1() throws CloneNotSupportedException {
            return super.clone();
        }

    }
    public static void main(String[] args) throws Exception {
        new Employee().copy();
    }
}

但基本上它与将抽象方法重命名为clone()之外的其他概念相同.

Edit8:修复了我的样本,现在它无一例外地工作了.

(但实际的功劳归功于GáborHargitai的super.clone())

java – 这个简单的“double”计算有什么问题?

java – 这个简单的“double”计算有什么问题?

参见英文答案 > How to resolve a Java Rounding Double issue13个
这个简单的“双”计算在java中有什么问题?

我知道一些十进制数字不能正确地用浮点/双二进制格式表示,但是使用变量d3,java能够存储和显示2.64没有任何问题.

double d1 = 4.64;
double d2 = 2.0;
double d3 = 2.64;
double d4 = d1 - d2;

System.out.println("d1      : " + d1);
System.out.println("d2      : " + d2);
System.out.println("d3      : " + d3);
System.out.println("d4      : " + d4);
System.out.println("d1 - d2 : " + (d1 - d2));

回答,

d1      : 4.64
d2      : 2.0
d3      : 2.64
d4      : 2.6399999999999997
d1 - d2 : 2.6399999999999997

解决方法

问题

在二进制2.64是10.10100011110101110000101000111101循环,换句话说,不能在二进制中表示,因此小错误. Java对d3很好,但是一旦实际的计算涉及到它就必须落在真实的表现上.

Binary Calculator

更多:

2.64= 10.10100011110101110000101000111101
4.64=100.1010001111010111000010100011110

现在,即使在这两种情况下,.64都是一样的,因为4 = 100使用了比2 = 10更多的双重有效数字,所以当你说4.64-2.0和2.64的.64在这两种情况下用不同的舍入误差表示,这个丢失的信息无法恢复为最终答案.

注:我在这里没有使用双重数字的重要数字,无论二进制计算器将产生什么,然而效果是相同的,无论数字的有效数字

不要假设双重值是准确的(尽管它们的不准确性是微观的,只是因为某些数字不能用二进制表示).

浮点数并不准确,但只能从小数点看

虽然你应该总是期望双精度在最后几个小数位将会有小的错误,但将二进制表示视为“坏”或更差的十进制是错误的.

我们都习惯了某些数字(例如1/3)不能十进制表示,我们接受这样一个数字将最终为0.333333333333,而不是真正的值(我无法写下无限空间);在这种情况下,二进制数不能被精确表达. 1/10是不能用二进制精确表达的数字;这只是因为我们习惯了十进制

今天关于这个BMI计算器有什么问题?bmi计算器怎么算的介绍到此结束,谢谢您的阅读,有关BMI计算器、IBM的JCE提供程序有什么问题?、java – 这个clone()有什么问题?、java – 这个简单的“double”计算有什么问题?等更多相关知识的信息可以在本站进行查询。

本文标签: