我正在使用Javascript构建一个风险计算器程序,为此,我有1-3的等级,零没有风险,三个风险最高。对于每个选项(年龄,性别,BMI,血压,体温,吸烟等),我将为他们分配一个数字(0-3)并使用该数字来确定风险的百分比。 / p>
示例:年龄:
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);
答案 0 :(得分: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;
}