2

我正在尝试在android中使用确定性因子方法构建项目专家系统,但是在显示用户输入的最高值时遇到了麻烦。

这是我的代码:

public void diagn() {
    for (int i = 0; i < listCheckBox.size(); i++) {
        if (listCheckBox.get(i).isChecked()) {
            idGejala.add(listGejala.get(i).getId_gejala());
        }
    }
    for (int i = 0; i < idGejala.size(); i++) {
        Cursor kursor = db.getNilaiCFdanIDpenyakit(idGejala.get(i));
        while (!kursor.isAfterLast()) {
            Kaidah kaidahku = new Kaidah();
            kaidahku.setId_penyakit(kursor.getString(0));
            kaidahku.setNilai_CF(kursor.getDouble(1));
            kaidah.add(kaidahku);
            kursor.moveToNext();
        }
    }
    Penyakit penyakit;
    for (int i = 0; i < listPenyakit.size(); i++) {
        penyakit = listPenyakit.get(i);
        CfPenyakit cfpenyakit = new CfPenyakit();
        cfpenyakit.setId_penyakit(penyakit.getId_penyakit());
        cfpenyakit.setNama_penyakit(penyakit.getNama_penyakit());
        for (int j = 0; j < kaidah.size(); j++) {

            Kaidah kaidahku = kaidah.elementAt(j);

            if (penyakit.getId_penyakit().equals(kaidahku.getId_penyakit())) {
                cfpenyakit.addCF(kaidahku.getNilai_CF());
            }
        }
        if (cfpenyakit.getFinalCF() > 0)
            cf.add(cfpenyakit);

    }

    String[] penyakitku = new String[cf.size()];
    String[] cfku = new String[cf.size()];
    String[] idPenyakit = new String[cf.size()];
    for (int i = 0; i < cf.size(); i++) {
        CfPenyakit data = cf.elementAt(i);
        penyakitku[i] = data.getNama_penyakit();
        idPenyakit[i] = data.getId_penyakit();
        double orim = (data.getFinalCF()*100);

        cfku[i] = Double.toString(data.getFinalCF() * 100);
        cfku[i] = String.format("%.2f", orim) + "%";



    }

    db.close();
    Intent intent = new Intent(this, Diag2.class);
    intent.putExtra("penyakit", penyakitku);
    intent.putExtra("cf", cfku);
    intent.putExtra("idPenyakit", idPenyakit);
    startActivity(intent);
    finish();
}
4

0 回答 0