下表是进行血常规检验的正常值参考范围,及化验值异常的临床意义:
给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。化验单上的值必须严格落在正常参考值范围内,才算是正常。正常参考值范围包括边界,即落在边界上也算正常。输入
输出对于每组测试数据,输出一行。如果所有检验项目正常,则输出:normal;否则输出不正常的项的数目。样例输入
2 female 4.5 4.0 115 37 200 male 3.9 3.5 155 36 301
样例输出
normal 3
import java.util.Scanner; public class Main { static Scanner cin = new Scanner(System.in); public static void main(String[] args) { abstract class human{ double wbc,rbc,hgb,hct,plt; int num; human() { num=0; wbc=cin.nextDouble(); rbc=cin.nextDouble(); hgb=cin.nextDouble(); hct=cin.nextDouble(); plt=cin.nextDouble(); } abstract void judge(); } class man extends human { void judge() { if(wbc<4.0||wbc>10.0) num++; if(rbc<3.5||rbc>5.5) num++; if(hgb<120.0||hgb>160.0) num++; if(hct<42||hct>48) num++; if(plt<100||plt>300) num++; } } class woman extends human{ void judge() { if(wbc<4.0||wbc>10.0) num++; if(rbc<3.5||rbc>5.5) num++; if(hgb<110.0||hgb>150.0) num++; if(hct<36||hct>40) num++; if(plt<100||plt>300) num++; } } int t=cin.nextInt(); while(t--!=0) { String sex=cin.next(); if(sex.equals("male")) { man a=new man(); a.judge(); if(a.num==0) System.out.println("normal"); else System.out.println(a.num); }else if(sex.equals("female")) { woman a=new woman(); a.judge(); if(a.num==0) System.out.println("normal"); else System.out.println(a.num); } } } }
注意点:
1.定义了double就不要用in.nextInt进行输入。
2.字符串之间的比较必须用String::equals()进行判断。