-6

我正在用 Javascript 构建一个风险计算器程序,为此,我的等级为 1-3,零表示无风险,三表示风险最高。对于每个选项(年龄、性别、BMI、血压、温度、吸烟量等),我将为它们分配一个数字 (0-3),并使用该数字来确定风险百分比。

示例:年龄:

18-39 = 0 代表风险

40+ = 2 风险

无论用户选择哪个年龄作为他们的年龄都会增加他们的个人百分比。

我怎样才能编写这个程序?

List<StringWithValue> stringList == new ArrayList<StringWithValue>(); 
    int myRisk;
   // no risk  = "0";
    //some risk = "1";
   // risk = "2";
   //abnormal risk = "3";
   var a = "0", b = "1", c = "2", d = "3"


   if(message == "Age") {
      alert("Ages 18 to 39 have a lower risk of cancer" + '\n\n' + 
      "Than for those over 40.");

      StringAge = "18-39";
       StringValue = "a";
       System.out.println("Age" = "a");


       StringAge_2 = "40-80";
       StringValue = "c";
       System.out.println("Age_2" = "c");


   } else if(message =="Sex") {
       alert("Choose your biological gender" + '\n\n' + "Males are more likely to develop" +
            " lung cancer than females.");

   } else if(message == "Systolic Blood Pressure") {
           alert("Low blood pressure is anything below 100" + 'n\n' + "Normal range is 120-130" +
   "High blood pressure is over 135.");

   } else if(message =="Diastolic Blood Pressure") {
       alert("Low blood pressure is anything below 70" + 'n\n' +"Normal range is 80-85" + 
   "High blood pressure is over 90.");

   } else if(message =="Temperature") {
       alert("Below 98.6 degrees Fahrenheit/37 degrees Celsius is unhealthy" + 'n\n' + "Normal range is at exactly 98.6 degrees/37 degrees Celsius" +
   "Anything above 98.6 degrees Fahrenheit/37 degrees Celsius is abnormal.");

   } else if(message =="Race") {
       alert("African Americans have a higher chance of lung cancer" + 'n\n' + "Followed by Caucasians" +
   "Asians, Pacific Islanders, Hispanics, and Native Americans have a low percentage.");


   }
   else if(message == "family") {
      alert("Family History of Lung Cancer" + '\n\n' +
      "Choose Yes if an immediate family member had " +
      "lung cancer.");

      "Note: The Calculator is only applicable for persons without a previous diagnosis of lung cancer.");

   }
}

function radiobtnchange(units){
    if(units == "Standard"){
        document.getElementById('lblHeightUnits').innerHTML = "in";
        document.getElementById('lblWeightUnits').innerHTML = "lbs";
    }
    if(units == "Metric"){
        document.getElementById('lblHeightUnits').innerHTML = "cm";
        document.getElementById('lblWeightUnits').innerHTML = "kg";
    }   
}

function clearAllFields(theForm) {
   if(theForm.age) clearObjValue(theForm.race);
   if(theForm.sex) clearObjValue(theForm.pca3);
   if(theForm.systolic_blood_pressure) clearObjValue(theForm.free_psa);
   if(theForm.diastolic_blood_pressure) clearObjValue(theForm.pro_psa);
   if(theForm.bmi) clearObjValue(theForm.height);
   if(theForm.temperature) clearObjValue(theForm.weight);
   if(theForm.prostate_volume) clearObjValue(theForm.prostate_volume);
   if(theForm.num_biopsy_cores) clearObjValue(theForm.num_biopsy_cores);
   if(theForm.aua_symptom_score) clearObjValue(theForm.aua_symptom_score);
   if(theForm.age) clearObjValue(theForm.age);
   if(theForm.psa) clearObjValue(theForm.psa);
   if(theForm.familyhistory) clearObjValue(theForm.familyhistory);
   if(theForm.dre) clearObjValue(theForm.dre);
   if(theForm.biopsy) clearObjValue(theForm.biopsy);
   if(theForm.finasteride) clearObjValue(theForm.finasteride);
4

1 回答 1

0

我为你设置了一个jsfiddle。您可以插入您的逻辑来计算剩余字段的风险并清理 html。

JavaScript

var risk = {
    'none': 0,
    'low': 1,
    'high': 2,
    'abnormal': 3
};

var myRsk = 0;

function getValue(name) {
    return document.getElementsByName(name)[0].value;
}

function calculateRisk() {
    age = getValue('iAge');
    gender = getValue('iGender');
    sbp = getValue('iSBP');
    dbp = getValue('iDBP');
    temp = getValue('iTemp');
    race = getValue('iRace');
    family = getValue('iFamily');

    myRisk = 0;
    myRisk += calculateAge(age);
    myRisk += calculateGender(gender);
    myRisk += calculateSBP(sbp);
    myRisk += calculateDBP(sbp);
    myRisk += calculateTemp(temp);
    myRisk += calculateRace(race);
    myRisk += calculateFamily(family);
    myRisk = parseFloat(myRisk / 21 * 100).toPrecision(4);

    alert('Your Risk = ' + myRisk + '%');
}

function calculateAge(age) {
    val = parseInt(age)
    if (val > 80) return risk['abnormal'];
    else if (val > 60) return risk['high'];
    else if (val > 40) return risk['low'];
    else return parseInt(risk['none']);
}

function calculateGender(gender) {
    return parseInt(risk['low']);
}

function calculateSBP(sbp) {
    return parseInt(risk['low']);
}

function calculateDBP(dbp) {
    return parseInt(risk['low']);
}

function calculateTemp(temp) {
    return parseInt(risk['low']);
}

function calculateRace(race) {
    return parseInt(risk['low']);
}

function calculateFamily(family) {
    return parseInt(risk['low']);
}

HTML

<form>
    <div class="item" title="Ages 18 to 39 have a lower risk of cancer than for those over 40.">
        <label>Age</label>
        <input name="iAge" type="text" />
    </div>
    <div class="item" title="Choose your biological gender. Males are more likely to develop lung cancer than females.">
        <label>Gender</label>
        <input name="iGender" type="text" />
    </div>
    <div class="item" title="Low blood pressure is anything below 100. Normal range is 120-130. High blood pressure is over 135.">
        <label>Systolic Blood Pressure</label>
        <input name="iSBP" type="text" />
    </div>
    <div class="item" title="Low blood pressure is anything below 70. Normal range is 80-85. High blood pressure is over 90.">
        <label>Diastolic Blood Pressure</label>
        <input name="iDBP" type="text" />
    </div>
    <div class="item" title="Below 98.6 degrees Fahrenheit/37 degrees Celsius is unhealthy Normal range is at exactly 98.6 degrees/37 degrees Celsius">
        <label>Temperature</label>
        <input name="iTemp" type="text" />
    </div>
    <div class="item" title="African Americans have a higher chance of lung cancer; followed by Caucasians, Asians, Pacific Islanders, Hispanics, and Native Americans have a low percentage.">
        <label>Race</label>
        <input name="iRace" type="text" />
    </div>
    <div class="item" title="Family History of Lung Cancer. Choose Yes if an immediate family member had lung cancer. Note: The Calculator is only applicable for persons without a previous diagnosis of lung cancer.">
        <label>Family</label>
        <input name="iFamily" type="text" />
    </div>
    <input type="button" value="Calculate" onclick="calculateRisk()" />
</form>

CSS

label {
    width: 160px;
    float: left;
}
input[type='text'] {
    vertical-align:middle;
}
.item {
    margin-bottom:1.5em;
    clear:both;
    overflow:hidden;
}
于 2013-04-22T01:27:34.333 回答