JAVA类的使用【化验诊断】

点我查看题目

下表是进行血常规检验的正常值参考范围,及化验值异常的临床意义:

给定一张化验单,判断其所有指标是否正常,如果不正常,统计有几项不正常。化验单上的值必须严格落在正常参考值范围内,才算是正常。正常参考值范围包括边界,即落在边界上也算正常。输入
输出对于每组测试数据,输出一行。如果所有检验项目正常,则输出: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()进行判断。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

12 + 16 =